Skip navigation

Site Map | College of Engineering | UC Davis | MyUCDavis

ECS 150 OPERATING SYSTEMS AND SYSTEM PROGRAMMING(4) I,III

Lecture: 3 hours

Discussion: 1 hour

Prerequisites: Course ECS 40; course ECS 154A or EEC 70; course ECS 154B or EEC 170 strongly recommended

Grading: Letter; homework (15%), laboratory (15%), midterm (30%), final (40%)

Catalog 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.

Expanded Course Description:

  1. Overview
    1. Purposes and Types of Operating Systems
    2. Concepts of Layered OS Design, Process-Oriented Structure and Virtual Machines
    3. Interactions with Computer Architecture
  2. Process Management
    1. Need for Concurrency
    2. Concept of Virtual Machine
    3. Process Synchronization Mechanisms and Deadlock
    4. Process Scheduling
    5. Program Loading, Linking and Memory Management
    6. Introduction to Computer Security
  3. I/0 and File Systems
    1. Layered I/0 System Software
    2. Terminal I/0
    3. Disk I/0
    4. File Structures
  4. Systems Programming
    1. System-Dependent Software Design and Development
    2. MINIX System Software, especially for Process Control, Memory Management, Input/Output and File Management
    3. UNIX System Calls

Textbook:
McKusick and Nevile-Neil, Design and Implementation of the FreeBSD Operating System, Addison Wesley, 2005

Computer Usage:
Students must make changes to the MINIX operating system, which runs standalone on PCs or Sun SPARC stations.

Laboratory Projects:
The four laboratory projects involve modification of the MINIX operating system, which is a smaller and more tractable version of UNIX. The students will gain experience in operating system design and implementation through these assignments. Projects involve design and creation of modified schedulers, addition of I/O drivers, memory allocation, and other projects requiring extensive design and modification of MINIX source code. Design, testing and performance evaluation of completed projects are important components in grading these projects.

Engineering Design Statement:
The laboratory projects are open-ended design problems giving students opportunities to consider important design decisions in a modern operating system. Students are graded on the quality of the design and how it is validated through sample test programs. Examinations also include an important component of design questions.

ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units

Goals:
Students will:

Student Outcomes:

Instructors: F. Wu

Prepared by: K. Levitt, R. Olsson (Nov. 1996)

Overlap Statement:
This course does not duplicate any existing course.

Back to Course Descriptions