Operating Systems (CCOM4017)

Latest Course Syllabus-ABET Style () (PDF)

Credits: 3
Students should take this course at: 3rd Year - 1st Semester

Pre-requisite: Introduction to Computer Programming (CCOM3033) and Computer Architecture I (CCOM4086)


Operating Systems are the vehicle for user level applications and serve as a guard between these applications and the resources of the computer. The diversity and functionality of computer's resources, in conjunction with execution of concurrent software processes and servicing multiple users, make design and implementation of Operating Systems a challenge. During this course, we will aim to understand these challenges and the involved tradeoffs. Topics covered in the course will include: memory management, multiprogramming, virtual memory, paging, segmentation, job and process scheduling, concurrency, sharing, synchronization, processor management, deadlock detection and avoidance, device and file management.


  • Introduction to Computer Systems

  • Thread and Processes

  • CPU Scheduling

  • Process Synchronization

  • Deadlocks

  • Memory Management

  • File Systems

  • I/O Systems


  • Understand concepts of multiprogramming and it implementation through interrupts.

  • Understand the operating system make use of different data structures to maximize system resources.

  • Apply mechanisms to create processes.

  • Understand mechanisms for the management, scheduling and synchronization of processes.

  • Understand mechanisms for the protection of the computer system resources.

  • Understand mechanisms for the management of memory and the concept of virtual memory.

  • Prepare group oral presentations on areas of operating systems not covered in class.

  • Understand the coordination and communication among processes and the tasks associated to them.

  • Identify the functions that constitute the Kernel of an operating systems.

  • Understand the principal characteristics of input/output routines and the file system organization.