ECS 150: Operating Systems & System Programming

Subject
ECS 150
Title
Operating Systems & System Programming
Status
Active
Units
4.0
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
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.
Prerequisites
(ECS 034 or ECS 036C or ECS 060); (ECS 154A or EEC 170)
Enrollment Restrictions
Pass One open to Computer Science Engineering, and Computer Engineering Majors only.
Pass Two open to Computer Science Majors.

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
None

Course Category