CSE 258 - Operating Systems

Syllabus



This course provides an introduction to operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from one another.

The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years, and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems, protection and security, and operating system support for distributed systems

This course is intended for undergraduate Computer Science and Computer Engineering majors (junior and senior students) and for MS students.   

For a detailed schedule of what material is covered in which class, see the Class Master Schedule

Part 1: Introduction
        What is an operating system?
        Why operating system is important?
        History of operating system
        Operating systems and architecture
 

Part 2: Process management
        Processes, threads
        CPU scheduling
        Synchronization
        Deadlock
 

Part 3: Memory management
        Explicit memory management
        Virtual memory
        Paging & page replacement algorithms
        Virtual memory in the real world
 

Part 4: File systems
        File system
        I/O management
        Storage system

Part 6: Advanced topics
         Networking, Protection & Security