Operating Systems
What runs beneath your code: processes, memory, file systems, concurrency, and distributed systems.
10 Topics
Concurrency
Concurrency is the execution of multiple instruction sequences at the same time. Learners will understand how to manage shared resources, prevent race conditions, and implement multi-threading to build efficient, responsive, and high-performance software applications.
Distributed Systems
Distributed systems consist of independent computers that coordinate to achieve a common goal. Learners will understand network communication, consensus algorithms, data replication, and how to design scalable, fault-tolerant systems that handle high volumes of traffic.
File Systems
File systems control how data is stored, organized, and retrieved on physical storage devices. Learners will understand directory structures, metadata management, storage allocation methods, and how operating systems handle read and write operations efficiently.
Memory Management
Memory management is the process of controlling and coordinating computer memory. Learners will understand how operating systems allocate space to running programs, manage virtual memory, handle paging and segmentation, and optimize system resource utilization.
Operating System Security
Operating system security involves protecting system resources, data, and processes from unauthorized access and threats. Learners will understand access control mechanisms, authentication protocols, kernel-level security, and how to mitigate vulnerabilities within an operating system.
Operating Systems
Operating systems manage computer hardware and provide services for execution of software. You will understand process scheduling, memory management, file systems, and concurrency, enabling you to write software that interacts efficiently with the underlying system.
Process Management
Process management involves how operating systems create, schedule, and terminate active programs. Learners will understand process states, context switching, inter-process communication, and how the CPU allocates execution time to ensure system stability and performance.
Real-Time Operating Systems
Real-time operating systems (RTOS) are designed to process data and respond to events within strict, predictable time constraints. Learners will understand deterministic scheduling, interrupt handling, and how to develop software for safety-critical embedded systems.
Scheduling Algorithms
Scheduling algorithms determine how an operating system allocates CPU execution time to competing processes. Learners will understand different policies, such as Round Robin and First-Come First-Served, and how to evaluate their impact on system throughput and latency.
Virtualization
Virtualization is the technology used to create simulated, software-based representations of physical hardware. Learners will understand hypervisors, virtual machines, containerization, and how to partition physical servers to maximize resource utilization and isolate environments.
