https://github.com/sameetasadullah/cpu-scheduling-simulator
C++ program to simulate different Operating system scheduling algorithms i.e, FCFS, RR, SJF using dup/dup2, fork, exec, and inter-process communication primitives
https://github.com/sameetasadullah/cpu-scheduling-simulator
cpp dup dup2 exec fcfs-scheduling fork inter-process-communication linux named-pipes rr-scheduling sjf-scheduling ubuntu
Last synced: 4 months ago
JSON representation
C++ program to simulate different Operating system scheduling algorithms i.e, FCFS, RR, SJF using dup/dup2, fork, exec, and inter-process communication primitives
- Host: GitHub
- URL: https://github.com/sameetasadullah/cpu-scheduling-simulator
- Owner: SameetAsadullah
- License: mit
- Created: 2022-08-08T15:04:48.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-08T15:52:32.000Z (almost 3 years ago)
- Last Synced: 2025-01-21T17:51:08.620Z (6 months ago)
- Topics: cpp, dup, dup2, exec, fcfs-scheduling, fork, inter-process-communication, linux, named-pipes, rr-scheduling, sjf-scheduling, ubuntu
- Language: C++
- Homepage:
- Size: 1.1 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CPU Scheduling Simulator
### Description
`C++ Program` to simulate different `Operating System Scheduling Algorithms` using dup/dup2, fork, exec, and inter-process communication primitives.### Algorithms Implemented
- Round Robin (RR)
- First Come First Serve (FCFS)
- Shortest Job First (SJF)### Manual
1) Use the following command to `Compile the Code`:
```
g++ 5_state_model_simulator.cpp
```2) Use the following command to `Run the Code`:
```
./a.out
```
3) You can `Change Processes` in the files named as Sample_1_RR.txt, Sample_2_FCFS.txt, Sample_4_SJF.txt. Its format is given below:
- First line indicates scheduling algorithm to perform.
- Second line indicates quantum for RR.
- Further lines indicate process number, its arrival time, and its cpu burst required.
4) You can see `Final Output` i.e, throughput, average waiting time, average turnaround time in the file named as `processes_stats.txt`
### Working Screenshots
![]()
![]()
![]()