Projects for Advanced Operating Systems

5/28/2024

Advanced Operating Systems (EECS 482 + EECS 498-02)

An upper-level course covering fundamental and advanced concepts in operating system design and implementation. Key topics include multitasking, concurrency and synchronization, inter-process communication, deadlock detection and prevention, CPU scheduling, resource allocation, memory and storage management, file systems, and system protection and security.

Key Skills & Experience:

This course strengthened my systems programming skills and deepened my understanding of OS internals, preparing me to build and optimize complex, concurrent software systems.


Projects

Project 1: Disk Scheduler

Developed a multi-threaded disk scheduling program in C++ to simulate core operating system disk management and I/O optimization. This project modeled concurrent request handling and disk head movement strategies, mirroring real-world OS functionality.

Key Skills & Experience

This project deepened my skills in concurrent systems programming, algorithm implementation, and operating system internals, laying a foundation for building efficient, thread-safe software.


Project 2: Multi-Core Thread Library

Designed and built a complete multi-threading library in C++ to support efficient thread creation, scheduling, and synchronization on multi-CPU systems. This project emulated low-level operating system behavior and provided full concurrency support for user-level programs.

Key Skills & Experience

This project significantly enhanced my understanding of operating system concurrency models, deepened my systems programming skills, and demonstrated my ability to build complex, reliable infrastructure software from scratch.


Project 3: Virtual Memory Pager

Implemented a virtual memory management pager for an OS simulation in C++, supporting process creation, memory mapping, and efficient page handling through advanced memory management techniques.

Key Skills & Experience

This project deepened my understanding of virtual memory systems, including paging, lazy allocation, and memory protection — skills essential for operating system internals and systems programming.


Project 4: Multi-Threaded Network File System

Designed and implemented a multithreaded network file system in C++, supporting concurrent access, directory manipulation, and robust thread-safe operations across multiple clients. The system interfaced seamlessly with both new and existing file systems, enabling high-performance file serving in a simulated networked environment.

Key Skills & Experience

This project demonstrated my ability to build scalable, thread-safe infrastructure software, and deepened my expertise in multithreading, synchronization primitives, and file system architecture in performance-critical environments.