Operating Systems

Course Objectives

  • learn basic concepts and principles behind the design of operating systems
  • get exposed to the problems operating systems designers face, explore the tradeoffs and solutions to these problems
  • see how are these issues solved in practice in real operating systems
  • be able to apply these concepts and techniques in relevant circumstances
  • get some hands-on experience programming OS type problems (process creation, inter-process-communications, process synchronization, mutual exclusion, deadlock avoidance)

Content

  • What Operating Systems Do
  • Computer-System Organization
  • Computer-System Architecture
  • OS Structure
  • OS Operations
  • Process Management
  • Memory management
  • Storage and I/O Management
  • Protection and Security
  • Distributed Systems
  • Special-Purpose Systems
  • Computing Environments

Detailed List

Operating Systems overview:

  • interface
  • system calls
  • design and implementation issues
  • OS structure

Process Management

  • Processes and threads
  • Inter-process communication
  • CPU scheduling - algorithms and criteria
  • Process/thread synchronization - problems and solutions
  • Deadlocks - prevention, avoidance, detection, recovery

Memory Management

  • Basic main memory management
    • swapping
    • contiguous memory allocation
    • paging
    • segmentation
  • Virtual memory
    • demand paging
    • copy-on-write
    • page replacement
    • allocating kernel memory

Storage Management and Input/Output

  • File-System interface (files, directories, mounting file system, file sharing)
  • File-System implementation
  • Mass-storage structure (disk structure, scheduling, management)
  • Swap space management
  • I/O systems (hardware, application I/O interface, kernel I/O subsystem)