A mini OS kernel in C, simulating different process scheduling algorithms with memory management and IPC (inter-process communication) mechanisms.
- Message Queues → Sending process control blocks (PCBs) between the process generator and scheduler.
- Shared Memory → Clock synchronization across all processes and components.
- Unix Signals → Process control (start, stop, resume, finish) between the scheduler and user processes.
- Implemented using the Buddy Allocation System.
Input file format must be as the following:
- Where Each line defines a process, with its attributes separated by a tab character
#id arrival runtime priority memory_size
1 0 10 5 64
- Navigate to the source folder:
cd src/- Compile
make
Choose a scheduling algorithm:
Note
command format: ./bin/os-sim -s <scheduling-algorithm> -f <input-file>
- Round Robin:
./bin/os-sim -s rr -q <time-quantum> -f <input-file>- Highest Priority First:
./bin/os-sim -s hpf -f <input-file>- Shortest Remaining Time First:
./bin/os-sim -s srtn -f <input-file>output files:
execution_log.txt: Timeline of process executionscheduler.log: State transitions and scheduling decisionsmemory.log: Memory allocation/de-allocationscheduler.perf: Performance statistics
Helana Nady |
Alyaa Ali |
Amr Samy |
Anas Ibrahim |