CSE 430
Operating Systems
Spring 2000

Instructor/Teaching Assistants:

Names Room Phone Office Hours
Instructor: Partha Dasgupta
Email: p a r t h a @ a s u . e d u
GWC 326 965-5583 MW 3:30-4:30
Fri: By appt.
Teaching Assistants: To be announced

Text Book

Course Contents:

  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.
  5. Memory Management:
    1. Memory Allocation protocols
    2. Paging/Segmentation
    3. Virtual Memory
    4. Demand Paging
    5. Page Replacement
  6. Deadlock Handling
    1. Deadlock Concepts and Conditions
    2. Avoidance and Prevention
    3. Banker's Algorithm
  7. Device Management:
    1. Disks and Peripherals
    2. Device Drivers
    3. Disk Scheduling
  8. File Systems
    1. File Naming
    2. Directory Management
    3. File Access Methods
    4. Protection
  9. Introduction to Networking

Homeworks and Projects

Homeworks will be assigned as material is covered. About 2 - 3 homeworks in the first 6 weeks of class.

Programming projects will be assigned towards the latter of the class. Expect 2 projects in the second 6 weeks of class.

Programming projects will involve writing concurrent programs and executing them on a Unix machine. Some software and examples will be provided. Programming will use the C language. Some knowledge of using Unix (editing, compiling) is essential, and expected. Knowledge of basic programming in C will be assumed. Number and complexity of projects will be determined as the course proceeds. Information on usage of shared memory and semaphores in Unix will be provided.

Grading and Exams