Skip to content

Mini OS is a simulation of an OS scheduler and memory manager using different scheduling algorithms including Highest Priority First (non-preemptive), Shortest Remaining Time Next, and Round Robin.

License

Notifications You must be signed in to change notification settings

ZeyadTarekk/Mini-OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub contributors GitHub issues GitHub license GitHub forks GitHub stars GitHub Language

📝 Table of Contents

📙 About

  • 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).

📃 System Description

  • 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:

  1. HPF (Highest Priority First)
  2. STRN (Shortest Time Remaining Next)
  3. RR (Round Robin)

    For memory we are using the buddy memory allocation system.

🏁 Getting Started

This is an list of needed instructions to set up your project locally, to get a local copy up and running follow these instructuins.

Prerequisite

  1. Any unix based system
  2. GCC compiler installed

Installation

  1. Clone the repository
$ git clone https://github.com/ZeyadTarekk/Mini-OS.git
  1. Navigate to Phase2 Folder
$ cd Phase2

Running

Running program

  1. First remove the old files
$ make clean
  1. Build all the needed files
$ make build
  1. Run the test generator to generate a files of random procceses
$ ./test_generator.out
  1. Now run the scheduler
$ make run

💻 Built Using

  • C

Demo Outputs

HPF

RR

SRTN

Contributors

Zeyad Tarek
Zeyad Tarek
Abdelrahman Mohamed
Abdelrahman Mohamed
Beshoy Morad
Beshoy Morad
Ziad Sherif
Ziad Sherif

License

This software is licensed under MIT License, See License for more information ©ZeyadTarekk.

About

Mini OS is a simulation of an OS scheduler and memory manager using different scheduling algorithms including Highest Priority First (non-preemptive), Shortest Remaining Time Next, and Round Robin.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •