Introduction



Introduction [slides] [printable]

Reading

  • Operating System Concepts - Ch1: Introduction
  • Operating System Concepts - Ch2: Operating-System Structures



Module 1 - Process Management



Processes [slides] [printable]

[exercise 1] [exercise 1 - src] [exercise 2] [exercise 2 - src]

Reading

  • Operating System Concepts - Ch3: Processes
  • Linux System Programming - Ch5: Process Management
  • The Linux Programming Interface - Ch24: Process Creation
  • The Linux Programming Interface - Ch25: Process Termination
  • The Linux Programming Interface - Ch26: Monitoring Child Processes
  • The Linux Programming Interface - Ch27: Program Execution
  • The Linux Programming Interface - Ch44: Pipes and FIFOs
  • The Linux Programming Interface - Ch51: Introduction to POSIX IPC
  • The Linux Programming Interface - Ch52: POSIX Message Queues

Thread and Concurrency [slides] [printable] [src]

[exercise 3] [exercise 3 - src]

Reading

  • Operating System Concepts - Ch4: Threads and Concurrency
  • Linux System Programming - Ch7: Threading
  • The Linux Programming Interface - Ch29: Threads Introduction
  • The Linux Programming Interface - Ch32: Thread Cancellation

CPU Scheduling [slides] [printable] [src]

[exercise 4] [exercise 4 - src]

Reading

  • Operating System Concepts - Ch5: CPU Scheduling
  • Linux System Programming - Ch6: Advanced Process Management
  • The Linux Programming Interface - Ch35: Process Priorities and Scheduling



Module 2 - Process Synchronization



Synchronization Tools [slides] [printable] [src]

[exercise 5] [exercise 5 - src]

Reading

  • Operating System Concepts - Ch6: Synchronization Tools
  • Operating System Concepts - Ch7: Synchronization Examples
  • Linux System Programming - Ch7: Threading
  • The Linux Programming Interface - Ch30: Thread Synchronization
  • The Linux Programming Interface - Ch53: POSIX Semaphores

Deadlocks [slides] [printable]

Reading

  • Operating System Concepts - Ch8: Deadlocks



Module 3 - Memory Management



Main Memory (Part 1) [slides] [printable]

[exercise 6] [exercise 6 - src] [exercise 7] [exercise 7 - src]

Reading

  • Operating System Concepts - Ch9: Memory Management
  • Linux System Programming - Ch9: Memory Management
  • The Linux Programming Interface - Ch7: Memory Allocation

Main Memory (Part 2) [slides] [printable]

[exercise 8] [exercise 8 - src] [exercise 9] [exercise 9 - src]

Reading

  • Operating System Concepts - Ch9: Memory Management
  • Linux System Programming - Ch9: Memory Management
  • The Linux Programming Interface - Ch7: Memory Allocation

Virtual Memory [slides] [printable]

Reading

  • Operating System Concepts - Ch10: Virtual Memory



Module 4 - Storage Management and File Systems



Mass-Storage Structure [slides] [printable]

[exercise 10] [exercise 10 - src]

Reading

  • Operating System Concepts - Ch11: Mass-Storage Structure

File-System Interface [slides] [printable] [src]

[exercise 11] [exercise 11 - src]

Reading

  • Operating System Concepts - Ch13: File-System Interface
  • Linux System Programming - Ch2: File I/O
  • Linux System Programming - Ch3: Buffered I/O
  • The Linux Programming Interface - Ch4: File I/O, The Universal I/O Model

File-System Implementation [slides] [printable]

Reading

  • Operating System Concepts - Ch14: File-System Implementation
  • Operating System Concepts - Ch15: File-System Internals
  • Linux System Programming - Ch2: File I/O
  • Linux System Programming - Ch3: Buffered I/O
  • The Linux Programming Interface - Ch4: File I/O, The Universal I/O Model



Module 5 - I/O Managment



I/O Systems [slides] [printable]

Reading

  • Operating System Concepts - Ch12: I/O Systems