Operating Systems
Principal lecturer: Dr Steven Hand (smh22@cl.cam.ac.uk)
Taken by: Part IA (50% option), Part IA (25% option and Maths with CS)
Lecturer: Dr S.M. Hand
(smh22@cl.cam.ac.uk)
No. of lectures: 12
This course is a prerequisite for Concurrent Systems (Part IB), Further Java (Part IB),
Operating System Functions (Part IB),
Introduction to Security (Part IB) and
Security (Part II).
Aims
The overall aim of this course is to provide a general understanding
of how a computer works. This includes aspects of the underlying
hardware as well as the structure and key functions of the operating
system. Case studies will be used to illustrate and reinforce
fundamental concepts.
Lectures
Part I. Computer Organisation
- Computer Foundations.
History: from vacuum tubes to VLSI. Von Neumann architecture.
Hardware/software layers and languages.
- Operation of a Simple Computer.
Overview: processors, memory, buses, devices.
Memory: concepts, structures, hierarchy.
Processor: control and execution units.
ALU and computer arithmetic.
Logical and Conditional Operations. Branches. Memory access.
Data representation: (integers), text, reals, compound structures,
instructions. Fetch-Execute Cycle Revisited.
- Input/Output. General I/O architecture. Example
devices. Buses: general operation, hierarchy, synchronous versus asynchronous. Interrupts. Direct Memory Access. Review of
Part I.
Part II. Operating Systems
- Introduction to Operating Systems.
Abstract view of an operating system. OS Evolution:
multi-programming, time-sharing.
Dual-mode operation. Protecting I/O, memory, CPU.
Kernels and micro-kernels.
- Processes and Scheduling.
Job/process concepts.
Scheduling basics: CPU-I/O interleaving, (non-)preemption,
context switching. Scheduling algorithms: FCFS, SJF, SRTF,
priority scheduling, round robin. Combined schemes.
- Memory management.
Processes in memory. Logical addresses. Partitions:
static versus dynamic, free space management, external
fragmentation. Segmented memory.
Paged memory: concepts, internal fragmentation,
page tables. Comparison. Software segments.
- I/O Subsystem.
General structure. Polled mode versus interrupt-driven I/O.
Application I/O interface: block and character devices,
buffering, blocking versus non-blocking I/O. Other issues:
caching, scheduling, spooling, performance.
- File Management.
File concept. Directory and storage services. File names
and meta-data. Directory name-space: hierarchies, DAGs,
hard and soft links. File operations. Access control.
Existence and concurrency control.
Part III. OS Case Studies
- Unix case study.
History. General structure. Unix file system: file
abstraction, directories, mount points, implementation
details. Processes: memory image, life cycle, start of day.
The shell: basic operation, commands, standard I/O,
redirection, pipes, signals. Character and block I/O.
Process scheduling.
- Windows NT case study.
History. Design principles. Overall architecture. HAL.
Kernel: objects, processes, threads, scheduling.
Executive: object manager and object namespace, process manager,
VM manager, I/O manager. File-System.
Objectives
At the end of the course students should be able to
- describe the fetch-execute cycle of a simple computer
with reference to the control and execution units
- understand the different types of information which may
be stored within a computer memory
- explain the concepts of process, address space, and file
- compare and contrast various CPU scheduling algorithms
- understand the differences between segmented and paged memories,
and be able to describe the advantages and disadvantages of each
- compare and contrast polled, interrupt-driven
and DMA-based access to I/O devices
Recommended books
Tanenbaum, A.S. (1990). Structured Computer Organisation.
Prentice-Hall (3rd ed).
Patterson, D. & Hennessy, J. (1998). Computer Organisation and Design.
Morgan Kaufmann (2nd ed.).
Bacon, J. (1997). Concurrent Systems. Addison-Wesley (2nd ed.).
Silberschatz, A., Peterson, J.L. & Galvin, P.C. (1998). Operating Systems Concepts. Addison-Wesley (5th ed.).
Leffler, S. (1989). The Design and Implementation of the 4.3BSD Unix
Operating System. Addison-Wesley.
Solomon, D. (1998). Inside Windows NT. Microsoft Press (2nd ed.).
Useful Links
The notes are available on-line
(gzipped
postscript, 1up, PDF, 1up, or
gzipped poscript, 2up), as
are the
past
exam questions.
IA(50) | IA(25 & M+CS)
Provisional information only
Generated at 18:01.30 on 18/9/2000