CS 3733 Operating Systems Final Exam Review: Fall 2006
This will be a closed book exam but you should bring a calculator.
Listed here are the major topics covered on 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 one
assigned in class.
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
12. Signals
Using the signal mask, catching and ignoring signals,
waiting for signals, interrupted system calls
13. Network Communication
client-server model, connectionless and connection-oriented,
UICI
14. Disk Head Scheduling
FCFS, SSTF, SCAN, LOOK, C-SCAN, C-LOOK
15. Memory Management
partitions, paging, TLB, virtual memory, page replacement
(FIFO, LRU, optimal, second chance), calculation of
effective memory access time.
Review of synchronization and critical sections
- Operating System
- in a multitasking OS, system functions may be called concurrently
- can keep separate data structures for each process
- protect shared data structures
- Single Process - no threads or signals
- shared variables - use semaphores, mutexes, monitors
- functions with side effects:
   I/O to shared resource
   use of static storage
- Threads
- global variables are shared and must be protected.
- Issues in returning automatic variables
- Multiple Processes
- shared variables must be protected (including system resources)
- If not shared variables, must find method of communication
- Single Process with signals
- signal handler can make modifying a global variable a
critical section
- signal handlers are restricted as to how they access library functions
- must protect errno
- general methods used for shared variables (semaphores, etc.)
do not work for signal handlers. Why?
Back to CS 3733 Homepage