CS 3733 Operating Systems Second Midterm Exam Review: Spring 2008
This will be a closed book exam.
It will take place on Friday, April 4, during the regular lecture class
period and the lab. It should take you about one hour to complete the
exam, but you will have about one hour and 30 minutes to complete the exam.
Listed here are the major topics covered on the midterm exam.
You are also responsible for understanding all of the programming assignments
through Assignmnet 4.
This is a tentative list and will be updated before the 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 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
logical and physical addresses, partitions, MMU
Here is a review of the recitations
since the last exam.