Next: Introduction to Algorithms
Up: Michaelmas Term 1999: Part
Previous: Introduction to Computer Science
Lecturer: Dr J.M. Bacon
(jmb@cl.cam.ac.uk)
No. of lectures: 16
This course is a prerequisite for Distributed Systems, Further
Java, Operating System Functions, Introduction to Security and
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 introduce the modular design of systems software and the
principles of its dynamic execution
- to show how resources are
abstracted and managed by operating system software
- to explore the principles of concurrency control
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. [3 lectures]
- Requirements.
Requirements for support of concurrency in systems. Overview of OS
functions, structure and dynamic invocation; modules, processes and
protocols. Microkernel versus closed OS structure. [1 lecture]
- 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. [1 lecture]
- 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.
Synchronous and asynchronous I/O. [1 lecture]
- 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]
- Dynamic resource allocation.
Deadlock detection and recovery. [1 lecture]
- Case studies.
Aspects of UNIX and Windows NT will be used throughout as examples and
consolidated here. [3 lectures]
Objectives
At the end of the course students should
- be prepared for hardware and architecture courses
- understand the interaction of software and hardware
- understand how systems are executed dynamically and understand the
concepts of process, thread and address space
- understand the need for and implementation of concurrency control
- understand the design of widely used operating systems at a high
level of abstraction
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.B. (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.
Soloman D A (1998). Inside Windows NT. Microsoft Press. (2nd ed.)
Pham, T.Q. & Garg, P.K. (1996). Multithreaded Programming with
Windows NT. Prentice-Hall.
Next: Introduction to Algorithms
Up: Michaelmas Term 1999: Part
Previous: Introduction to Computer Science
Christine Northeast
Mon Sep 20 10:28:43 BST 1999