- A CPU scheduler determines an order for the execution of its scheduled processes; it decides which process will run according to a certain data structure that keeps track of the processes in the system and their status.
- A process, upon creation, has one of the three states: Running, Ready, Blocked (doing I/O, using other resources than CPU or waiting on unavailable resource).
- Consider a Computer with 1-CPU and fixed size memory (1024 ==> can be changed). Our scheduler implemented the complementary components as sketched in the following diagrams.
📌 NOTE:
We are supporting the following Scheduling algorithms:
- HPF (Highest Priority First)
- STRN (Shortest Time Remaining Next)
- RR (Round Robin)
For memory we are using the buddy memory allocation system.
This is an list of needed instructions to set up your project locally, to get a local copy up and running follow these instructuins.
- Any unix based system
- GCC compiler installed
- Clone the repository
$ git clone https://github.com/ZeyadTarekk/Mini-OS.git
- Navigate to Phase2 Folder
$ cd Phase2
Running program
- First remove the old files
$ make clean
- Build all the needed files
$ make build
- Run the test generator to generate a files of random procceses
$ ./test_generator.out
- Now run the scheduler
$ make run
- C
Zeyad Tarek |
Abdelrahman Mohamed |
Beshoy Morad |
Ziad Sherif |
This software is licensed under MIT License, See License for more information ©ZeyadTarekk.