CS 370 Syllabus

Introduction to Operating Systems

Revised: February 2015

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. Prerequisite: CS 151. Three semester hours.

Student Learning Objectives

By the end of the course students will be able to:

  • Understand the system call interface and key concepts in the design of an operating system kernel
  • Understand concurrency problems and solution techniques

Text

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 (pthreads, time permitting).
  • Deadlock Handling
    Deadlock characterization, deadlock prevention, deadlock avoidance, and deadlock detection.
  • Pr ocess 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
    The kernel I/O subsystem (interrupt handling and device drivers), disk scheduling, the file system interface, and file system implementation.
Office of Web Services