next up previous contents
Next: Introduction to Algorithms Up: Michaelmas Term 1998: Part Previous: Introduction to Computer Science

Operating System Foundations

Lecturer: Dr J.M. Bacon (jmb@cl.cam.ac.uk)

No. of lectures: 16

This course is a prerequisite for Distributed Systems, Further Java and Introduction to Security.

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. [2 lectures]

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.

Requirements.
Requirements for support of concurrency in systems. Overview of OS structure and dynamic invocation; modules, processes and protocols. Microkernel versus closed OS structure.

OS I/O management.
Process-device synchronisation. Creating virtual device abstractions; top-down I/O invocation at the system call interface. Process (top-down) - process (bottom-up) synchronisation via I/O buffers.

OS process management.
Creating virtual processor abstractions. Support for processes and threads in operating systems and in language systems. Scheduling. [2 lectures]

Interprocess communication (IPC).
System structure; synchronisation primitives; concurrency control without hardware support. Semaphores and their implementation; examples. Shared memory mechanisms. No-shared-memory mechanisms; distributed IPC. [4 lectures]

Case studies.
UNIX and Windows NT. [5 lectures]

Recommended books:


Dowsing, R.D. & Woodhams, F.W.D. (1990). Computers from Logic to Architecture. London: Van Nostrand Reinhold.

Bacon, J. (1997). Concurrent Systems. Addison-Wesley (2nd ed.).

Tanenbaum, A.S. (1992). Modern Operating Systems. Prentice-Hall.

Silberschatz, A. & Galvin, P.C. (1998). Operating System Concepts. Addison-Wesley (5th ed.).

Bach, M.J. (1986). Design of the Unix Operating System. Prentice-Hall.

Leffler, S.J. et al. (1988). The Design of the 4.3BSD Unix Operating System. Addison-Wesley.

Custer, H. (1993). Inside Windows NT. Microsoft Press.

Pham, T.Q. & Garg, P.K. (1996). Multithreaded Programming with Windows NT. Prentice-Hall.


next up previous contents
Next: Introduction to Algorithms Up: Michaelmas Term 1998: Part Previous: Introduction to Computer Science
Christine Northeast
1998-10-01