Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Computer Science Syllabus - Operating System Foundations
Computer Laboratory > Computer Science Syllabus - Operating System Foundations

Operating System Foundations next up previous contents
Next: Software Engineering and Design Up: Michaelmas Term 2005: Part Previous: Numerical Analysis I   Contents

Operating System Foundations

Lecturer: Professor J.M. Bacon

No. of lectures: 16

This course is a prerequisite for Introduction to Security and Distributed Systems, and is helpful for Computer Design.


The aims of this course are to introduce the basic principles of computer systems organisation and operation; to show how hardware is controlled by program at the hardware/software interface; to outline the basic OS resource management functions: memory, file, device (I/O) and process management; and to explore the need for, principles of and implementation of concurrency control.


Part I. Computer organisation [3-4 lectures]

  • Computer design; the hardware and its interfaces. Bus/memory/CPU organisation. Representation of numbers and characters; instruction sets and addressing. Operation of a simple computer; the fetch-execute cycle.

  • Device management. I/O devices and interfaces; polling and interrupts. The general exception mechanism for interrupts, errors, system calls, memory management. Character and DMA interfaces.

Part II. Operating system structure and functions [6 lectures]

  • Operating system evolution and structure.

  • Process management. Creating virtual processor abstractions. Support for processes (or threads) in operating systems. CPU scheduling.

  • Memory management. Processes in memory. Logical addresses (virtual address space). Segmented memory. Memory fragmentation. Paged memory: concepts, in-process fragmentation, page tables, hardware support. Paged segments.

  • File management. File concept. Directory and storage services. File names and meta-data. Directory name-space. File and directory operations. Access control. Existence and concurrency control.

Part III. Concurrency control [3-4 lectures]

  • I/O management- aspects. Process-device synchronisation. Process - process mutual exclusion and synchronisation via I/O buffers.

  • Multi-threaded processes. User threads and kernel threads.

  • System structure and interprocess communication (IPC). Requirements for concurrency control; System structure; Shared memory mechanisms; Semaphores and their implementation; examples; No-shared-memory mechanisms.

  • Composite concurrent operations. Problem of deadlock. Introduction to transaction concept.

Part IV. Case studies [2-3 lectures]

  • Case studies. Unix and Windows NT/2000.


At the end of the course students should

  • be prepared for hardware and architecture courses

  • understand the interaction of software and hardware

  • understand the concepts of process, thread and address space

  • understand how memory, devices (I/O), files and processes are managed

  • understand the need for and implementation of concurrency control

  • understand the design of widely used operating systems at a high level of abstraction

Recommended reading

For hardware/architecture please browse the books recommended for Part IA hardware courses and for Computer Design.

* Bacon, J. & Harris, T. (2003). Operating systems: distributed and concurrent software design. Addison-Wesley.
Tanenbaum, A.S. & Woodhull, A. S. (2000). Operating systems design and implementation. Addison-Wesley (2nd ed.).
Silberschatz, A., Galvin, P.B. & Gagne, G. (2005, 2001). Operating system concepts. Addison-Wesley (7th, 6th eds.).

For further detail on the case studies (not required reading):

Bach, M.J. (1986). Design of the Unix operating system. Prentice-Hall.
Leffler, S.J. et al. (1989). The design of the 4.3BSD Unix operating system. Addison-Wesley.
McKusick M.K. et al. (1996). The design and implementation of the 4.4BSD Unix operating system. Addison-Wesley.
Soloman D.A. & Russinovich, M.E. (2000). Inside Microsoft Windows 2000. Microsoft Press. (3rd ed.)

next up previous contents
Next: Software Engineering and Design Up: Michaelmas Term 2005: Part Previous: Numerical Analysis I   Contents
Christine Northeast
Sun Sep 11 15:46:50 BST 2005