ALL > Computer and Education > courses > university courses > graduate courses > modern operating system > ZSTU-(2019-2020-2) Class > student directories > Bhupesh(l20192e060101) >
Homework 01: write a review paper about CPU Scheduling, submit one choice question for the exam database and one dialog for self tutor. Version 0
👤 Author: by bhupeshaawasthi952gmailcom 2020-05-25 10:11:31
Homework 01: write a review paper about CPU Scheduling, submit one choice question for the exam database and one dialog for self tutor.

CPU scheduling is a process which allows one process to use the CPU while the execution of another process is on hold(in waiting state) due to unavailability of any resource like I/O etc, thereby making full use of CPU. The aim of CPU scheduling is to make the system efficient, fast and fair.

Whenever the CPU becomes idle, the operating system must select one of the processes in the ready queue to be executed. The selection process is carried out by the short-term scheduler (or CPU scheduler). The scheduler selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them.

Another component involved in the CPU scheduling function is the Dispatcher. The dispatcher is the module that gives control of the CPU to the process selected by the short-term scheduler. This function involves:

  • Switching context

  • Switching to user mode

  • Jumping to the proper location in the user program to restart that program from where it left last time.


The dispatcher should be as fast as possible, given that it is invoked during every process switch. The time taken by the dispatcher to stop one process and start another process is known as the Dispatch Latency

Types of CPU Scheduling

CPU scheduling decisions may take place under the following four circumstances:

  1. When a process switches from the running state to the waiting state(for I/O request or invocation of wait for the termination of one of the child processes).

  2. When a process switches from the running state to the ready state (for example, when an interrupt occurs).

  3. When a process switches from the waiting state to the ready state(for example, completion of I/O).

  4. When a process terminates.


In circumstances 1 and 4, there is no choice in terms of scheduling. A new process(if one exists in the ready queue) must be selected for execution. There is a choice, however in circumstances 2 and 3.

When Scheduling takes place only under circumstances 1 and 4, we say the scheduling scheme is non-preemptive; otherwise the scheduling scheme is preemptive.























Preemptive Scheduling Non-Preemptive Scheduling
Resources are allocated according to the cycles for a limited time. Resources are used and then held by the process until it gets terminated.
The process can be interrupted, even before the completion. The process is not interrupted until its life cycle is complete.
Starvation may be caused, due to the insertion of priority process in the queue. Starvation can occur when a process with large burst time occupies the system.
Maintaining queue and remaining time needs storage overhead. No such overheads are required.

CPU Scheduling: Scheduling Criteria

There are many different criterias to check when considering the "best" scheduling algorithm, they are:

CPU Utilization

To make out the best use of CPU and not to waste any CPU cycle, CPU would be working most of the time(Ideally 100% of the time). Considering a real system, CPU usage should range from 40% (lightly loaded) to 90% (heavily loaded.)

Throughput

It is the total number of processes completed per unit time or rather say total amount of work done in a unit of time. This may range from 10/second to 1/hour depending on the specific processes.

Turnaround Time

It is the amount of time taken to execute a particular process, i.e. The interval from time of submission of the process to the time of completion of the process(Wall clock time).

Waiting Time

The sum of the periods spent waiting in the ready queue amount of time a process has been waiting in the ready queue to acquire get control on the CPU.

Load Average

It is the average number of processes residing in the ready queue waiting for their turn to get into the CPU.

Response Time

Amount of time it takes from when a request was submitted until the first response is produced. Remember, it is the time till the first response and not the completion of process execution(final response).

In general CPU utilization and Throughput are maximized and other factors are reduced for proper optimization.

Scheduling Algorithms

First Come First Serve

First Come First Serve is the full form of FCFS. It is the easiest and most simple CPU scheduling algorithm. In this type of algorithm, the process which requests the CPU gets the CPU allocation first. This scheduling method can be managed with a FIFO queue.

As the process enters the ready queue, its PCB (Process Control Block) is linked with the tail of the queue. So, when CPU becomes free, it should be assigned to the process at the beginning of the queue.

Characteristics of FCFS method:

  • It offers non-preemptive and pre-emptive scheduling algorithm.

  • Jobs are always executed on a first-come, first-serve basis

  • It is easy to implement and use.

  • However, this method is poor in performance, and the general wait time is quite high.


Shortest Remaining Time

The full form of SRT is Shortest remaining time. It is also known as SJF preemptive scheduling. In this method, the process will be allocated to the task, which is closest to its completion. This method prevents a newer ready state process from holding the completion of an older process.

Characteristics of SRT scheduling method:

  • This method is mostly applied in batch environments where short jobs are required to be given preference.

  • This is not an ideal method to implement it in a shared system where the required CPU time is unknown.

  • Associate with each process as the length of its next CPU burst. So that operating system uses these lengths, which helps to schedule the process with the shortest possible time.


Priority Based Scheduling

Priority scheduling is a method of scheduling processes based on priority. In this method, the scheduler selects the tasks to work as per the priority.

Priority scheduling also helps OS to involve priority assignments. The processes with higher priority should be carried out first, whereas jobs with equal priorities are carried out on a round-robin or FCFS basis. Priority can be decided based on memory requirements, time requirements, etc.

Round-Robin Scheduling

Round robin is the oldest, simplest scheduling algorithm. The name of this algorithm comes from the round-robin principle, where each person gets an equal share of something in turn. It is mostly used for scheduling algorithms in multitasking. This algorithm method helps for starvation free execution of processes.

Characteristics of Round-Robin Scheduling

  • Round robin is a hybrid model which is clock-driven

  • Time slice should be minimum, which is assigned for a specific task to be processed. However, it may vary for different processes.

  • It is a real time system which responds to the event within a specific time limit.


Shortest Job First

SJF is a full form of (Shortest job first) is a scheduling algorithm in which the process with the shortest execution time should be selected for execution next. This scheduling method can be preemptive or non-preemptive. It significantly reduces the average waiting time for other processes awaiting execution.

Characteristics of SJF Scheduling

  • It is associated with each job as a unit of time to complete.

  • In this method, when the CPU is available, the next process or job with the shortest completion time will be executed first.

  • It is Implemented with non-preemptive policy.

  • This algorithm method is useful for batch-type processing, where waiting for jobs to complete is not critical.

  • It improves job output by offering shorter jobs, which should be executed first, which mostly have a shorter turnaround time.


Multiple-Level Queues Scheduling

This algorithm separates the ready queue into various separate queues. In this method, processes are assigned to a queue based on a specific property of the process, like the process priority, size of the memory, etc.

However, this is not an independent scheduling OS algorithm as it needs to use other types of algorithms in order to schedule the jobs.

Characteristic of Multiple-Level Queues Scheduling:

  • Multiple queues should be maintained for processes with some characteristics.

  • Every queue may have its separate scheduling algorithms.

  • Priorities are given for each queue.


The Purpose of a Scheduling algorithm

Here are the reasons for using a scheduling algorithm:

  • The CPU uses scheduling to improve its efficiency.

  • It helps you to allocate resources among competing processes.

  • The maximum utilization of CPU can be obtained with multi-programming.

  • The processes which are to be executed are in ready queue.

Please login to reply. Login

Reversion History

Loading...
No reversions found.