Study
Guide for CS414 Midterm
Posted:
Friday, Oct 12, 2007
1.
The PDFs of the class notes (which can be
found at http://www.cs.virginia.edu/~humphrey/cs414)
up to and including Thurs Oct 4
NOTE: the material on synchronization (e.g., UNIX signals, race
conditions, critical sections, etc.) from Thurs Oct 11 will NOT be on the midterm (this is a change from what I stated
in class on Thurs Oct 11). I don't think it's fair to ask you about this on the
midterm, because we're only just getting started with this topic.
2.
The material in the book:
1.
If you have the 6th
edition,
then you are expected to know the first 6
chapters (pages 1-188), except:
I. Section 4.6 (“Communication in Client-Server
Systems”)
II. The details of the threads packages (Section
5.4, Section 5.5, Section 5.6, Section 5.7, Section 5.8) -- Note that of course
you are required to understand what a generic threads package is (up to
and including Section 5.3)
III. Section 6.7 ("Process Scheduling Models")
2.
If you have the 7th
edition,
then you are expected to know the first 5
chapters (pages 1-189), except:
I. Section 3.5 (“Examples of IPC Systems”)
II. Section 3.6 (“Communication in Client-Server
Systems”)
III. The details of the threads packages (Section
4.5) -- Note that of course you are required to understand what a generic
threads package is (up to and including Section 4.4)
IV. Section 5.5 (“Thread Scheduling”)
V. Section 5.6 (“Operating System Examples”)
3.
Assignment #1, Assignment #2, and Assignment #3
Material
to Know
Note:
this is not an exhaustive list – rather, this is just a general guideline of material
that could be covered on the exam
Overview & History reasons for studying OS single-user --> batch --> multiprogramming --> time-sharing --> desktop user interfaces: command line vs. GUI new architectures: multiprocessor, distributed, cluster, real-time, handheld Hardware & OS Background computer system structures I/O: interrupts, I/O structures, device-status table memory: DMA, memory hierarchy (primary vs. secondary), caching hardware protection: dual-mode, privileged instructions, base/limit registers, timer interrupts networking: LAN (e.g., Ethernet) vs. WAN (e.g., Internet) operating system structures OS components process mgmt, memory mgmt, file mgmt, I/O mgmt networking, protection, command interpreter OS services program execution, I/O, file system, communications, error detection system perspective: resource allocation, accounting, protection system calls: steps in system call, parameter passing kernel: applications programs vs. system programs OS structure: simple vs. layered vs. microkernel, virtual machines Processes & Threads process process states: new, running, waiting, ready, terminated PCB, process scheduling queues (ready, waiting, devices) schedulers: short-term (CPU scheduler), long-term (job scheduler) I/O bound vs. CPU-bound jobs, medium-term scheduler CPU context switching operations: creation (e.g., fork), termination (e.g., exit), others (e.g., execvp, wait) process coordination, communications (shared memory vs. message passing) threads lightweight process TCB advantages: responsiveness, resource sharing, economy, concurrency CPU scheduling historical perspective: simple --> complex --> simple --> complex CPU & I/O bursts, burst distribution design principle: mechanism vs. policy preemptive vs. nonpreemptive scheduling scheduling criteria CPU utilization, throughput, turnaround, response time, fairness scheduling algorithms FCFS, SJF (exponential averaging), priority scheduling (starvation, aging), RR (quantum size), multilevel queue, multilevel feedback queue multiple-processor scheduling, real-time scheduling scheduling algorithm evaluation deterministic models, simulation, queuing models, implementation