1/18
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
goals of an OS
resource allocator, make system easier for users to use, manage CPU time, memory space, etc
tasks of an OS: memory management
allocate/deallocate memory space, keep track of used memory blocks, which process is using them, decide which processes to move in/out of memory
shortest job first scheduling (how)
append each process with the length of the next CPU burst. Schedule jobs with the shortest time
pros/cons of SJF
optimal, but hard to know future CPU burst lengths
shared memory cons
potentially vulnerable to conflicts. race conditions may appear
message passing pros/cons
useful when no conflict resolution is wanted but is slower (each read/write needs kernel operations)
when is the message passing model NEEDED
to communicate between different systems that don’t share memory
message passing model
processes use a message-passing protocol to send/receive info between cooperating processes
shared memory model
processes agree on a region of memory to share among cooperating processes. they read/write there to exchange info
independent vs cooperating processes
independent - doesn’t share any data while executing. cooperating - can affect/be affected by other processes
zombie process
child process that has been terminated but whose parents haven’t called wait() yet. kept in the system to return status to parent eventually
allocating system resources to child processes
either obtain resources directly from the OS. or share a subset of resources from the parent
shortest remaining time
if we allow SJF to be preemptive, we can interrupt a currently running process if it would run longer than some new process
I/O vs CPU bound
I/O - most time spent waiting for memory
CPU - most time spent in execution
process states
new, running, waiting, ready, terminated
starvation in scheduling
low priority processes may not execute
layered OS kernel
highest layer is UI, lowest is hardware. layers can only call functions from the layer below
convoy effect
short jobs held waiting by long jobs in FCFS
monolithic kernel
all kernel functions are in a single static binary file that runs a single address space