💻 MemoLearning Operating Systems

System internals, process management, memory, file systems, and kernel programming

← Back to Computer Science

Operating Systems Curriculum

14
Core Units
~180
System Concepts
6
Major Components
10
Algorithms
1

Operating System Overview

Understand the fundamental role and structure of operating systems in computer architecture.

  • What is an operating system
  • OS goals and functions
  • System calls and APIs
  • Kernel vs user mode
  • OS architecture types
  • Historical evolution
  • Modern OS examples
  • Performance metrics
2

Process Management

Master process creation, execution, and lifecycle management in operating systems.

  • Process concept and PCB
  • Process states and transitions
  • Process creation and termination
  • Process hierarchies
  • Context switching
  • Process communication (IPC)
  • Shared memory systems
  • Process synchronization
3

CPU Scheduling

Learn algorithms and strategies for efficiently allocating CPU time among processes.

  • Scheduling criteria and metrics
  • FCFS scheduling
  • Shortest Job First (SJF)
  • Round Robin scheduling
  • Priority scheduling
  • Multilevel queue scheduling
  • Real-time scheduling
  • Multiprocessor scheduling
4

Thread Management

Understand lightweight processes and concurrent execution within single address spaces.

  • Thread concept and benefits
  • User vs kernel threads
  • Multithreading models
  • Thread libraries (Pthreads)
  • Thread synchronization
  • Thread pools
  • Thread-specific data
  • Threading issues and solutions
5

Process Synchronization

Solve coordination problems between concurrent processes and threads.

  • Critical section problem
  • Mutual exclusion solutions
  • Semaphores and implementation
  • Monitors and condition variables
  • Classic synchronization problems
  • Deadlock detection and prevention
  • Atomic operations
  • Lock-free programming
6

Deadlock Management

Understand and prevent system deadlocks through detection, avoidance, and recovery.

  • Deadlock characterization
  • Necessary conditions
  • Resource allocation graphs
  • Deadlock prevention
  • Deadlock avoidance (Banker's algorithm)
  • Deadlock detection
  • Recovery from deadlock
  • Livelock and starvation
7

Memory Management

Explore how operating systems manage and allocate physical and virtual memory.

  • Memory hierarchy
  • Contiguous memory allocation
  • Fragmentation problems
  • Paging systems
  • Segmentation
  • Virtual memory concepts
  • Page replacement algorithms
  • Memory protection
8

Virtual Memory

Master virtual memory systems that enable programs larger than physical memory.

  • Virtual memory principles
  • Page fault handling
  • Demand paging
  • Page replacement algorithms (LRU, FIFO)
  • Allocation of frames
  • Thrashing and working sets
  • Memory-mapped files
  • Copy-on-write
9

File Systems

Understand how operating systems organize and manage persistent storage.

  • File system interface
  • File allocation methods
  • Directory structures
  • File system implementation
  • Journaling file systems
  • File system performance
  • Recovery and consistency
  • Distributed file systems
10

I/O Systems

Learn how operating systems manage input/output operations and device communication.

  • I/O hardware overview
  • Application I/O interface
  • Kernel I/O subsystem
  • Blocking vs non-blocking I/O
  • Buffering and caching
  • Error handling
  • Device drivers
  • I/O performance optimization
11

Security and Protection

Implement security mechanisms to protect system resources and user data.

  • Security objectives
  • Authentication mechanisms
  • Access control models
  • Capability-based systems
  • Information flow control
  • Security attacks and defenses
  • Cryptographic techniques
  • Secure system design
12

Distributed Systems

Explore operating system concepts in networked and distributed computing environments.

  • Distributed system models
  • Network operating systems
  • Distributed coordination
  • Distributed mutual exclusion
  • Election algorithms
  • Distributed transactions
  • Fault tolerance
  • Consistency models
13

System Performance

Analyze and optimize operating system performance through monitoring and tuning.

  • Performance metrics
  • System monitoring tools
  • Bottleneck identification
  • Performance tuning techniques
  • Capacity planning
  • Benchmarking methodologies
  • Profiling and analysis
  • System optimization strategies
14

Modern OS Topics

Explore contemporary developments and future directions in operating system design.

  • Virtualization technologies
  • Container systems
  • Cloud operating systems
  • Mobile OS architectures
  • Real-time systems
  • Multicore and parallel systems
  • Energy-efficient computing
  • Future OS trends

Unit 1: Operating System Overview

Understand the fundamental role and structure of operating systems in computer architecture.

What is an Operating System

Learn the definition, purpose, and essential functions of operating systems as system software intermediaries.

OS Goals and Functions

Understand resource management, user interface provision, and system security as primary OS objectives.

System Calls and APIs

Master the interface between user programs and the kernel through system call mechanisms.

Kernel vs User Mode

Distinguish between privileged kernel execution and restricted user program execution modes.

OS Architecture Types

Compare monolithic, microkernel, layered, and hybrid operating system architectural approaches.

Historical Evolution

Trace the development of operating systems from batch processing to modern distributed systems.

Modern OS Examples

Analyze contemporary operating systems like Linux, Windows, macOS, and their design choices.

Performance Metrics

Measure OS effectiveness through throughput, response time, utilization, and fairness metrics.

Unit 2: Process Management

Master process creation, execution, and lifecycle management in operating systems.

Process Concept and PCB

Understand processes as program instances with Process Control Blocks containing execution state.

Process States and Transitions

Learn the process lifecycle through new, ready, running, waiting, and terminated states.

Process Creation and Termination

Master fork(), exec(), and exit() system calls for process lifecycle management.

Process Hierarchies

Understand parent-child relationships and process trees in Unix-like operating systems.

Context Switching

Learn how the OS saves and restores process state during CPU scheduling transitions.

Process Communication (IPC)

Implement inter-process communication through pipes, message queues, and shared memory.

Shared Memory Systems

Design efficient communication mechanisms using shared address spaces between processes.

Process Synchronization

Coordinate process execution and resource access to maintain system consistency.

Unit 3: CPU Scheduling

Learn algorithms and strategies for efficiently allocating CPU time among processes.

Scheduling Criteria and Metrics

Evaluate scheduling algorithms using turnaround time, waiting time, response time, and throughput.

FCFS Scheduling

Implement First-Come-First-Served scheduling with its simplicity and convoy effect characteristics.

Shortest Job First (SJF)

Optimize average waiting time through shortest job first scheduling in preemptive and non-preemptive forms.

Round Robin Scheduling

Provide fairness through time-sliced CPU allocation with configurable quantum periods.

Priority Scheduling

Allocate CPU based on process priorities while handling starvation through aging mechanisms.

Multilevel Queue Scheduling

Organize processes into multiple queues with different scheduling algorithms for each level.

Real-Time Scheduling

Meet timing constraints in real-time systems through deadline-driven scheduling algorithms.

Multiprocessor Scheduling

Distribute processes across multiple CPUs considering load balancing and processor affinity.

Unit 4: Thread Management

Understand lightweight processes and concurrent execution within single address spaces.

Thread Concept and Benefits

Learn how threads provide concurrency within processes with shared memory and reduced overhead.

User vs Kernel Threads

Compare user-level thread management with kernel-level threading implementations and trade-offs.

Multithreading Models

Understand many-to-one, one-to-one, and many-to-many threading models and their characteristics.

Thread Libraries (Pthreads)

Implement multithreaded programs using POSIX thread libraries and threading primitives.

Thread Synchronization

Coordinate thread execution using mutexes, condition variables, and other synchronization mechanisms.

Thread Pools

Manage thread lifecycle efficiently through pre-allocated thread pools for better performance.

Thread-Specific Data

Maintain per-thread data storage while sharing the process address space among threads.