Department and Course Number

CEG 433

Course Coordinator Prabhaker Mateti
Course Title

Operating Systems

Total Credits 4

Catalog Description

The management of resources in multi-user computer systems. Emphasis is on problems of file-system design, process scheduling, memory allocation, protection, and tools needed for solutions. Course projects use the C/C++ language and include the design of portions of an operating system. 4 credit hours.  Prerequisites: CEG 320, and CS 400.

Text Books

  1. Silberschatz & Galvin, Operating Systems, 5th Edition,  1998: John Wiley & Sons, Inc. ISBN 0-471-36414-2;  1997: Addison-Wesley,  ISBN 0-201-59113-8.
  2. W. Richard Stevens, Advanced Programming in the Unix Environment, Addison-Wesley, ISBN: 0-201-56317-7.

Home Page

www.cs.wright.edu/people/faculty/pmateti/Courses/433/

News Group

wright.ceg.433 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, home work, exams) to our news group. I am hoping for a lively discussion leading to good answers and clarifications. Keep an eye on this newsgroup.

Course Goals

The student should have learned the following:

  1. Hierarchical name spaces.
  2. Resource Allocation.
  3. Signal and exception handling
  4. Understand the interactions between applications and the hardware

The student should be able to apply the concepts above to the following:

  1. Develop, test and debug programs in Unix.
  2. Improve the performance of programs by tuning virtual memory usage, and file io.
  3. Understand the structure device drivers for Unix.
  4. Design and build newer file systems for any OS.

Prerequisites by Topic

  1. Fluency in C/C++
  2. Comfortable as a Unix user.
  3. Data structures: Stacks, Lists, and trees.
  4. CPU instruction set
  5. Physical memory organization
  6. I/O devices

Major Topics Covered in the Course

Wk Lectures Read
1 OS intro, (Unix) Systems Programming SG 1, 2; RS 1-4
2 File Systems Interface SG 10; RS 3,4
3 File Systems Implementation SG 11; RS 3, 5
4 OS components; Unix and Linux SG 3, 21,22; RS 7
5 Midterm, Memory Management SG 8
6 Memory Management in C/C++/Unix Notes, RS 7
7 Virtual Memory SG 9
8 Systems Software Notes; RS 7,10
9 Device Drivers Notes;RS10;SG12
A Processes and CPU scheduling; Windows 2000 SG 4, 5, 23

Laboratory Projects

There is one project for the course.  This is done in pieces that progressively build on the preceding ones.  Typically, the project is split into five pieces worth 5+5+10+5+5% respectively.

The projects are evaluated based on three criteria: (1) approach, clarity, and elegance, (2) correctness, and (3) efficiency. These projects must be work done solely by you, except for the parts provided by the instructor. The implementation must be in C or C++ demonstrable on our Linux systems.

Newsgroup Activity

wright.ceg.433 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, home work, exams) to our news group. I am hoping for a lively discussion leading to good answers and clarifications. Keep an eye on this newsgroup.  To encourage good participation, I am assigning 5% of the total weight.  I am not looking for mere volume of submitted articles, or just questions, but quality of answers and discussion you provide in the group.

Estimate CSAB Category Content

Core Advanced Core Advanced
Data Structures 0.5 Concepts of PL 0.5
Algorithms 1.0 Comp Organization + Architecture 1.0
Software Design 1.0 Other

Oral and Written Communications

There are no oral presentations.  Students submit source code of their projects along with a "ReadMe", a text file that highlights the design details as well as problems and defects in their program.  We do not claim that the ReadMe.txt constitutes written communications.

Social and Ethical Issues

None.

Theoretical Content

None.

Problem Analysis

The projects are about a component of Operating Systems reduced in size  and sophistication to fit a 10-week course.  Detailed analyses of the requirements of the project, e.g., File System, are performed by the student before implementing them.

Solution Design

The projects are about a component of Operating Systems reduced in size and sophistication to fit a 10-week course.  Skeletal solutions of the project, e.g., File System, are given by the instructor at the conceptual level in the lectures, and also in source code files.  The student needs to design further details and implement them.