CS31E - Operating Systems | ![]() |
This course uses the following course codes:
- COMP 3100
- CS31E
Number of credits: 4
This course has the following prerequisites:
This course has no corequisites.
The assessment for the course is as follows:
This course has coursework assessment.
In course assignments weight: 25%
Final exam: 75%
Course syllabus
- Introduction to a systems programming language.
- Overview of Von Neumann computer architecture.
- Processes
Process creation/destruction, implementation, process table entries.
- Process Management
Context switching, interupt handling, inter-process communication, Race conditions, mutual exclusion, critical regions Busy-waiting solutions, sleep-wakeup solutions, scheduling algorithms.
- Deadlocks
Pre-emption, necessary conditions, deadlock modelling detection, avoidance, prevention
- Memory Management
Multiprogramming, relocation and protection, swapping Bit-mapped management, linked-list management, partition management, virtual memory
- Virtual Memory
Pages, page frames, page tables, address translation, Memory Management Unit (MMU) Page faults, translation look aside buffers, and page replacement algorithms.
- File Systems
Contiguous allocation, linked-list allocation, index nodes, implementing directories
- Disk Performance Optimisation
Seek optimisation strategies.
- Input/Output
Device controllers, I/O ports, memory-mapped I/O direct memory access, interupt handlers, device drivers
- Resource Protection
Protection domains, access matrices, access lists capabilities lists, lock-key mechanisms




