Clark School Home UMD

ENEE447 Operating Systems

Course Description: The course presents the theory, design, implementation, and analysis of computer operating systems. Through classroom lectures, homework, and projects, students learn the fundamentals of concurrency and process management, inter-process communication and synchronization, job scheduling algorithms, memory management, input/output devices, file systems, and protection and security in operating systems. The lectures will be complemented with a significant level of programming, bringing up a simple operating system from scratch, concurrently as the topics are discussed in lecture. A weekly recitation section will provide TA support and an informal laboratory atmosphere. Each student will have their own board, so development will be done largely outside of the classroom, at each student’s pace.

Prerequisite(s): ENEE 350, CMSC330, and CMSC351

Corequisite(s): None

Course Objectives:

  • Understand processes and process management
  • Understand synchronization and communication
  • Given a scheduling algorithm, determine time line of actions
  • Understand internals of file system
  • Implement simple device driver

Topics Covered:

  1. Introduction, processes, process management
  2. Inter-process communication (IPC) and synchronization, deadlocks
  3. Process scheduling
  4. Threads
  5. Memory management
  6. File system
  7. File protection; access control lists
  8. Input/Output System
  9. Device drivers
  10. Real-time operating systems
  11. Introduction to multiprocessor and distributed system issues