Operating Systems (CS 543)

 Announcments  Lectures  Programs  Course Resources   Assignments and Solutions  Grading Policy
Course Description
Covers the classical internal algorithms and structures of operating systems, including CPU scheduling, memory management, and device management. Considers the unifying concept of the operating system as a collection of cooperating sequential processes. Covers topics including file systems, virtual memory, disk request scheduling, concurrent processes, deadlocks, security, and integrity.
Operating Systems is part of the flexible core requirement for the M.S. and Ph.D. Computer Science requirements and is an elective for M.S.S.E. students in the Computer Science concentration. The course may be taken by other students with sufficient Computer Science background (strong programming skill, data structures and algorithms, computer architecture and an introduction to concurrency - see the prerequisites) who have an interest in learning how an operating system works.
Course Themes
Course Objectives
  1. To understand the services provided by and the design of an operating system.
  2. To understand the structure and organization of the file system.
  3. To understand what a process is and how processes are synchronized and scheduled.
  4. To understand different approaches to memory management.
  5. Students should be able to use system calls for managing processes, memory and the file system.
  6. Students should understand the data structures and algorithms used to implement an OS.
Course Benefits
Strong programming skills (Knowledge of C), elementary data structures and algorithms (e.g. CS 260), computer architecture (e.g. CS 281-82) and an introduction to concurrency (e.g. CS 361).
Jeremy Johnson
Office: University Crossings 100C
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: MR 4:00-5:30 (UC 139 and online) additional hours by appointment.
Ann Marie Schilling
e-mail: amveca AT yahoo DOT com (include cs543 in header)
office hours: online by appointment
Meeting Time
Thursday 6:30-9:30 in Univ. Crossings 153 and online. The online and in class versions of the course will be identical (in class lectures will be recorded and posted on BbLearn and use of online discussions will be required by everyone).
Course Discussion Groups
BbLearn will be used for class discussion and announcements - check regularly

Please use this list for questions and discussions related to the course. If you know the answer to someone's question, please feel free to jump in, as long as well it is not an answer to a homework problem. I will moderate the list so that frivolous mail and spam is not forwarded.


  1. System Calls
  2. Processes
  3. Scheduling and Deadlock
  4. File System Interface and Implementation
  5. The Memory System and Virtual Memory
  6. OS Organization and Special Purpose Systems
  7. Protection and Security


  1. Programming Assignments (50%)
  2. Online quizzes (25%)
  3. Final Exam (25%)
Programming assignments will be done in pairs


Reference Books
  1. Daniel P. Bovet and Marco Cesati", Understanding the Linux Kernel, 3rd Edition, O'Reilly, 2005. This book is available, electronically, through Safari Tech Services at www.library.drexel.edu.
Web Pages
  1. TBA.

Look Here for Important Announcements

Announcements (Last updated Sun. Mar. 21)


This list is tentative and may be modified at the instructor's discretion. Lectures may be viewed at: Course lectures
  1. Lecture 1: Overview and System Calls (chs. 1-2 of OS Concepts and ch. 1 of LKD)
  2. Lecture 2: Processes and Threads (chs. 3-4 of OS Concepts and ch. 2-3 of LKD)
  3. Lecture 3: Scheduling (chs. 5 of OS Concepts and ch. 4 of LKD)
  4. Lecture 4: Synchronization (chs. 6 of OS Concepts and ch. 4 of LKD)
  5. Lecture 5: Deadlock (chs. 7 of OS Concepts and ch. 4 of LKD)
  6. Lecture 6: The Memory System and Virtual Memory (chs. 8-9 of OS Concepts and ch. 12 of LKD)
  7. Lecture 7: File System Interface and Implementation (chs. 10-11 of OS Concepts and ch. 13 of LKD)
  8. Lecture 8: File Systems, Disk Scheduling and I/O (chs. 12-13 of OS Concepts)
  9. Lecture 9: Linux Scheduler (chs. 5-7 of OS Concepts and ch. 4 of LKD)
  10. Lecture 10: The Linux Memory System (chs. 8-9 of OS Concepts and ch. 12 of LKD)

Programs and Worksheets




Created: 9/20/12 [last updated ] by jjohnson AT cs DOT drexel DOT edu