



Next: Software Engineering and Design Up: Michaelmas Term 2007: Part Previous: Mathematics for Computation Theory 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.
Aims
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.
Lectures
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.
Objectives
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 (see http://www.cl.cam.ac.uk/teaching/current/part1a50.html) 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: Software Engineering and Design Up: Michaelmas Term 2007: Part Previous: Mathematics for Computation Theory Contents