EE 469: Operating Systems Engineering

Syllabus


School of Electrical and Computer Engineering
Purdue University

Spring 2001


Contact Information


Prerequisites

EE 365 and EE368.


Course Description

The design and construction of operating systems for both individual computers and distributed (networked) systems. Basic concepts and methods for managing processor, main memory, block-structured storage, and network resources are covered. Detailed examples are taken from a number of operating systems, emphasizing the techniques used in networked versions of UNIX. These techniques are then applied to design improvements to portions of networked UNIX-based operating system; the improvements are then implemented in the associated laboratory course and performance is evaluated.


Course Objective

The student will, upon completion of this course, understand basic operating system concepts for both single computers and distributed (networked) systems. In particular, the student should become familiar with the techniques used within UNIX-derived operating systems. The associated laboratory experience augments this conceptual understanding of operating system design and construction by giving the student "hands-on" experience. Projects will be implemented using networked personal computers running Linux, a "freeware" version of POSIX-complaint UNIX.

Course Outcomes:

The student will be able to
  1. understand basic concepts of processes, process control, synchronization, scheduling (1,a)
  2. understand concepts and technologies in memory management, secondary and tertiary storage management, file systems distributed and networked operating systems. (1,3,a)
  3. model and analyze the performance of OS components (1, 2, 4, a, b)
  4. design and modify components of an operating system (1, 4, 3, a, b, c, e, k)


Textbook

Silberschatz and Galvin, Operating System Concepts, fifth edition, Addison Wesley; course notes will also be available either as hardcopy or as HTML on-line documents.


Course Topics and Rough Schedule

Weeks Topic Book Chapters
1-2 Introduction to OS
Basics, Design Principles
1-3
3 Processes 4
4 CPU Scheduling 5
5-6 Process Synchronization 6
7-8 Deadlocks 7
8-10 Memory Management 8-9
10-11 File Systems 10-11
12-13 Protection and Security 19-20
13-14 Networking 15
14-15 Distributed Systems 16-18

Laboratory Structure

There will be approximately six laboratory projects. All projects will be implemented using the C and C++ language under the Linux operating system. Linux is a POSIX-compliant version of UNIX which runs on 386/486/Pentium-based personal computers. This laboratory will ensure that students will become familiar with both the external and internal structure of Linux. Each project submitted must be accompanied by hypertext documentation written in HTML. Specific information on the lab assignments can be found on the lab page.



Examination Policy

Exams are closed book and fixed duration. Make-up exams will only be given when a student is prevented from taking the exam due to unforeseen circumstances (e.g., sickness), and formal proof will be required to prove the prevailing circumstance.


Academic Honesty

Cheating in any form will not be tolerated. You may discuss programming assignments with anyone. However, any help you receive must be documented. At the beginning of your program, you must include a comment indicating the sources you used while working on it (excluding course staff and text), and the type of help you received from them. If you received no help, say so. Failure to include this comment at the top of your program will result in your program being returned ungraded.

Homeworks are expected to be worked on individually. Labs are expected to be performed by individual groups. Collaboration in any form will not be tolerated. Any form of collaboration or copying of labs will be dealt with according to university policy. (failing grade for the class, etc.)


Grading Policy

Grades will be assigned on the basis of accumulated points. The weighting is as follows:


Letter Grades

The following general range will be used:

Note that failure to demonstrate the outcomes for the class will result in a failing grade.



Main Page | Syllabus | Class Calendar | Class Notes | Labs |

Assignments & Handouts | Links | Reading List

David S. Ebert