CS 370 Syllabus

Introduction to Operating Systems

Revised: December 2008 (Andrew R. Dalton)

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; 3 credit hours. Prerequisites: CS 151.

Objectives

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

Text

   1. A. Tanenbaum and A. Woodhull.  Operating Systems Design and Implementation, Third Edition.  Prentice Hall. 

Optional:

   1.   J. Corbet, A. Rubini, and G. Kroah-Hartman.  Linux Device Drivers, Third Edition.  O'Reilly.  Online Copy

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 the C Programming Langauge
    An abbreviated overview of the C programming language.
  • Introduction to Operating Systems
    Some basic terminology (process, kernel), functions of operating systems, history of operating system development, current system classifications (parallel, distributed, real-time).
  • 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, pthreads, Java synchronization.
  • Deadlock Handling
    Deadlock characterization, deadlock prevention, deadlock avoidance, and deadlock detection.
  • Process Scheduling
    Scheduling algorithms both in general and for UNIX and Minix3.
  • 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, caching, cache coherency, 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. Linux and Minix examples.
  • 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.

Copyright 2013 by Western Carolina University       •     Cullowhee, NC 28723       •      Contact WCU
Maintained by the Office of Web Services       •      Directions       •      Campus Map       •      Emergency Information       •      Text-Only

Office of Web Services