Syllabus

Computer System Overview

  1. Basic Elements
  2. Processor Registers
  3. Instruction Execution
  4. Interrupts
  5. The Memory Hierarchy
  6. Cache Memory & Locality
  7. I/O Communication Techniques
  8. Procedure Control

Operating System Overview

  1. Operating System Objectives and Functions
  2. The Evolution of Operating Systems
  3. Major Achievements
    • Processes
    • Memory Management
    • Scheduling and Resource Management
    • System Structure
    • Information Protection and Security
  4. Developments Leading to Modern Operating Systems

Processes & Threads

  1. What Is a Process?
  2. Process States
  3. Process Description
  4. Process Control
    • Modes of Execution
    • Process Creation & Termination
    • Process Switching
  5. Threads
    • Multithreading
    • Thread Functionality
    • User-Level and Kernel-Level Threads

Operating System Structure

  1. Symmetric Multiprocessing
    • Architecture
    • Organization
    • Multiprocessor Operating System Design Considerations
  2. Execution of the Operating System
    • Nonprocess Kernel
    • Execution within User Processes
    • Process-Based Operating System
    • System calls
  3. Architectural Design Patterns
    • Layers
    • Microkernel
    • Broker
  4. System Boot
  5. Monolithic kernels
  6. Microkernels
    • Microkernel Architecture
    • Benefits of a Microkernel Organization
    • Microkernel Performance
    • Microkernel Design

Concurrency: Mutual Exclusion

  1. Principles of Concurrency
    • Critical Section
    • Deadlock
    • Race Condition
    • Starvation
    • Operating System Concerns
    • Process Interaction
    • Requirements for Mutual Exclusion
  2. Mutual Exclusion: Hardware Support
    • Interrupt Disabling
    • Special Machine Instructions
  3. Semaphores
    • General Semaphore
    • Binary Semaphore
    • Mutual Exclusion
    • The Producer/Consumer Problem
    • Implementation of Semaphores
  4. Monitors
    • Conditional Variables
    • Monitor with Signal
    • Alternate Model of Monitors with Notify and Broadcast

Concurrency: Synchronization

  1. Classic Problems of Synchronization
    • Readers/Writers Problem
      • Readers Have Priority
      • Writers Have Priority
    • Dining Philosophers Problem
      • Solution Using Semaphores
      • Solution Using a Monitor
  2. POSIX.1 Case Study
    • Atomic Operations
    • Spinlocks
    • Semaphores
    • Barriers
    • Mutual Exclusion Lock
    • Readers/Writer Lock
    • Condition Variables

Concurrency: Deadlock And Starvation

  1. Principles of Deadlock
    • Reusable Resources
    • Consumable Resources
    • Resource Allocation Graphs
    • The Conditions for Deadlock
  2. Deadlock Prevention
    • Mutual Exclusion
    • Hold and Wait
    • No Preemption
    • Circular Wait
  3. Deadlock Avoidance
    • Process Initiation Denial
    • Resource Allocation Denial
  4. Deadlock Detection
    • Deadlock Detection Algorithm
    • Recovery
  5. An Integrated Deadlock Strategy

Interprocess Communication

  1. Message Passing
    • Synchronization
    • Addressing
    • Message Format
    • Queuing Discipline
  2. Shared Memory
  3. Remote Procedure Calls
  4. Signals
  5. IPC: POSIX.1 Case Study
    • Pipes
    • Sockets
    • Message Queues
    • Shared Memory
    • Signals

Memory Management

  1. Memory Management Requirements
    • Relocation
    • Protection
    • Sharing
    • Logical Organization
    • Physical Organization
  2. Memory Partitioning
    • Fixed Partitioning
    • Dynamic Partitioning
    • Buddy System
    • Relocation
  3. Paging
  4. Segmentation
  5. Loading and Linking

Virtual Memory

  1. Hardware and Control Structures
    • Locality and Virtual Memory
    • Paging
    • Segmentation
    • Combined Paging and Segmentation
    • Protection and Sharing
  2. Common Mechanisms
    • Demand Paging
    • Copy-on-Write
    • Memory Mapped Files
  3. Operating System Software
    • Fetch Policy
    • Placement Policy
    • Replacement Policy
    • Resident Set Management
    • Cleaning Policy
    • Load Control

Scheduling

  1. Types of Professor Scheduling
    1. Long-Term Scheduling
    2. Medium-Term Scheduling
    3. Short-Term Scheduling
  2. Scheduling Algorithms
    1. Short-Term Scheduling Criteria
    2. The Use of Priorities
    3. Alternative Scheduling Policies
    4. Performance Comparison
    5. Fair-Share Scheduling
  3. Response Time

SMP and Real-Time Scheduling

  1. Multiprocessor Scheduling
    • Granularity
    • Design Issues
    • Process Scheduling
    • Thread Scheduling
  2. Real-Time Scheduling
    1. Characteristics of Real-Time Operating Systems
    2. Real-Time Scheduling
    3. Deadline Scheduling
    4. Rate Monotonic Scheduling
    5. Priority Inversion

I/O Management And Disk Scheduling

  1. I/O Devices
    • Organization of the I/O Function
    • The Evolution of the I/O Function
    • Direct Memory Access
  2. Operating System Design Issues
    • Design Objectives
    • Logical Structure of the I/O Function
  3. I/O Buffering
    • Single Buffer
    • Double Buffer
    • Circular Buffer
    • The Utility of Buffering
  4. Disk Scheduling
    • Disk Performance Parameters
    • Disk Scheduling Policies
  5. Disk Cache

File Management

  1. Overview
    • Files and File systems
    • File Structure
    • File Management Systems
  2. File Organization and Access
    • The Pile
    • The Sequential File
    • The Indexed Sequential File
    • The Indexed File
    • The Direct or Hashed File
  3. File Directories
    • Contents
    • Structure
    • Naming
  4. File Sharing
    • Access Rights
    • Simultaneous Access
  5. Record Blocking
  6. Secondary Storage Management
    • File Allocation
    • Free Space Management
    • Volumes
    • Reliability
  7. File System Security

Protection & Security

  1. Computer Security Concepts
  2. Threats, Attacks, Assets
    • Intruders
    • Malicious Software Overview
  3. Authentication
  4. Access Control
  5. Intrusion Detection
  6. Malware Defense
  7. Dealing With Buffer Overflow Attacks