ALL > Computer and Education > courses > university courses > graduate courses > modern operating system > zstu 2018-2019-2 class >
CPU Scheduling Version 0
šŸ‘¤ Author: by kaamssabrygmailcom 2019-04-16 02:04:32

What is CPU Scheduling?


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.

CPU Scheduling: Dispatcher


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. Dispatch Latency can be explained using the below figure:

Dispatch latency of Process Dispatcher

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.

Non-Preemptive Scheduling


Under non-preemptive scheduling, once the CPU has been allocated to a process, the process keeps the CPU until it releases the CPU either by terminating or by switching to the waiting state.

This scheduling method is used by the Microsoft Windows 3.1 and by the Apple Macintosh operating systems.

It is the only method that can be used on certain hardware platforms, because It does not require the special hardware(for example: a timer) needed for preemptive scheduling.

Preemptive Scheduling


In this type of Scheduling, the tasks are usually assigned with priorities. At times it is necessary to run a certain task that has a higher priority before another task although it is running. Therefore, the running task is interrupted for some time and resumed later when the priority task has finished its execution.

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


To decide which process to execute first and which process to execute last to achieve maximum CPU utilisation, computer scientists have defined some algorithms, they are:

  1. First Come First Serve(FCFS) Scheduling

  2. Shortest-Job-First(SJF) Scheduling

  3. Priority Scheduling

  4. Round Robin(RR) Scheduling

  5. Multilevel Queue Scheduling

  6. Multilevel Feedback Queue Scheduling

Please login to reply. Login

Reversion History

Loading...
No reversions found.