Skip to content

vidithsalla/c-operating-systems-projects

Repository files navigation

Systems Programming Portfolio in C

A curated collection of production-quality systems-level C projects demonstrating:

  • Robust design patterns
  • Clean separation of concerns
  • Strong emphasis on testing and correctness
  • Idiomatic and safe C style suitable for professional development

These projects highlight my ability to design, implement, and test low-level systems software—skills critical for roles in OS development, embedded systems, and performance-critical libraries.


Included Projects

1. Process Scheduler Simulator in C

  • Discrete-event simulation engine for modeling CPU scheduling
  • Implements 8 classic and preemptive scheduling algorithms (FCFS, LCFS, SJF, PSJF, SRPT, PLCFS, PS, FB)
  • Modular design with clear separation between simulator core and scheduling policy implementations
  • Custom generic linked list with user-defined comparison for priority queues
  • Thorough unit tests for linked list and full simulation runs with trace files

File: process-scheduler-simulator/


2. pthread Concurrency Primitives

  • Go-style channel implementation in pure C with POSIX threads
  • Blocking and non-blocking channels with FIFO fairness
  • select-style API supporting multiplexed waits across channels
  • Robust stress tests simulating ring-passing and realistic topologies
  • Portable design using semaphores, mutexes, and condition variables with no busy-polling

File: pthread-concurrency/


3. Custom Dynamic Memory Allocator

  • Manual implementation of malloc, free, realloc, and calloc
  • Segregated free lists for fast allocation by size class
  • Coalescing adjacent free blocks to reduce fragmentation
  • Block splitting for internal space efficiency
  • Debugging support with heap consistency checker

File: custom-malloc-allocator/


4. Pointer Manipulation in C

  • Demonstrates low-level memory and pointer manipulation
  • Emulated polymorphism using function pointers and virtual function tables
  • Generic data structures: sorted linked lists and explicit-iterator binary search trees
  • Thoroughly tested with 50+ unit tests covering edge cases, traversal correctness, and aggregation
  • Production-quality C patterns for reusable, modular design

File: pointer-manipulation/


Key Skills Demonstrated

  • Systems-level C design with clean, idiomatic style
  • Advanced concurrency and synchronization with pthreads
  • Manual memory management with allocator strategies
  • Emulation of OOP patterns in C (VFTs, polymorphism)
  • Event-driven simulation modeling
  • Generic data structure design and testing
  • Strong emphasis on correctness, maintainability, and testing

🛠️ Build & Test

Each project includes:

  • Clean modular source structure
  • Self-contained Makefile for build automation
  • Unit tests and/or trace-based simulation verification

Purpose

This repository is designed to demonstrate real-world systems programming ability suitable for:

  • Operating system internals
  • Embedded or real-time systems
  • Performance-critical C libraries
  • Teaching and mentoring on professional C design patterns

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors