CPSC 4420 Operating Systems

!INCLUDE "head.md"

Course Catalog Description

This course focuses on the fundamentals of operating systems (OS), including how the OS manages processes, memory, I/O, and file management. Process and thread management are emphasized, including synchronization, communication, races, and deadlocks. Virtual memory, virtualization/hypervisors, and disk management are also discussed. With each topic, the security implications and design considerations are thoroughly discussed. PREREQUISITE: CPSC 2420 and CPSC 2500.

Required Resources

Course objectives

Upon completion of this course, students will be able to:

  • Describe low level operating system concepts, including kernel mode vs. user mode and the roles of the CPU, memory, busses, I/O and other hardware concepts.
  • Write programs using the C language to create new processes and perform interprocess communication.
  • Write C programs to utilize parallelism, including thread creation and interthread communication.
  • Identify race conditions, and describe how to use mutual exclusion, semaphores, mutexes, and condition variables to address this issue.
  • Describe classical interprocess communication problems, including the Producer-Consumer problem, the Dining Philosopher problem, and the Readers and Writers problem.
  • Identify the operating system's role in scheduling processes and threads, including common scheduling algorithms.
  • Describe memory abstractions, including base and limit registers, swapping, and virtual memory.
  • Examine the operating system's role in memory management, including the function of multi-level caching, the MMU, and the TLB.
  • Describe common file system structures, and the operating system's role in file system management.
  • Implement programs in C which explore issues in memory management and/or file system management.

Course Overview

Please refer to Canvas for a list of assignments and detailed grading breakdown.

Presentations

Students will complete a presentation sharing knowledge of a specific operating system of interest with their peers.

Labs

Students will complete regular labs using various technologies. Labs that include code that does not compile or parse correctly will be given zero credit.

Quizzes and Homework

Regular quizzes will be given covering the lecture material. Students will have two attempts on each quiz, one at the start of class and one at the end. Only the highest score will be kept. The lowest score from the semester will not count toward the final grade. Students will also complete homework assignments covering various topics from the course text.

Exams

A total of 3 exams will be taken in this course. All exams are cumulative with a focus on more recent material.

!INCLUDE "tail.md"