This project involves designing and implementing a CPU scheduler for a single-core system using different scheduling algorithms. The scheduler is responsible for managing process states, optimizing memory usage, and ensuring efficient inter-process communication (IPC).
- Evaluate different scheduling algorithms.
- Practice IPC techniques.
- Optimize algorithms and data structures.
Create a scheduler with:
- Process Generator
- Scheduler
- Clock
- Processes
File: process_generator.c
- Reads input files.
- Asks for scheduling algorithm.
- Creates scheduler and clock processes.
- Manages process data structure and IPC.
- Accepts an extra process information:
memsize
.
File: clk.c
- Emulates an integer time clock.
File: scheduler.c
- Implements HPF, SRTN, and RR algorithms.
- Manages process control blocks (PCBs).
- Allocates and deallocates memory using the buddy memory allocation system.
- Generates
scheduler.log
,scheduler.perf
, andmemory.log
.
File: process.c
- Simulates CPU-bound processes.
- Input:
processes.txt
- Output:
scheduler.log
,scheduler.perf
,memory.log
- OS: Linux
- Language: C