Skip to main content.

Overview

Operating system is an essential part of any computer system.  It is crucial for the students of computer specialty to understand the principles underlying the operating system design and implementation so that they can take advantages of facilities provided by the operating systems and can handle the complex problems should they happen.  Starting with the brief historical perspective of the evolution of the operating systems, we then turn our attention to the kernel aspects of general purpose multi-tasking operating systems, covering most major components such as: process management, resource allocation, memory management, time management, file management, and security.  We will explore a number of different actual operating systems throughout the course to study the real implementations.

Objectives

This is a pragmatic operating system course with emphasis on investigative experiments.  After the end this course, students should have a basic practical understanding of the following:

  1. Design and implementation issues of contemporary operating systems.
  2. Detailed analysis of process, multithreading, symmetric multiprocessing, and microkernel.
  3. Memory management techniques, including virtual memory.
  4.  File Systems.
  5.  I/O Systems.
  6.  Security.

Instruction Approach

In order to be successful in this course

  1. Students are required to read the handout before attending each class session.
  2. Every week, there will be a quiz on the subject we are going to study.  A quiz will help students prepare for the upcoming topics.
  3. The assignments will be assigned before each topic is introduced to encourage the student to prepare for the upcoming lecture.  Moreover, another assignments will be assigned after each topic to reinforce the understanding.
  4. There will be approximately 2-3 programming assignments for each week.  These assignments are designed to stimulate the understanding of the compiler construction concepts while instituting the discipline software engineering practice.
  5. Every week, students will present progress on their semester-long project.  Each project must be an compiler for a high-level programming language.

References

The main book for this course is

Abraham Silberschatz, et al., Operating System Concepts with Java, 7th Edition, John Wiley, 2007, ISBN 978-0-471-76907-1

The other references for this course are

  1. William Stallings, Operating Systems: Internals and Design Principles, 5th Edition, Prentice Hall, 2005, ISBN 0-13-147954-7
  2. Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, Operating Systems, 3rd Edition, Prentice Hall, 2004, ISBN 0-13-182827-4
  3. Gary J. Nutt, Operating Systems, 3rd Edition, Addison-Wesley, 2004, ISBN 0-201-77344-9
  4. Lubomir F. Bic and Alan C. Shaw, Operating Systems Principles, Prentice Hall, 2003, ISBN 0-13-026611-6
  5. Andrew S. Tanenbaum, Modern Operating Systems, 2nd Edition, Prentice Hall, 2001, ISBN 0-13-092641-8
  6. Andrew S. Tanenbaum and Albert S. Woodhull, Operating System: Design and Implementation, 3nd Edition, Prentice Hall, 2006, ISBN 0-13-142938-8

Other books that may be useful are those about operating systems.

Course outline

The following schedule is tentative only; it may change depending on the circumstances. 

Week Topics
1 Introduction to Operating System
2 Operating System Structures
3 Process
4 Thread
5 CPU Scheduling
6 Process Coordination
7 Deadlocks
8 Midterm
9 Memory Management
10 Virtual Memory
11 File System-Interface
12 File Sysgtem-Implementation
13 I/O Systems
14 Protection
15 Security
16 Conclusion
17 Final Exam

Note that the above schedule is tentative by nature; it may change at the instructor's discretion.

Evaluation

The course evaluation will be divided equally between examinations and assignments.  The distribution of each half is shown below.  

Items Weight
Individual Assignments 15%
Group Assignments 15%
Discussion 15%
Game Participation 15%
Midterm Exam 20%
Final Exam 20%

Please make sure that you have carefully read and understand the academic policy.

Note that the above description is only tentative; it may change at the instructor's discretion.