2025
Operating systems coursework in C
Seven small repositories from the operating systems and real-time courses: system-call and interrupt simulation, process and scheduler simulation with four policies, IPC over System V shared memory and semaphores, bare-metal MSP432 examples, and a readers-writers solution in C++.
The programming assignments from the operating systems and real-time courses, published together. None is large. Together they are where I first worked through the mechanisms mod_http3 later depended on: process lifecycle, interrupts, scheduling, and shared memory.
- syscall-simulator reads a trace of CPU bursts, system calls, and I/O completions against a vector table, simulates the interrupt handling with randomised overheads, and writes an execution log. A Python script charts how time splits between CPU, I/O, and overhead.
- process-simulator adds
forkandexec, memory partitions, and external program files. Its README records the design decisions, including whetherinitcomes from the simulator or the trace. - scheduler-simulator implements FIFO, round robin, shortest job first, and an external-priority policy, with scripts that compute throughput, turnaround, and wait time and plot the comparison.
- ipc and classical-concurrency are two-process programs that talk through System V shared memory and semaphores; the second models a task queue drained by concurrent workers.
- t-embedded collects MSP432 bare-metal examples for GPIO, ADC, PWM, timers, UART, and interrupts, plus QNX mutex and deadlock demos from the real-time course.
- rw_sync is a readers-writers solution in modern C++ with
std::mutexandstd::binary_semaphore, added later as a comparison to the C versions.
All are MIT licensed, each with a Makefile and a tests/ directory.