In summary
Introduction
This course is about implementation of an operating system. Most of the operating system courses are strong on theory and weak on practice. The aim of this course is to provide implementation opportunity with fundamental principle of UNIX based operating Systems.
The theoretical part includes processes, inter process communication, semaphores, monitors, message passing, scheduling, input/output, deadlocks, device drivers, memory management subjects. For implementation, we will use the MINIX operating system - UNIX compatible operating system. Making modification on MINIX source code will give you a real experience with a micro kernel operating system and prepare you for a new OS technology.
Programming is the central part of this courses. After you learn the theory of operating system, you will apply it on the MINIX code. The theory is nice but coding is awful. For example you might have seen a beautiful linked list implementation in a data structure course. Instead of abstract data type, in MINIX you modify the list which includes processes, etc. To link a process, first you create a process control block and directly modify the next pointer of the tail process on the queue to point to the new one.
Most of the time in this course, you will spend , is for making modifications to the MINIX operating system. Therefore you will have to know the C language to do development under MINIX. As much as MINIX is unix compatible, you may not have the same commands that you are familiar in UNIX, so be prepared to spend a lot of time to figuring out what is going on with the MINIX operating system.
PREREQUISITES
CS 450 - Principle of Operating Systems
CS 351 - Systems Programming
UNIX and C Programming Background
ATTENDANCE POLICY
This class requires discussion and lecture. Therefore attendance is strongly encourage. Lack of attendance may affect your homework and exam grade.
TEXTBOOK
Operating System Design and Implementation, Andrew S. Tanenbaum and Albert
S. Woodhull, Prince Hall, 1997.
COMPUTER LAB AND PC
Because of programming requirements of the course and the limitation of computer facilities of Computer Labs, we encourage you to install the MINIX operating system on your computers.
WEEK BY WEEK TOPICAL OUTLINE ( GENERAL )
Topics to be covered -------------------------------------
Week 1 - Introduction
Week 2 - Conceptual Overview
- Chapter IWeek 3 - Processes
- Inter process Communication
Week 4 - Classical IPC
- Process Scheduling
Week 5 - MINIX Processes
- MINIX OS Source code organization
Week 6 - Software / Hardware Principles
- Input / Output
- Deadlocks
Week 7 - MINIX I/O
- RAM Disk
- Disks
Week 8 - MIDTERM EXAM Week 9 - Clocks - Terminals - MINIX System TasksWeek 10 - Basic Memory Management - Swapping - Virtual MemoryWeek 11 - Paging
- MINIX Memory Management
Week 12 - File System
- Design View
- File Server
Week 13 - Security- Protection Mechanism
- MINIX File System
Week 14 - Project / Selected Topics
Week 15 - Project Demonstration
GRADING POLICY
In general grading will be (yet to be finalized!)
En-Hsin Huang, huanenh@iit.edu