ECS 150: Operating Systems & System Programming

ECS 150
Operating Systems & System Programming
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Basic concepts of operating systems and system programming. Processes and interprocess communication/synchronization; virtual memory, program loading and linking; file and I/O subsystems; utility programs. Study of a real operating system. GE Prior to Fall 2011: SciEng. GE: SE.
(ECS 034 or ECS 036C or ECS 060); (ECS 154A or EEC 170)
Enrollment Restrictions
Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only.

Summary of Course Content
I. Overview

  • Purposes and Types of Operating Systems
  • Concepts of Layered OS Design, Process-Oriented Structure and Virtual Machines
  • Interactions with Computer Architecture

II. Process Management

  • Need for Concurrency and Threading
  • Concept of Virtual Machine
  • Process Synchronization Mechanisms and Deadlock
  • Process/Thread Scheduling with the consideration of Multicore architecture
  • Program Loading, Linking and Memory Management
  • Introduction to Computer Security

III. I/O and File Systems

  • Layered I/O System Software
  • Terminal I/O
  • Disk I/O
  • File Structures
  • File system reliability and integrity check

IV. Systems Programming

  • System-Dependent Software Design and Development
  • Operating System Software, especially for Process Control, Memory Management, Input/Output and File Management
  • UNIX System Calls

Illustrative Reading
M. McKusick and G. Nevile-Neil, Design and Implementation of the FreeBSD Operating System, Addison-Wesley, 2004.

Potential Course Overlap

Course Category