CMSC 412 Topics in Detail

UPDATED May 13 2015 

We will cover the following topics (more or less) in this order.

OSC refers to the text, “Operating Systems Concepts with Java, 6th edition”. Most of this is covered, directly or indirectly, in class; go over the rest on your own. (Other OSC editions (including other 6th editions) have the same material, usually with the same section titles but perhaps different section/chapter numbers.)

CLP refers to the slides or notes available on the class page links.


1. Introduction to Operating Systems

  • OSC chapter 1 Introduction.
    • Casual overview adequate.
  • OSC chapter 2 Computer-System Structures.
      Casual overview adequate.
  • OSC chapter 3 Operating-System Structures.
      Casual overview adequate (can skip section 3.7 Java).
  • CLP Course overview.

2. ToyOS

  • CLP ToyOS.

3. Overview of GeekOS

  • CLP GeekOS overview.

4. Processes and Threads

  • CLP OS Processes
  • OSC chapter 4 Processes.
      4.1 Process concept; 4.2 Process scheduling; 4.3 Operations on processes; 4.4 Cooperating processes; 4.5 Interprocess Communication
  • OSC chapter 5 Threads:
      5.1 Threads overview; 5.2 Multithreading models; 5.3 Threading issues; 5.4 Pthreads.
  • OSC chapter CPU Scheduling:
      6.1 Basic concepts; 6.2 Scheduling criteria; 6.3 Scheduling algorithms (casual overview sufficient); 6.4 Multiple-Processor Scheduling; 6.6 Thread Scheduling

5. Implementing Locks, Conditions and Semaphores

  • CLP Implementing Locks, Conditions and Semaphores
  • OSC chapter 7 Process Synchronization:
      7.1 Background; 7.2 The Critical Section Problem; 7.4 Synchronization hardware; 7.5 Semaphores;

6. Memory management

  • CLP Memory managment
  • OSC chapter 9 Memory Management:
      9.1 Background; 9.2 Swapping; 9.3 Contiguous-Memory Allocation; 9.4 Paging (skip: 9.4.4.2 Hashed Page Tables; 9.4.4.3 Inverted Page Tables) ; 9.5 Segmentation; 9.6 Segmentation with Paging.
  • OSC chapter 10 Virtual Memory:
      10.1 Background; 10.2 Demand Paging; 10.3 Copy-on-Write; 10.4 Page Replacement; 10.5 Allocation of Frames; 10.6 Thrashing; 10.8 Other Considerations.

7. Filesystems

  • CLP Filesystems
  • OSC chapter 11 File-System Interface:
      11.1 File Concept; 11.2 Access Methods; 11.3 Directory Structure; 11.4 File-System Mounting; 11.5 File Sharing; 11.6 Protection.
  • OSC chapter 12 File-System Implementation:
      12.1 File-System Structure; 12.2 File-System Implementation; 12.3 Directory Implementation; 12.4 Allocation Methods; 12.5 Free-Space Management; 12.6 Efficiency and Performance; 12.7 Recovery; 12.8 Log-Structured File System; 12.9 NFS.

8. Deadlocks

  • CLP Deadlocks
  • OSC chapter 8 Deadlocks:
      8.1 System Model; 8.2 Deadlock Characterization; 8.3 Methods for Handling Deadlocks; 8.4 Deadlock Prevention; 8.5 Deadlock Avoidance; 8.6 Deadlock Detection; 8.7 Recovery from Deadlock; 8.8 Summary;

9. Queueing

  • CLP Queueing
  • OSC chapter CPU Scheduling:
      6.1 Basic concepts; 6.2 Scheduling criteria; 6.3 Scheduling algorithms (casual overview sufficient); 6.4 Multiple-Processor Scheduling; 6.6 Thread Scheduling

10. Concurrent Programming

  • CLP On Concurrent Programming
  • OSC chapter 7 Process Synchronization:
      7.6 Classical synchronization problems.

11. TBD