THINK FIRST·CODE LATER

CPS 3250

Operating Systems

From the kernel to the edge–cloud: managing resources at every scale

Chapters
14
Questions
420
Labs
84
Your progress
0 · 0% correct

About this course

The study of how an operating system manages a computer's resources — processors, memory, storage and devices — and provides safe, efficient services to the programs that run on it. The course covers processes and threads, CPU scheduling, concurrency and synchronization, deadlocks, memory management and virtual memory, file systems and storage, virtualization and containers, and protection and security.

It is taught as resource management at every scale. The same questions an OS kernel answers for one machine — who gets the resource, when, and how do we keep everyone safe? — reappear in phones, GPU servers, cloud data centers and edge networks. Classic theory is paired with numerical examples, simulators and real Linux practice, and connected to current research on task scheduling, resource allocation and computation offloading in edge–cloud systems.

Focus

  • Foundations — what an OS does today, from the laptop to the edge–cloud; hardware support, system calls and OS architectures
  • Processes and scheduling — processes, threads and resource management; classic and multicore CPU scheduling, real-time scheduling (RM, EDF), the Linux CFS scheduler; scheduling workflows on heterogeneous systems (HEFT and beyond)
  • Coordination — race conditions, locks, semaphores and monitors in Java; deadlock prevention, avoidance (Banker's algorithm), detection and recovery, and gang scheduling of GPU jobs
  • Memory and storage — paging, TLBs and multi-level page tables; demand paging, page replacement and thrashing; file systems, disks, SSDs, RAID and distributed storage
  • Beyond one machine — virtual machines, containers and Kubernetes; cloud placement, autoscaling and serverless; edge computing and computation offloading; protection and security from file permissions to zero trust

Learning objectives

By the end of the course, students will be able to:

  1. Explain the roles and structure of a modern operating system and how programs obtain its services through system calls.
  2. Describe processes and threads, and analyse their life cycle, context switches and resource usage.
  3. Apply and compare CPU-scheduling algorithms — including real-time, multicore and heterogeneous (DAG) scheduling — using quantitative metrics.
  4. Write correct concurrent programs, and recognize, prevent and resolve race conditions and deadlocks.
  5. Compute address translations, page-table sizes, effective access times and page-fault behaviour, and evaluate memory-management policies.
  6. Explain how file systems, caches and storage devices store data durably and efficiently, and size storage configurations.
  7. Explain virtualization and containers, and reason about placement, autoscaling and resource limits in cloud platforms.
  8. Model and evaluate offloading and scheduling decisions across device, edge and cloud under latency, energy and cost constraints.
  9. Apply protection and security principles — least privilege, access control, authentication and isolation — to systems at every scale.

Teaching approach

Understand the mechanism, measure the trade-off. Every topic is taught through three lenses: the classic OS concept, a quantitative example that students can compute by hand, and its modern counterpart in industry or research.

  • One running case study — EdgeCampus, a smart-campus platform with students' phones running an AR app, GPU edge servers in each building and a public cloud. Every chapter asks where and how its resources should be managed.
  • Numerical examples everywhere: scheduling metrics, response-time analysis, page-table sizes, effective access times, disk head movement, RAID performance, offloading break-even points — each one checked by a program.
  • Simulator labs in Java: students build schedulers (FCFS to HEFT), a semaphore simulator, the Banker's algorithm, page-replacement and TLB simulators, disk schedulers, bin-packing placement, autoscalers and offloading models, all tested automatically.
  • Linux in practice: hands-on labs with real systems — processes, /proc, scheduling, page faults, file systems, cgroups and containers, and hardening.
  • Research and industry spotlights: each chapter connects the material to current research in edge–cloud scheduling and offloading and to practices at cloud and systems companies; research mini-projects let students model, simulate and evaluate their own ideas.

Course content

Open a chapter to read its review, then practise with its question bank.

Foundations

  1. Chapter 1 · Week 1

    Operating Systems Today: From the Laptop to the Edge–Cloud

    what an OS does (user and system views), the OS as resource manager, evolution from batch to cloud and edge, types of OS, multiprogramming and CPU utilization, goals of an OS, generic components, Amdahl's law, the device–edge–cloud continuum, the EdgeCampus case

    0/30 answered
  2. Chapter 2 · Week 2

    Hardware Support, System Calls and OS Architecture

    interrupts, traps and exceptions, interrupt handling and priorities, programmed I/O vs. interrupt-driven I/O vs. DMA, device controllers and drivers, dual-mode operation and privileged instructions, memory and CPU protection (base/limit, timer), system calls in Linux (fork, execve, open, read, write, kill), the cost of system calls and buffering, booting, monolithic, layered, microkernel, hybrid and unikernel architectures

    0/30 answered

Processes and Scheduling

  1. Chapter 3 · Week 3

    Processes, Threads and Resource Management

    the OS as resource manager, resource types (preemptable, sharable, reusable, consumable), goals of resource management, program vs. process, process memory layout, process control block, process states and transitions (including suspended states), context switching and its cost, fork/exec/wait/exit, zombies and orphans, threads, user vs. kernel threads, threading models, thread pools, Java threads

    0/30 answered
  2. Chapter 4 · Week 4

    CPU Scheduling I: Classic Algorithms and Metrics

    CPU–I/O burst cycle, scheduling levels (long-, medium-, short-term), preemptive vs. non-preemptive, criteria (utilization, throughput, turnaround, waiting, response), FCFS and the convoy effect, SJF and SRTF, burst prediction by exponential averaging, priority scheduling, starvation and aging, Round Robin and the time quantum, HRRN, multilevel and multilevel feedback queues, lottery and fair-share scheduling, Gantt charts

    0/30 answered
  3. Chapter 5 · Week 5

    CPU Scheduling II: Multicore, Real-Time and Linux

    asymmetric vs. symmetric multiprocessing, global vs. per-core run queues, load balancing (push/pull migration), processor affinity, NUMA, SMT, heterogeneous cores (big.LITTLE, P/E cores), gang scheduling, Linux scheduling classes, CFS and vruntime, EEVDF, nice weights, real-time tasks, utilization, rate-monotonic scheduling and the Liu–Layland bound, response-time analysis, EDF, priority inversion (Mars Pathfinder), priority inheritance, energy-aware scheduling and DVFS

    0/30 answered
  4. Chapter 6 · Week 6

    Scheduling on Heterogeneous Systems: Workflows, HEFT and Beyond

    scientific and AI workflows as DAGs, heterogeneous processors (CPU, GPU, edge, cloud), computation and communication costs, makespan, SLR, speedup and efficiency, NP-hardness, list scheduling, upward and downward ranks, HEFT with insertion, CPOP and the critical path, PEFT and the optimistic cost table, look-ahead scheduling (PPTS, IPPTS), budget- and deadline-aware scheduling, learning-based scheduling, how scheduling research is evaluated

    0/30 answered

Coordination

  1. Chapter 7 · Week 7

    Concurrency and Synchronization

    race conditions and lost updates, interleavings, the critical-section problem (mutual exclusion, progress, bounded waiting), Peterson's solution, atomic hardware instructions (test-and-set, compare-and-swap), spinlocks and mutexes, semaphores, producer–consumer, readers–writers, dining philosophers, monitors and condition variables, Java synchronization (synchronized, locks, atomics, BlockingQueue, volatile), message passing, synchronization at cloud scale

    0/30 answered
  2. Chapter 8 · Week 8

    Deadlocks: Prevention, Avoidance, Detection and Recovery

    the four necessary conditions, resource-allocation graphs and wait-for graphs, the ostrich approach, deadlock prevention (breaking each condition, resource ordering), deadlock avoidance (safe states, the Banker's algorithm), deadlock detection with multiple instances, recovery (process termination, preemption, victim selection, rollback), livelock and starvation, deadlocks in Java, databases and distributed systems, gang scheduling of distributed GPU jobs

    0/30 answered

Memory and Storage

  1. Chapter 9 · Week 10

    Memory Management: From Address Spaces to Paging

    logical vs. physical addresses, address binding, the MMU with base and limit registers, dynamic linking and shared libraries, contiguous allocation (first, best, worst and next fit), external and internal fragmentation, compaction, paging (page number and offset), page tables and page-table entries, the TLB and effective access time, multi-level, hashed and inverted page tables, huge pages, segmentation, kernel allocators (buddy system, slab), memory limits in containers and the OOM killer, memory budgets of AI models at the edge

    0/30 answered
  2. Chapter 10 · Week 11

    Virtual Memory: Demand Paging, Replacement and Thrashing

    demand paging, page faults and their handling, effective access time with page faults, copy-on-write and fork, page replacement (FIFO, optimal, LRU, clock/second chance, enhanced clock), Belady's anomaly and stack algorithms, frame allocation (equal, proportional, global vs. local), thrashing, the working-set model and page-fault frequency, memory-mapped files, swap and compressed memory, Linux reclaim (kswapd, active/inactive lists), live migration of VMs and containers, paged KV caches for AI inference

    0/30 answered
  3. Chapter 11 · Week 12

    File Systems, Disks and Storage

    files, directories and links, the open-file table, file-system layout, allocation methods (contiguous, linked/FAT, indexed/inodes), free-space management (bitmaps), the page cache and write-back vs. write-through, fsync, crash consistency (journaling, copy-on-write file systems), hard-disk performance (seek, rotation, transfer), disk scheduling (FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK), SSDs (flash translation layer, write amplification, TRIM, wear leveling), NVMe, RAID levels, distributed and cloud storage (object storage, replication, erasure coding), data placement at the edge

    0/30 answered

Beyond One Machine

  1. Chapter 12 · Week 13

    Virtualization, Containers and Cloud Resource Management

    virtual machines and hypervisors (type 1 and type 2), trap-and-emulate, hardware virtualization support, paravirtualization, memory virtualization (nested/extended page tables), I/O virtualization, overcommitment, containers (namespaces, cgroups, images and layers), VMs vs. containers, Kubernetes scheduling (filtering and scoring, requests and limits, QoS classes), CPU limits and CFS throttling, VM placement as bin packing (FF, BF, FFD, BFD), consolidation and energy, autoscaling (the Kubernetes HPA rule), serverless computing and cold starts, noisy neighbours and multi-tenancy

    0/30 answered
  2. Chapter 13 · Week 14

    Edge Computing and Computation Offloading

    why edge computing (latency, bandwidth, privacy, autonomy), the device–edge–cloud continuum, MEC, cloudlets and fog, the offloading decision (time and energy models, Shannon capacity, break-even bandwidth), DVFS and energy, partial offloading and DNN partitioning, multi-user offloading and congestion (game-theoretic view, price of anarchy), queueing at edge servers, deadline- and cost-aware placement across device, edge and cloud, workflow (DAG) offloading, mobility and service migration, edge orchestration (K3s, KubeEdge), research methods (optimization, Lyapunov, heuristics, reinforcement learning)

    0/30 answered
  3. Chapter 14 · Week 15

    Protection and Security: From File Permissions to Zero-Trust Edge

    security goals (confidentiality, integrity, availability), protection vs. security, the principle of least privilege, protection domains and the access matrix, access control lists vs. capabilities, Unix permissions, umask, setuid and Linux capabilities, mandatory access control (Bell–LaPadula, Biba, SELinux, AppArmor), authentication (password hashing, salts, slow hashes, multi-factor), memory-safety attacks and OS defenses (stack canaries, NX, ASLR), sandboxing (seccomp, containers), secure boot and TPM, encryption at rest and in transit, trusted execution environments, ransomware and supply-chain threats, securing edge and cloud systems (zero trust, updates, physical access)

    0/30 answered
Labs

84 labs with model answers

56 programming labs and 28 studio labs (written engineering tasks). Work out your own answer first, then compare.