CPS 356 Operating Systems Lecture Notes


  1. Introduction to operating systems & the UNIX & C programming environment ([OSCJ] Ch 1-2, [USP] Ch 1-2,4)
    1. introduction to operating systems (review of computer organization, C exercises)
    2. the UNIX philosophy (class UNIX page, UNIX Tutorial for Beginners, vi quick reference, vi editor, UW vi reference)
    3. files & directories (manipulation & management)
    4. system libraries & I/O

  2. Processes & threads ([OSCJ] Ch 3-4, [USP] Ch 2-6)
    1. processes (identification; getpid, creation; fork, & termination) & memory allocation/deallocation
    2. low-level I/O (open & close, & read & write)
    3. context switching
    4. compiling C in UNIX (static vs. dynamic linking, macros, conditional compilation, error handling, & debugging; RMS's gdb tutorial, valgrind tutorial)
    5. files & directories (data structures, inodes, & hard & symbolic links)
    6. process manipulation (wait & exec)
    7. the UNIX shell & process environment (variables, configuration, customization)
    8. implementing I/O redirection & interprocess communication (IPC; pipes & FIFOs)
    9. compilation management (Makefiles, make tutorial, another make tutorial, exercise in writing a Makefile)
    10. threads (storage classes & thread-safe functions)
    11. threads in Java (Oracle Java webpage, BlueJ, NetBeans, Eclipse, Java Thread class)
    12. (shell) job control (through signals) & terminals

  3. Scheduling ([OSCJ8] Ch 5)
    1. types, evaluation criteria, & algorithms (FCFS, SJF, SRTF, RR)
    2. multi-level queues & multi-level feedback queues

  4. Synchronization ([OSCJ] Ch 6)
    1. mutual exclusion & the critical section problem (§§6.1-6.4)
    2. semaphores (§6.5) (The Little Book of Semaphores, Java lang.util.concurrent.Semaphore class)
    3. classical problems of synchronization (§6.6)
    4. monitors (§6.7) (Java lang.util.concurrent.locks package)

  5. Deadlock ([OSCJ] Ch 7)
    1. deadlock prevention (§§7.1-7.4)
    2. deadlock avoidance & Banker's algorithm (§7.5) (Banker's examples)
    3. deadlock detection (§7.6) & recovery (§7.7)

  6. Memory Management ([OSCJ] Ch 8)
    1. fundamentals (overview of hardware, logical vs. physical address space, dynamic loading & linking) (§§8.1-8.2)
    2. contiguous allocation (§8.3)
    3. paging (§§8.4-8.5)
    4. segmentation, segmentations faults, &buffer overflows (§§8.6-8.8)

  7. Virtual Memory ([OSCJ] Ch 9)
    1. demand paging (§§9.1-9.3): Apr 12
    2. page replacement algorithms (FIFO, optimal, LRU; §9.4): Apr 19 21
    3. allocation (§9.5) & thrashing (§9.6) & course reflection (terms)

    Practice problems


References

    [ATT] UNIX System Calls and Libraries -- Part 1, Version 2.1.1, AT&T, 1990.
    [C] C Language for Experienced Programmers, Version 2.0.0, AT&T, 1988.
    [COPL] R.W. Sebesta. Concepts of Programming Languages. Addison-Wesley, Boston, MA, Sixth edition, 2003.
    [CPL] B.W. Kernighan and D.M. Ritchie. The C Programming Language. Prentice Hall, Upper Saddle River, NJ, Second edition, 1988.
    [OSC9] A. Silberschatz, P.B. Galvin, and G. Gagne. Operating Systems Concepts. John Wiley and Sons, Inc., Ninth edition, 2013.
    [OSCJ8] A. Silberschatz, P.B. Galvin, and G. Gagne. Operating Systems Concepts with Java. John Wiley and Sons, Inc., Eighth edition, 2010.
    [OSIDP] W. Stallings. Operating Systems: Internals and Design Principles. Prentice Hall, Upper Saddle River, NJ, Sixth edition, 2009.
    [PGUS] M.G. Sobell. A Practical Guide to the UNIX System. Addison-Wesley, Reading, MA, Third edition, 1995.
    [UPE] B.W. Kernighan and R. Pike. The UNIX Programming Environment. Prentice Hall, Upper Saddle River, NJ, Second edition, 1984.
    [USP] K.A. Robbins and S. Robbins. UNIX Systems Programming: Concurrency, Communication, and Threads. Prentice Hall, Upper Saddle River, NJ, Second edition, 2003

© S. Perugini, Spring 2010, University of Dayton. Permission to use ideas about the organization of topics and any notes or material is granted, provided suitable acknowledgments and citations are made.
Return Home