Operating Systems Concepts
(MSc Conversion / JMC2)

Course Objectives
To answer and develop the ability to
answer the following questions: What is the purpose of an operating
system? How are operating systems constructed? Introduction: resource
manager view, virtual machine view, types of operating
system. Evolution of operating systems: user driven, operator driven,
simple batch system, off-line batch system, directly-coupled off-line
system, multiprogrammed spooling system, on-line timesharing system,
multi-processor systems, multi-computer/distributed systems. Program
construction utilities: assembler, archiver, link editor, relocating
loader.
Concurrent processes:
interleaving, non-determinism, process interaction - sharing, synchronisation,
communication, locks, semaphores, monitors.
The system nucleus (kernel):
context switching, first level interrupt handling, kernel implementation of
processes,Kernel implementation of semaphores.
Scheduling: priority - pre-emption, run to
completion, time sliced, multi-level queues.
Input/output: polled input/output,
interrupt driven input/output, device driver structure.
Memory management: single
contiguous store allocation and overlays, fixed partition store allocation,
dynamic partition store allocation and fragmentation/compaction, virtual
addressing, memory management policies
Text Book
Modern Operating Systems, Andrew S Tanenbaum, Prentice Hall, Second Edition
(2001).
Course Notes and Other Material
Note: Only the material above the red line has been updated for the current year!
- Week 3
- Lecture Notes: Chapter 1 (4-up, for printing), Chapter 1 (1 slide per page).
- Tutorial 1: Tutorial 1.
- Heartbeat program used in the tutorial: heart.cc.
- Week 4
- Lecture Notes: Chapter 2 (4-up, for printing), Chapter 2 (1 slide per page).
- Tutorial: Tutorial 2.
- Fibonacci program used in the tutorial: fibonacci.c.
- Week 5
- Lecture Notes: Chapter 3 (4-up, for printing), Chapter 3 (1 slide per page).
- Tutorial: Tutorial 3.
- Process creation program program used in the tutorial: process_create.c.
- Week 6
- Lecture Notes: Chapter 4 (4-up, for printing), Chapter 4 (1 slide per page).
- Tutorial: Tutorial 4.
- Program files used for the tutorial: bridge.c, specs.h, colourdraw.c.
- Week 7
- Lecture Notes: Chapter 5 (4-up, for printing), Chapter 5 (1 slide per page).
- Tutorial: Tutorial 5: Linking and
Loading
- Program files used for the tutorial: assembler.s, cversion.c, writeexit.s, example.c.
- Week 8
- Lecture Notes: Chapter 6 (1 slide per page), Chapter 6 (4-up, for printing).
- Example programs used in the lectures: Programs to print contents of a file:
C version, C++ version.
- Tutorial 6: Introduction to Simple Kernel,
Notes on Solution for Tutorial 6.
- Week 9
- Tutorial 7: Modifying Simple
Kernel. The solution to Tutorial 7 will be distributed as the
"starting point" for the assessed coursework next week.
- Example programs used in the lectures: Program to illustrate stack
- C version, Assembler generated by the Intel C
compiler. Program to illustrate buffer overrun attack: Check PIN.
- Assessed Coursework: Managing Resources without
Deadlock.
- Lecture Notes: Help for
Assessed Coursework (1 slide per page), Help for Assessed
Coursework (4-up, for printing).
- Week 10
- Lecture Notes: Chapter 7 (4-up, for printing), Chapter 7 (1 slide per page).
- Tutorial 9: Interrupt Handling and
Context Switching, Notes on
Solution for Tutorial 8.
- Week 11
- Lecture Notes: Chapter 8 (4-up, for printing), Chapter 8 (1 slide per page).
- Tutorial 10: Memory Management,
Notes on Solution for Tutorial 10.
- Lecture Notes: Chapter 9 (Some Security
Issues).
- Course Summary and Revision Lecture
- Lecture Notes: Revision Lecture.
- Course Summary. This is a guide
to what I consider to be the examinable contents of this course.


Olav Beckmann