Topic outline

  • Operating System and System Programming

    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.

  • Week 1: Operating System Overview


  • Week 2, 3, 4, 5, 6, 7, 8: Process, Thread, Scheduling, Concurrency


    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.

  • Week 9: Deadlock

    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

    • Week 09 and Week 10: Memory Management

      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.

      • Week 12 & 13: I/O Management and Disk Scheduling

        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.

      • Class Recordings

        Find the recoded classes from the link below