Skip to main content

CS 370 Syllabus

Introduction to Operating Systems

Revised: August 2018

Course Description

The system call interface and the implementation of the operating system kernel (process management, memory management, and file systems); concurrency (including synchronization primitives, inter-process communication and deadlock); system security. 


Corequisites & Notes

  • CS 352
  • 3 Credit Hours




After completing this course, you will better understand the implementation of, and services provided by modern operating systems. In particular, you will understand the system call interface to the operating system kernel, process and thread management, mutual exclusion, process scheduling, deadlocks, memory management, and file systems. Additionally, you will possess the programming skills needed to implement parallel applications using threads.


Abraham Silbershatz, Peter Baer Galvin, and Greg Gagne, Operating Systems Concepts with Java, Eight Edition, John Wiley and Sons, 2010.

Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general University policy.

Course Outline

  • Introduction to Operating Systems
    Some basic terminology (process, kernel), functions of operating systems, current system classifications (parallel, distributed, real-time).
  • Introduction to the C Programming Language
    An abbreviated overview of the C programming language.
  • System Call Abstraction
    Components of an operating system kernel, the system call interface (generic and UNIX-specific). Structuring of an operating system kernel (monolithic, microkernel, etc).
  • Basic Process Management and Threads
    Process state transition diagram, context switches, threads.
  • Process Synchronization
    Interprocess communication, the critical section problem, software solutions, semaphores, monitors, classical problems, Java synchronization.
  • Deadlock Handling
    Deadlock characterization, deadlock prevention, deadlock avoidance, and deadlock detection.
  • Process Scheduling
    Scheduling algorithms.
  • Input/Output
    An introduction to the aspects of computer hardware relevant to the operating system including device drivers, I/O interrupts, interrupt vectors, DMA, memory-mapped I/O, programmed I/O, interupt-driven I/O, storage hierarchy, dual-mode operation, memory protection using base and limit registers, timer interrupts and time slicing (quantums and preemptive CPU scheduling).
  • Memory management
    Memory management for non-virtual memory systems: swapping, contiguous allocation, segmentation, and paging. Virtual memory systems: demand paging, page replacement, and thrashing.
  • File Systems and Secondary Storage (Time permitting)
    The kernel I/O subsystem (interrupt handling and device drivers), disk scheduling, the file system interface, and file system implementation.
Office of Web Services