CSE 430: Operating Systems
Computer Science and Eng.         Fulton School of Eng.


Home Description Text Book Lecture Notes Course Instances Announcements Projects Assignments Resource Links Contact


Course Description

A comprehensive overview of the techniques, concepts, policies and mechanisms  used in the construction of Operating Systems (such as Unix, Linux, Windows and Mach). Course topics include scheduling, concurrency, memory management and device management.


  1. Introduction to Operating Systems:
    1. History
    2. Efficiency and Convenience
    3. Protection
  2. Operating System Services
    1. System Architecture
    2. System Calls
    3. Resource Management
  3. CPU Scheduling Concepts
    1. Context Switching
    2. Multi-Processing
    3. Long and Short term Scheduling
    4. Comparison of Scheduling Algorithms
    5. Timesharing Concepts
  4. Concurrent Processes
    (Note: The majority of the class time will be spent on this topic)
    1. Concurrency
    2. Race Conditions
    3. Mutual Exclusion and Synchronization
    4. Synchronization Techniques
    5. Semaphores
    6. Concurrent Programming Paradigms
    7. Readers/Writers, Dining Philosophers
    8. Language Support: Regions and Monitors
    9. Message Passing.
  1. Memory Management:
    1. Memory Allocation protocols
    2. Paging/Segmentation
    3. Virtual Memory
    4. Demand Paging
    5. Page Replacement
  2. Deadlock Handling
    1. Deadlock Concepts and Conditions
    2. Avoidance and Prevention
    3. Banker's Algorithm
  3. Device Management:
    1. Disks and Peripherals
    2. Device Drivers
    3. Disk Scheduling
  4. File Systems 
    1. File Naming
    2. Directory Management
    3. File Access Methods
    4. Protection

Course Evaluation

The students in the course are expected to attend all classes (or watch videos if online) and participate in discussions. The projects, homeworks and exams will be used to evaluate student performance.