COMP 4721: Operating Systems

This course is of interest to those who want to learn about the informal structures of operating systems in batch processing, multi-programming, multi-processing and time-sharing environments.

Prerequisites:  COMP 2004 or the former COMP 3725

Availability: ⚠ This course is not planned to be offered in the near future.

Course Objectives

The main objectives of the course are to learn how an operating system interfaces the hardware and software resources with the user's environment, to learn the compositions and connections of multilevel operating systems and to design substantial parts of an operating system.

Representative Workload
  • Assignments (up to 6) 25%
  • In-class Exams 35%
  • Final Exam 40%
Representative Course Outline
  • Introduction and overview
  • History of operating systems
  • Operating system structures
  • Process management:
    • Process concept
    • Concurrent processes
    • CPU scheduling
    • Scheduling algorithms
  • Process co-ordination:
    • Critical section
    • Process synchronization
    • Semaphores
    • Monitors
    • Critical regions
    • Process communication
  • Deadlocks:
    • Prevention and avoidance
    • Detection and recovery
  • Memory hierarchy:
    • Cache memory
    • Associative memory
  • Memory management:
    • Swapping
    • Fixed and variable partitions
    • Relocation
    • Paging and segmentation (external and internal fragmentation)
  • Virtual memory:
    • Page replacement algorithms
    • Thrashing
  • Secondary storage management
  • File management:
    • file-system organization
    • File operations
    • access methods
    • Directory-structure organization
  • Protection:
    • Access matrix
    • Security
    • Encryption
  • Elements of distributed operating systems
  • Selected case studies
    • Such as UNIX
Notes
  • Students can receive credit for only one of Computer Science 4721 or Engineering 8894.

Page last updated May 24th 2021