CS 3733 Operating Systems Second Midterm Exam Review: Fall 2009
This will be a closed book exam.
Listed here are the major topics covered on the midterm exam.
This is a tentative list and will be updated before the exam.
The exam is comprehensive, but will concentrate on the material since the
last exam.
1. Introduction: what is an operating system?
buffering, spooling, multiprogramming, time sharing
2. Processes
process state, process control block, concurrent processes
3. C programming
storage and linkage classes, the meaning of the word static.
4. Process scheduling
job queue, ready queue, device queues, schedulers, performance criteria,
FCFS, SJF, SJFA, round robin, priorities, preemptive scheduling,
multilevel queues, multilevel feedback queues,
process scheduling simulator experiments,
load average and context switch calculations (like from assignment 2).
Know how to do problems like the ones from Assignment 1, but do them by
hand, without using your program.
5. Using fork, wait, and exec
chains, fans, and trees of processes
6. Unix system calls
open, close, read, write, pipe dup2, getpid, getppid.
Understand that read and write do not always process all information
requested. Exception: small write to a pipe or FIFO.
7. I/O in Unix and C
file descriptors and file pointers, file descriptor table,
system file table, redirection.
Understand the difference in buffering when using file descriptors and file
pointers.
8. Unix directory structure
directories, inodes, hard links, symbolic links
9. Rings of processes
10. Threads
general ideas, you do not have to know the syntax for creating threads
11. Synchronization
producer-consumer problem, critical sections, critical section problem,
mutual exclusion, progress, bounded waiting, busy waiting, Peterson's solution,
Test-and-Set, Swap, semaphores, bounded buffer with semaphores, monitors,
dining philosophers, thread synchronization with mutexes, condition variables,
and semaphores.
12. Signals
Using the signal mask (sigprocmask),
catching and ignoring signals (sigaction), waiting for signals
(pause, sigsuspend, sigwait),
interrupted system calls, signal safety.
Make sure you understand the code from Example 8.25 from the notes
here.
13. Network Communication
client-server model, connectionless and connection-oriented,
UICI
14. Memory Management
partitions, paging, TLB ...