COMPUTER SCIENCE


Course Credits: 3 Units

Prerequisites: CMSC 123, CMSC 131

CMSC 125 - Operating Systems

Course Description

This course introduces the fundamental concepts and design principles of operating systems. Topics include process management, memory management, file systems, security, and distributed systems. The course will also cover current and emerging topics in operating systems, such as virtualization and cloud computing.

Course Learning Outcomes

After completion of the course, the student should be able to:

  1. Understand the basic concepts of operating systems and their design principles;
  2. Analyze and compare different types of operating systems and their architectures;
  3. Design and implement algorithms for process and memory management; and
  4. Apply knowledge in the above to design and develop system programs based on operating system abstractions and to write correct concurrent programs, including basic resource management techniques (scheduling or time management, space management) and considering issues such as performance and fairness objectives, and avoiding deadlocks.
Course Outline

UNIT 1. Overview of Computer Systems

UNIT 2. Evolution of Modern Operating Systems

UNIT 3. Processes

UNIT 4. Threads

UNIT 5. CPU Scheduling

UNIT 6. Synchronization, Primitives, and Deadlocks

UNIT 7. Memory Management

UNIT 8. I/O Management and Disk Scheduling

UNIT 9. Advanced Topics