Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ramonbecker/schedulingalgorithms
Project developed for scheduling algorithms for the Operating Systems discipline.
https://github.com/ramonbecker/schedulingalgorithms
Last synced: 3 days ago
JSON representation
Project developed for scheduling algorithms for the Operating Systems discipline.
- Host: GitHub
- URL: https://github.com/ramonbecker/schedulingalgorithms
- Owner: RamonBecker
- Created: 2019-11-12T13:17:02.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-13T23:03:46.000Z (over 3 years ago)
- Last Synced: 2024-06-26T15:00:42.418Z (6 months ago)
- Language: Java
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Scheduling Algorithms
> The project was developed with scheduling algorithms.
>
## :information_source: InformationThe scheduler is responsible for deciding the order of execution of the finished processes, that is, which schedules the processes. The scheduling of processes is performed by an algorithm that aims to treat efficiently and quickly the processes to be treated. Several criteria can be defined for the evaluation of schedulers. The most frequent are:
- Execution time (turnaround) → measures the time elapsed between the creation and the end of the task, computing all the processing and waiting times.
- Waiting time → total time lost by the task in the ready queue, waiting for the processor.
- Response time → time elapsed between the arrival of an event in the system and the immediate result of its processing
- Efficiency → Indicates the degree of utilization of the processor in the execution of the user's tasks.
- Justice → Distribution of the processor among the completed tasks.
The implemented algorithms were: RR, FCFS and SJF.
Round-Robin (RR) is a task scheduling algorithm (processes) that consists of dividing the usage time of the CPU (Central Processing Unit). Each process receives a slice of time, this time is called Time-Slice, also known as Quantum. The processes are all stored in a circular Buffer. The scheduler executes each task for the time determined by the Time-Slice and at the end of this period the context change is performed, where the next queue process starts to be executed by the CPU until the Time-Slice period has passed. After going through all the processes in the queue, these activities are repeated and the scheduler points to the first task.
The FCFS algorithm, in its most elementary form of scheduling, consists of simply attending to tasks in sequence, as they become ready (that is, according to their order of arrival in the queue of ready tasks). This algorithm is known as FCFS - First Come - First Served - and its main advantage is its simplicity.
Shortest Job First (SJF) scheduling the scheduling algorithm that provides the lowest average execution and waiting times is known as the shortest task first, or SJF (Shortest Job First). As the name implies, it consists of assigning the processor to the smallest (shortest) task in the ready task queue.
## ⚠️ Prerequisite
[![Java Badge](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=java&logoColor=white)](https://www.oracle.com/br/java/technologies/javase-downloads.html) >= 11## :rocket: Installation
![](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
```sh
git clone https://github.com/RamonBecker/SchedulingAlgorithms.git
```![](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)
```sh
git clone https://github.com/RamonBecker/SchedulingAlgorithms.git
or install github https://desktop.github.com/```
## :zap: Technologies
- Java
## :memo: Developed features
- [x] Reading elements file
- [x] Generation of the gantt chart
- [x] Use of queues
- [x] Scheduler creation and which algorithm to use in the processes## :technologist: Author
By Ramon Becker 👋🏽 Get in touch!
[](https://github.com/RamonBecker) [](https://www.linkedin.com/in/https://www.linkedin.com/in/ramon-becker-da-silva-96b81b141//)
![Gmail Badge](https://img.shields.io/badge/[email protected]?style=flat-square&logo=Gmail&logoColor=white&link=mailto:[email protected])