Send a link to your students to track their progress
155 Terms
1
New cards
Race condition
A race condition exists when the outcome is correct only for certain interleavings of concurrent process steps.
2
New cards
Interleaved execution
Execution in which instructions from different processes are mixed because an operation may be interrupted between machine instructions.
3
New cards
Atomic operation
An atomic operation appears to happen all at once: other processes cannot observe intermediate states.
4
New cards
Mutual exclusion
A synchronization property that allows only one process at a time to execute a conflicting critical section.
5
New cards
Critical section
A section of code that accesses shared data/resources and must execute in isolation from conflicting processes.
6
New cards
Mutex / lock
A synchronization mechanism used to execute a critical section in isolation. Acquire the lock before the critical section and release it afterward.
7
New cards
Dining Philosophers problem
Five philosophers share five chopsticks; each philosopher needs both neighboring chopsticks to eat, and each chopstick can be used by at most one philosopher at a time.
8
New cards
Producer-Consumer problem
Producers create items and consumers use them; a shared buffer is used to handle differences in their speeds.
9
New cards
Semaphore
A synchronization variable manipulated through atomic P (wait/down) and V (signal/up) operations.
10
New cards
P(S) / wait(S)
It waits until the semaphore permits entry and then decreases/reserves the semaphore value.
11
New cards
V(S) / signal(S)
It increases/releases the semaphore value and can allow a waiting process to proceed.
12
New cards
Counting semaphore
A general semaphore with an integer value; it can represent multiple available units of a resource.
13
New cards
Binary semaphore
A semaphore with a Boolean value. P waits for true and sets it false; V sets it true.
14
New cards
Monitor
A higher-level synchronization construct that encapsulates shared data and operations, provides critical-section behavior implicitly, and provides signaling explicitly.
15
New cards
Peterson's algorithm
A mutual-exclusion algorithm for two processes using only shared variables, simple loads/stores, flags, and a turn variable.
16
New cards
Livelock
Processes keep executing steps but no process makes progress.
17
New cards
Deadlock
A set of processes is deadlocked when every process in the set waits for an event that can only be caused by another process in the set.
18
New cards
Process
A process is an abstraction of a program in execution.
19
New cards
PCB
A Process Control Block is the operating system's bookkeeping record for a process and is used to save its execution context when the process is interrupted.
20
New cards
Multiprogramming
The ability of an operating system to make multiple programs progress on a single-processor machine by repeatedly switching among processes.
21
New cards
User mode
A CPU protection mode in which only a restricted set of instructions can be executed.
22
New cards
Kernel mode
A privileged/unrestricted CPU mode in which the CPU can execute any instruction, including privileged instructions.
23
New cards
Mode switch
A change in CPU execution mode from user to kernel or kernel to user.
24
New cards
Thread
An execution flow within a single address space.
25
New cards
IPC
Inter Process Communication: mechanisms that allow processes to communicate and exchange information/data.
26
New cards
Shared-memory IPC
A portion of main memory is accessible to multiple processes; a change by one process is immediately visible to the others.
27
New cards
Message passing
Processes communicate by sending byte-sequence messages that can be stored in a queue/mailbox until received.
28
New cards
fork()
Creates a replica child process whose process image is identical to the invoking process except for identifiers; parent and child have distinct address spaces.
29
New cards
exec()
Replaces the current process image with a new process image for the specified program.
30
New cards
getpid()
The process identifier of the currently executing process.
31
New cards
wait()
The parent waits for a child process to finish before continuing past the wait.
32
New cards
Primary storage
Storage directly accessible by the CPU, including main memory (RAM), registers, and cache.
33
New cards
Secondary storage
Storage not directly accessible by the CPU; it is accessed through I/O channels, such as HDDs and SSDs.
34
New cards
Tertiary storage
Storage not directly accessible by the CPU and typically used for offline storage, such as magnetic tape and optical disc.
35
New cards
Compile-time address binding
If the memory location is known at compile time, the compiler generates absolute code with addresses bound to that location.
36
New cards
Load-time address binding
The compiler generates relocatable code and the addresses are bound when the process is loaded, provided it will not move during execution.
37
New cards
Execution-time address binding
Binding is delayed until run time when a process may move during execution; hardware performs the translation.
38
New cards
Relocatable code
Code that assumes the process address space starts at 0 and can be relocated to a chosen physical location.
39
New cards
MMU
The Memory Management Unit is special hardware used to perform address translation at run time.
40
New cards
Static partitioning
Main memory is divided into fixed partitions; it is also called fixed partitioning.
41
New cards
Internal fragmentation
Unused space inside an allocated fixed partition because the process does not use the entire block.
42
New cards
Dynamic partitioning
Memory is partitioned at run time as processes arrive.
43
New cards
Hole
A maximal contiguous block of free memory.
44
New cards
First-Fit
Choose the first hole large enough for the process, searching from the beginning of the hole list.
45
New cards
Next-Fit
Choose the first hole large enough, starting where the previous search stopped and wrapping around if needed.
46
New cards
Best-Fit
Choose the smallest hole that is still large enough for the process.
47
New cards
Worst-Fit
Choose the largest hole that is large enough for the process.
48
New cards
External fragmentation
Free memory exists but is split into separate holes, making it difficult to find one sufficiently large contiguous block.
49
New cards
Compaction
Relocating allocated blocks/processes so small holes merge into a larger contiguous free block.
50
New cards
Segmentation
A program is divided into variable-length modules called segments, such as code, stack, data, and heap segments.
51
New cards
Base (segmentation)
The starting physical address where the segment resides.
52
New cards
Limit (segmentation)
The length of the segment.
53
New cards
Paging
A non-contiguous memory-allocation scheme that divides virtual memory into fixed-size pages and physical memory into equal-size frames.
54
New cards
Page table
It stores the mapping from virtual page numbers to physical frame numbers, along with other attributes.
55
New cards
TLB
A small, low-latency cache in the MMU that stores page-to-frame mappings for a small subset of pages.
56
New cards
TLB hit
The requested page-to-frame mapping is found in the TLB.
57
New cards
TLB miss
The mapping is not in the TLB, so the page table must be consulted.
58
New cards
TLB hit ratio
The fraction of memory references for which the required page mapping is found in the TLB.
59
New cards
Virtual memory
A memory-management approach in which only part of a process image needs to be in main memory at a time.
60
New cards
Principle of locality
During a given period, a process typically accesses only a small portion of its address space; also called locality of reference.
61
New cards
Spatial locality
Referencing memory addresses near previously referenced addresses.
62
New cards
Temporal locality
Referencing memory addresses that were referenced in the past.
63
New cards
Demand paging
Load pages into memory only as they are needed/referenced.
64
New cards
Page fault
A page fault occurs when a valid page is referenced but is not currently in main memory.
65
New cards
Valid / present bit
Whether the referenced page is currently in memory.
66
New cards
Random page replacement
Choose a page to replace randomly.
67
New cards
FIFO page replacement
Replace the page that has been in memory the longest.
68
New cards
Belady's anomaly
For FIFO, increasing the number of frames can sometimes increase the number of page faults.
69
New cards
LRU page replacement
Replace the page that has not been referenced for the longest time in the past.
70
New cards
NRU
Not Recently Used: an approximation of LRU that uses reference and modify bits and favors recently referenced pages.
71
New cards
NRU reference bit
It is set whenever the page is referenced and is cleared periodically.
72
New cards
NRU modify bit
It is set whenever the page is modified.
73
New cards
NFU
Not Frequently Used: approximates page usefulness using a count of references and favors pages referenced more frequently.
74
New cards
Aging algorithm
An approximation that periodically shifts reference information into a counter so recent references matter more than old ones.
75
New cards
Second-Chance page replacement
A FIFO-style algorithm that gives a referenced page another chance instead of immediately replacing it.
76
New cards
Thrashing
A condition in which a process/system spends excessive time moving pages between memory and backing storage instead of executing useful work.
77
New cards
Working-set idea
Keep the set of pages a process has been actively referencing during a recent window in memory.
78
New cards
Copy-on-write
Parent and child initially share pages; a page is copied only when one process attempts to modify it.
79
New cards
Platter
A disk surface on which data is magnetically recorded.
80
New cards
Track
A circular path on the surface of a platter.
81
New cards
Cylinder
The set of tracks at the same arm position across platter surfaces.
82
New cards
Sector
A fixed-size subdivision of a track and the smallest unit of data transfer in the disk description.
83
New cards
Seek time
Time taken to move/locate the disk arm to the specified track containing the desired data.
84
New cards
Rotational latency
Time waiting for the desired sector to rotate under the read/write head.
85
New cards
Transfer time
Time required to actually read or write the requested data once positioned.
86
New cards
FCFS disk scheduling
Service disk requests in the order in which they arrive.
87
New cards
SSTF disk scheduling
Service the pending request requiring the shortest seek from the current head position.
88
New cards
SCAN disk scheduling
Move the head in one direction servicing requests, then reverse direction and continue servicing requests.
89
New cards
C-SCAN
Service requests in one direction only; at the end, return to the beginning without servicing requests on the return trip.
90
New cards
LOOK
A modified SCAN algorithm that reverses after the last request in the current direction instead of traveling all the way to the end of the disk.
91
New cards
C-LOOK
The circular version of LOOK: service in one direction and travel only as far as the last request rather than the physical end of the disk.
92
New cards
RAID
A scheme that combines multiple disks to improve performance and/or provide fault tolerance.
93
New cards
Striping in RAID
Distributing data across multiple disks.
94
New cards
Fault tolerance in RAID
Using redundant information so data can remain available/recoverable despite disk failures.
95
New cards
File
A file is a unit of persistent storage on a computer system and a named collection of related information stored on secondary storage.
96
New cards
Directory
A file-system structure used to organize files and map names to stored file information.
97
New cards
Single-level directory
A directory structure with only one directory, the root.
98
New cards
General access control
Use an access-control list to explicitly specify the type of access each user has to a file or directory.
99
New cards
Limited access control
Classify users broadly as owner, group, and others, and specify permissions for each category.
100
New cards
Hybrid access control (1)
Use limited access control by default and add an access-control list when finer-grained control is needed.