EECS 3221

Operating Systems

Contact Info
Last Modified:
May 11 2021

Course Description

This course will cover the fundamental concepts that underlie operating systems, including multiprogramming, concurrent processes, CPU scheduling, deadlocks, memory management, file systems, protection and security. Many examples from real systems are given to illustrate the application of particular concepts.
  • Introduction, (basic definitions, OS components and structures).
  • Processes (scheduling, communication, operations).
  • Threads (multi-thread programming, multi-core systems, thread libraries and implementations).
  • Process Synchronization (critical section problem, deadlocks, software and hardware solutions, mutex locks, semaphores, monitors, classic problems).
  • CPU Scheduling (Criteria and algorithms, thread scheduling, multiproicessor scheduling, real-time scheduling).
  • Main Memory (swappiung, memory allocation, segmentation, paging, structure of page tables).
  • Virtual memory (demand paging, copy on write, page replacement, allocation, thrashing, memory mapped files, allocating kernel memory).
  • Mass Storage (Disk organization, attachment, scheduling, management, swap space).
  • File System Interface (access methods, directories, mounting, sharing, protection)
  • File System Implementation (file system structure, directory implementation, allocation methods, efficiency, recovery)

Lecture Hours

Tue. and Thu. 11:30-1:00 on zoom. Office hours Tue and Thu. 1:00-1:30. Normally my office hours are in my office Lass. 3049 but now are on zoom.

Programming Assignments

There will be three programming assignments involving process operations, threads and synchronization and memory management. The programming language is C and the programs will have to run on our Linux systems. Each assignment is worth 10%.


There will be a midterm worth 25% and a final worth 45%. The final will cover all the material in the course. Both the midterm and the final will be on eclass, open book.


The text is A. Silberschatz, P.B. Galvin, G. Gagne, “Operating System Concepts,” 10th Edition, John Wiley & Sons, 2018.

Last Modified: May 11 2021