Prerequisite courses: Operating Systems I, Concurrent Systems and Applications
This course is a prerequisite for Advanced Systems Topics (Part II), Distributed Systems (Part II).
This course hopes to impart a detailed understanding of the algorithms
and techniques used within operating systems. It aims to consolidate
and build upon the knowledge learnt in earlier courses, and to
encourage students to develop an appreciation for the trade-offs
involved in designing and implementing an operating system.
Recap: OS functions & structures. Thread
package architectures (user, kernel, combined).
Scheduling for multiprocessors. [1 lecture]
Requirements. Subjects and objects. Design principles. Authentication
schemes. Access matrix: ACLs and capabilities. Combined scheme.
Covert channels. [1 lecture]
At the end of the course students should be able to
write a simple program which implements any simple disk
define the ``working set'' of a process
sketch the design of a log-structured file system
describe the advantages/disadvantages of the
various page-replacement strategies
understand the differences between ACLs and capabilities
* Bacon, J. & Harris, T. (2003). Operating systems (3rd ed.).
Silberschatz, A., Peterson, J.L. & Galvin, P.C. (1998). Operating systems concepts. Addison-Wesley (5th ed.).
Tanenbaum, A.S. (2001). Modern operating systems.
Prentice-Hall (2nd ed.).
Leffler, S. (1989). The design and implementation of the 4.3BSD Unix
operating system. Addison-Wesley.
Solomon, D. & Russinovich, M. (2000). Inside Windows 2000. Microsoft Press (3rd ed.).
Singhal, M. & Shivaratri, N. (1994). Advanced concepts in operating
systems: distributed, database, and multiprocessor operating