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.
Digital electronics review: boolean algebra, logic gates, adders,
multiplexors, latches.
- 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. [2 lectures]
- 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.
- Filing Systems and I/O.
File concept. Directories: functions,
hierarchies, DAGs, hard/soft links. Protection.
Locating data: contiguous allocation, chaining in
the media/a map, indexed schemes. Directory implementation. Recovery.
Polling and interrupts.
Application I/O interface: block and character devices,
blocking versus non-blocking I/O. Caching and buffering.
[2 lectures]
Part III. OS Case Studies
- Unix case study.
History. General structure. Processes: memory image,
life cycle, system calls, process groups, signals.
The shell: basic operation, commands, standard I/O,
redirection, pipes. Process implementation. Memory
management. File system: hierarchy, mount points,
directories, inodes. FFS: fragments, cylinder groups.
I/O subsystem. [2 lectures]
- Windows NT case study.
History. Design principles. Overall architecture.
Kernel: objects, processes, threads, scheduling.
Executive: object manager, process manager, I/O manager, LPC.
Environmental subsystems. NTFS.
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
- compare and contrast polled, interrupt-driven
and DMA-based access to I/O devices
- state the three basic objectives of an operating system
- describe, with the aid of a diagram, the differences
between monolithic, kernel and microkernel operating system
structures
- explain the concepts of process, address space, and file
- recognise the opportunities afforded by a mixture of
I/O and CPU bound tasks
- differentiate between hard and soft links
- 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
- discuss the different ways in which file data may be located
- realise the motivation behind the use of buffering and caching
schemes
- write a short essay outlining the differences between
Unix and NT with regard to structure, execution models, scheduling
algorithms and native filing systems
Recommended books
Tanenbaum, A.S. (1990). Structured Computer Organisation.
Prentice-Hall (3rd ed).
Patterson, D.A. & Hennessy, J.L. (1998). Computer Organization
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.).
Lecture Handouts
The lecture handouts will be available below as the course progresses.
Or you can get the entire set in a big
lump (postscript/1up)
Useful Links
The past
exam questions are also on line.
IA(50) | IA(25 & M+CS)
Provisional information only
Generated at 11:47.04 on 21/9/1999