Term | Definition |
monitor | lock plus a condition variable |
lock | provides mutual exclusion to shared data |
condition variable | provides a queue for waiting threads inside a critical section |
deadlock | threads are waiting for resources with circular dependencies |
non-preemptable resource | cannot be taken away from its current thread without failing the computation |
preemptable resource | can be resolved by reallocation of resources |
starvation | a thread is waiting indefinitely |
checkpointing | taking snapshots of system states from time to time in order to recover from failures or bugs |
interprocess communication (IPC) | the process by which processes communicate among address spaces |
system call | a user process asks the OS to do something on the processes behalf |
segment | a logically contiguous memory region |
External Fragmentation | memory is wasted because the available memory is not contiguous for allocation |
internal fragmentation | allocated pages are not fully used |
translation lookaside buffers (TLB) | Recently translated memory addresses are stored here for short-term reuse |
Caching | Stores copies of data at places that can be accessed more quickly than it would take to access the original data. |
temporal locality | recently referenced locations are more likely to be referenced again soon |
spatial locality | referenced locations tend to be clustered |
cache pollution | a process loads data into CPU cache unnecessarily, thus causing other needed data to be evicted from the cache into lower levels of the memory hierarchy, potentially all the way down to main memory, degrading performance |
virtually addressed cache | takes place between the CPU and the translation table |
physically addressed cache | takes place between the translation tables and the main memory |
Demand paging | allows pages that are referenced actively to be loaded into memory |
Belady's anomaly | increasing the memory size actually results in more page faults |
thrashing | occurs when memory is overcomitted. pages are needed but are tossed out to make room for new pages. |
working set | pages that were referenced in the previous T seconds. As T -> infinity, the __________ -> the size of the entire process. |
polling | cpu repeatedly checks the status of a device for exchanging data |
Interrupts | when a device is read for use, inform the cpu via ___________ |
direct memory access (DMA) | uses an additional controller to perform data movements |
double buffering | uses two buffers. When one is being used, the other is being filled |
device controller | converts between serial bit stream and block of bytes |
device driver | os component that is responsible for hiding the complexity of an I/O device |
memory-mapped i/o | no distinction is made between device addresses and memory addresses. devices can be accessed the same way as normal memory. |
disk platter | coated with magnetic materials for recording |
disk arm | moves a comb of disk heads |
tracks | each disk platter is divided into concentric tracks |
sector | smallest unit of disk storage. |
cylinder | all tracks with a given disk arm position |
zone | what the cylinder is further divided into |
zone-bit recording | zones near the edge store more information |
track skew | starting position of each track is slightly off. |
thermo-calibrations | performed to account for changes of radius due to termperature changes |
seek time | time to position the disk heads |
rotational latency | time to rotate the target sector to underneath the head |