Skip to content

HelanaNady/sudon-t

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

102 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💻 Sudon't OS Scheduler

A mini OS kernel in C, simulating different process scheduling algorithms with memory management and IPC (inter-process communication) mechanisms.

🔄 Flow

image

📡 IPC 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.

🗄️ Memory Management

  • Implemented using the Buddy Allocation System.

✨ How to Run

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 execution
  • scheduler.log: State transitions and scheduling decisions
  • memory.log: Memory allocation/de-allocation
  • scheduler.perf: Performance statistics

👥 Contributors


Helana Nady

Alyaa Ali

Amr Samy

Anas Ibrahim

About

A mini OS simulation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors