Close Menu


Course Title: 
Operating Systems
Educational Level: 
Semester offered: 
Associated Programme: 
B.Sc. CS
Core Course: 
Course Aims: 

This course introduces the fundamentals of operating systems design and implementation, a central topic in computer systems. An operating system defines an abstraction of hardware behavior with which programmers can control the hardware. It also manages resource sharing among the computer's users. The topics in this area explain the issues that influence the design of contemporary operating systems.

  1. Overview of Operating Systems: Role and purpose of the operating system; History of operating system development; Functionality of a typical operating system; Mechanisms to support client-server models, hand-held devices; Design issues (efficiency, robustness, flexibility, portability, security, compatibility); Influences of security, networking, multimedia, windows.
  2. Operating System Principles: Structuring methods (monolithic, layered, modular, micro-kernel models); Abstractions, processes, and resources; Concepts of application program interfaces (APIs); Application needs and the evolution of hardware/software techniques; Device organization; Interrupts: methods and implementations; Concept of user/system state and protection, transition to kernel mode.
  3. OS/Concurrency: States and state diagrams; Structures (ready list, process control blocks, and so forth); Dispatching and context switching; The role of interrupts; Concurrent execution (advantages and disadvantages) The “mutual exclusion” problem and some solutions; Deadlock: causes, conditions, prevention; Models and mechanisms (semaphores, monitors, condition variables, rendezvous); Producer-consumer problems and synchronization; Multiprocessor issues (spin-locks, re-entrancy).
  4. Scheduling and Dispatch: Pre-emptive and non-preemptive scheduling; Schedulers and policies; Processes and threads; Deadlines and real-time issues.
  5. Memory Management: Review of physical memory and memory management hardware; Paging and virtual memory; Multilevel paging; Working sets and thrashing; Caching.
  6. Security and Protection: Overview of system security; Policy/mechanism separation; Security methods and devices; Protection, access control, and authentication.
  7. File Systems: Files (data, metadata, operations, organization, buffering, sequential, non-sequential); Directories (Course Contents and structure).                                                               File systems (partitioning, mount/unmount, virtual file systems); Standard implementation techniques; Memory-mapped files; Special-purpose file systems; Naming, searching, access, backups.
  8. Device Management: Characteristics of serial and parallel devices; Abstracting device differences; Buffering strategies; Direct memory access; Recovery from failures.
  9. System Performance Evaluation: Policies for caching, paging, scheduling, memory management, security, and so forth; Evaluation models: deterministic, analytic, simulation, or implementation-specific; How to collect evaluation data (profiling and tracing mechanisms).
  10. Scripting: Scripting and the role of scripting languages; Basic system commands; Creating and executing scripts, parameter passing.
  11. Trends in Operating Systems: Overview of contemporary operating systems, mobile operating systems, Future trends in operating systems
Course Assessment: 
  • Final Written Examination (2 hours) 50%
  • Coursework: 50%
    • 2 Assignments (5% each)     10%
    • 2 In-course tests (10% each) 20%
    • 2 Projects (variable weighting)   20%

Students will be required to pass both the coursework and the final examination to pass the course.

Course Prerequisites: 

COMP2340 - Computer Systems Organization.

Top of Page