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