EE 469: Operating Systems Engineering
Syllabus
School of Electrical and Computer Engineering
Purdue University
Spring 2001
Contact Information
- Instructor: David S. Ebert,
ebertd@purdue.edu
- Office Hours: Tuesday, Thursday 3:00 - 4:00 and by appointment.
- Phone: 494-9064
- Teaching Assistants: An Chow lai, Irfan Khan, Snehal Khandar,Elvia
Suryadi
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
- understand basic concepts of processes, process control,
synchronization, scheduling (1,a)
- understand concepts and technologies in memory management, secondary
and tertiary storage management, file systems distributed and
networked operating systems. (1,3,a)
- model and analyze the performance of OS components (1, 2, 4, a, b)
- 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 |
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.
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:
- Midterm Exam 25%
- Final Examination 25%
- Labs 40%
- Homework / Quizes 10%
Letter Grades
The following general range will be used:
- 100-90, A
- 89-80, B
- 79-65, C
- 64-55, D
- 54-00, failing
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