Section outline

  • Welcome to
    Operating System and System Programming course

    Course Summary:

    This course introduces about the modern operating systems. It focuses on UNIX-based operating systems, though alternative operating systems, including Windows are introduced. This course is begin with an overview of the structure of modern operating systems. Over the course of the subsequent units, discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and explore more advanced topics in the field, including concurrency (synchronization, mutual exclusion, deadlock, starvation), memory (both primary and secondary) management and  input/output file organization.

    • Please look at the "Course Objectives and Outcomes" before starting the class.
    • Class Routine



    • Lesson Objective:

      To explore the terminologies and history  of modern Operating System


      Lesson Outcome:

      Students able to know about the terminologies and history of modern Operating System

      Lesson Outlines:

      • Operating System Objectives and Functions
      • The Evolution of Operating Systems
      • Characteristics of Modern Operating Systems
      • Microsoft Windows Overview
      • Traditional UNIX Systems
      • Modern UNIX Systems
      • Linux


  • Lesson Objective:
    To explore the uniprocessor process scheduling algorithms   

    Lesson outlines:
    • Types of Scheduling
    • Scheduling Algorithms
    • Traditional UNIX Scheduling   

    Lesson Outcome:
    Students able to design the uniprocessor process scheduling algorithms.

  • Lesson Objective:

    To explore the concurrency problems and its prevention, detection and avoidance methods.   

    Lesson outlines:
    • Principles of Deadlock
    • Deadlock Prevention
    • Deadlock Avoidance
    • Deadlock Detection


    Lesson Outcome:
    Students able to  prevent/detect/avoid the concurrency problems such as deadlock and starvation theoretically



    Class Recordings

  • Lesson Objective:

    To explore OS memory management policies   

    Lesson outlines:
    • Memory Management Requirements
    • Memory Partitioning
    • Paging
    • Segmentation   

    Lesson Outcome:
    Student able to know the previous and modern OS memory management policies.

  • Lesson Objective:

    To explore Secondary memory policies   

    Lesson outlines:
    • I/O Devices
    • Organization of the I/O Function
    • Operating System Design Issues
    • I/O Buffering
    • Disk Scheduling
    • RAID
    • Linux I/O   

    Lesson Outcome:
    Student able to know the secondary memory management policies.

    • Lecture Notes:


  • Find the recoded classes from the link below