CMSC 421: Principles of Operating Systems
Final Study Guide
General
Ensure you can perform decimal to hexadecimal conversion, and vice
versa.
Memory Systems
-
What are the different ways that an operating system provides
contiguous virtual addresses, even though physical RAM may be
fragmented?
-
Given the page table on slide 12
of lecture 14, what is
the physical address given the virtual address 0xF?
-
Within a page table, what do the protection and valid bits mean?
-
What are some issues when restarting instructions?
-
What is the benefit of a hierarchical paging system?
-
What happens when a page fault occurs?
-
What are the advantages and disadvantages of the various page
replacement algorithms?
-
What is an overlay? What is swapping? How are they implemented?
-
What is the purpose of the different program segments?
Device Drivers
-
What is the difference between character, block, and network
devices? Give examples of each.
-
How does a kernel know which device driver to use given a
particular piece of hardware?
-
What is involved when loading a program? When loading a kernel?
-
What are the steps involved in handling a hardware interrupt?
What is a top-half versus bottom-half?
Linux Kernel Modules
-
What is the difference between a driver's init, probe, remove, and
exit functions? When are they called?
-
What is the relationship between a function's return value and
the errno variable?
-
What is the difference between user and interrupt context? Give
an example of each.
-
What do the tokens
__init
, __exit
,
and __user
mean?
-
How does a driver allocate memory?
-
What is the difference between a mutex and a spinlock? When
would a driver use one or the other?
-
What are kthreads? What are completion variables?
Mass Storage
-
What schedulers exist for a hard disk drives? What are the
advantages and disadvantages of each?
-
What is the difference between a partition and a volume? What
are the different ways that files are stored?
-
Why does the operating system have a system-wide open file
table? What does it do with it?
-
How do filesystems allocate space for files?
-
Why do manufacturers recommend against defragging a solid state
drive?
-
What is a FAT? Where is it stored?
-
What features of UBIFS make it desirable for solid state drives?
Kernel Security
-
What do CPU rings do?
-
Name three ways how an access matrix could be implemented.
-
In Linux, what does
struct cred
do?
-
What kinds of capabilities does Linux support?
Embedded I/O
-
What are four ways interrupts can be generated?
-
What are scatter/gather lists used for?
-
What is the difference between half-duplex and full-duplex?
Serial versus parallel?
-
What values does a DMA engine use?