IBPS SO IT Officer Notes for Process Scheduling
IBPS SO IT Officer Notes for Process Scheduling
Process scheduling
The process scheduling is the activity to manage processing of running process from the CPU and the selection of another process on the basis of a particular strategy.
Process scheduling is an important part of a Multi-programming operating systems. Operating systems allow more than one process loaded into the executable memory at a time and the loaded process shares the CPU using time multiplexing.
Process Scheduling Queues
The OS maintains all PCBs in Process Scheduling Queues. The OS maintains a separate queue for each of the process states and PCBs of all processes in the same execution state are placed in the same queue. When the state of a process is changed, its PCB is unlinked from its current queue and moved to its new state queue.
The Operating System maintains the following process scheduling queues −
- Job queue − All the processes kept in queue.
- Ready queue − This queue keeps a set of all processes residing in main memory.Ready and waiting to execute. A new process is always put in this queue.
Device queues − The processes which are blocked due to unavailability of an I/O device originate this queue.
The OS manage different policies for each queue FIFO, Round Robin, Priority, etc. The OS scheduler determines how to move processes between the ready and run queues.
Schedulers
Schedulers are system software which handle process scheduling in various ways. Their main task is to select the jobs to be submitted into the system and decide which process to run. Schedulers are three types −
- Long-Term Scheduler
- Short-Term Scheduler
- Medium-Term Scheduler
Long Term Scheduler IBPS SO IT Officer Notes for Process Scheduling
It is also called a job scheduler. It selects processes from the queue and loads them into memory for execution. Process loads into the memory for CPU scheduling.
The primary objective of the job scheduler is to provide a balanced jobs, such as I/O bound and processor bound. It also controls the degree of multi-programming. If the degree of multi-programming is stable, then the average rate of process must be equal to the average departure rate of processes.
On some systems, the long-term scheduler may not be available or minimal. Time-sharing operating systems have no long term scheduler. When a process changes the state from new to ready state then there is use of long-term scheduler.
Short Term Scheduler
It is also called as CPU scheduler. Its main objective is to increase system performance according to the chosen set of criteria. It is the change of ready state to running state of the process. CPU scheduler selects a process among the processes that are ready to execute and allocates CPU to one of them.Short-term schedulers, also known as dispatchers, make the decision of which process to execute next. Short-term schedulers are faster than long-term schedulers.
Best Books for Competitive exam preparation.
Medium Term Scheduler
Medium-term scheduling is a part of swapping. It removes the processes from the memory. It reduces the degree of multiprogramming. The medium-term scheduler is in-charge of handling the swapped out-processes.
A running process may become suspended if it makes an I/O request. A suspended processes cannot make any progress towards completion. In this condition, to remove the process from memory and make space for other processes, the suspended process is moved to the secondary storage. This process is called swapping, and the process is said to be swapped out or rolled out.
Comparison among Scheduler
S.N. | Long-Term Scheduler | Short-Term Scheduler | Medium-Term Scheduler |
1 | It is a job scheduler | It is a CPU scheduler | It is a process swapping scheduler. |
2 | Speed is lesser than short term scheduler | Speed is fastest among other two | Speed is in between both short and long term scheduler. |
3 | It controls the degree of multi-programming | It provides lesser control over degree of multi-programming | It reduces the degree of multi-programming. |
4 | It is almost absent or minimal in time sharing system | It is also minimal in time sharing system | It is a part of Time sharing systems. |
5 | It selects processes from pool and loads them into memory for execution | It selects those processes which are ready to execute | It can re-introduce the process into memory and execution can be continued. |
Context Switch
A context switch is the technique to store and restore the state or context of a CPU in Process Control block so that a process execution can be resumed from the same point at a later time. It enables multiple processes to share a single CPU. Context switching is an essential part of a multitasking operating system features.
When scheduler switches the CPU from executing one process to another the state from the current running process is stored into the process control block. After this, the state for the process to run next is loaded from its own PCB and used to set the Program Counter, registers, etc. At that point, the second process can start executing.
Context switches are computationally intensive when register and memory state must be saved and restored. To avoid the amount of context switching time, some hardware systems employ two or more sets of processor registers. following information is stored for future When the process is switched:.
- Program Counter
- Scheduling information
- Base and limit register value
- Currently used register
- Changed State
- I/O State information
- Accounting information
Join Best Exam Preparation group on Telegram
First Come First Serve (FCFS)
- Jobs are executed on first come first serve basis.
- It is a non-preemptive and preemptive scheduling algorithm.
- It is Easy to understand and implement.
- Implementation is based on FIFO queue.
- Average waiting time is high.
Wait time of each process follows:−
Process | Wait Time : Service Time – Arrival Time |
P0 | 0 – 0 = 0 |
P1 | 5 – 1 = 4 |
P2 | 8 – 2 = 6 |
P3 | 16 – 3 = 13 |
Average Wait Time: (0+4+6+13) / 4 = 5.75
Shortest Job first (SJF)
- This is a non-preemptive and preemptive scheduling algorithm.
- minimum waiting time.
- Easy to implement in Batch systems where required CPU time is known in advance.
- Impossible to implement in interactive systems where required CPU time is not known.
- The processor must know in advance how much time process will take.
Process | Wait Time : Service Time – Arrival Time |
P0 | 3 – 0 = 3 |
P1 | 0 – 0 = 0 |
P2 | 16 – 2 = 14 |
P3 | 8 – 3 = 5 |
Average Wait Time: (3+0+14+5) / 4 = 5.50
Priority Based Scheduling
- Priority scheduling is a non-preemptive algorithm
- Each process is assigned a priority. Process with highest priority is to be executed first and so on.
- Processes with same priority are executed on first come first served basis.
- Priority can be decided based on memory requirements, time requirements or any other requirement.
Wait time of each process follows −
Process | Wait Time : Service Time – Arrival Time |
P0 | 9 – 0 = 9 |
P1 | 6 – 1 = 5 |
P2 | 14 – 2 = 12 |
P3 | 0 – 0 = 0 |
Average Wait Time: (9+5+12+0) / 4 = 6.5
Shortest Remaining Time
- Shortest remaining time (SRT) is the preemptive version of the SJF algorithm.
- The processor is allocated to the job closest to completion but it can be preempted by a newer ready job with shorter time to completion.
- Impossible to implement in interactive systems where required CPU time is not known.
- It is used in batch environments where short jobs need to be give preference.
Round Robin Scheduling
- Round Robin is the preemptive scheduling algorithm.
- Each process is provided a fix time to execute called a quantum.
- Once a process is executed for a given time period, it is preempted and other process executes for a given time period.
Wait time of each process follows −
Process | Wait Time : Service Time – Arrival Time |
P0 | (0 – 0) + (12 – 3) = 9 |
P1 | (3 – 1) = 2 |
P2 | (6 – 2) + (14 – 9) + (20 – 17) = 12 |
P3 | (9 – 3) + (17 – 12) = 11 |
Average Wait Time: (9+2+12+11) / 4 = 8.5
Multiple-Level Queues Scheduling
Multiple-level queues are not an independent scheduling algorithm. They make use of other existing algorithms to group and schedule jobs with common characteristics.
- Multiple queues are maintained for processes with common characteristics.
- Each queue can have its own scheduling algorithms.
- Priorities are assigned to each queue.
Thread
A thread is also called a lightweight process. Threads provide a way to improve application performance through parallelism.
Difference between Process and Thread
S.N. | Process | Thread |
1 | Process is heavy weight or resource intensive. | Thread is light weight, taking lesser resources than a process. |
2 | Process switching needs interaction with operating system. | Thread switching does not need to interact with operating system. |
3 | In multiple processing environments, each process executes the same code but has its own memory and file resources. | All threads can share same set of open files, child processes. |
4 | If one process is blocked, then no other process can execute until the first process is unblocked. | While one thread is blocked and waiting, a second thread in the same task can run. |
5 | Multiple processes without using threads use more resources. | Multiple threaded processes use fewer resources. |
6 | In multiple processes each process operates independently of the others. | One thread can read, write or change another thread’s data. |
Advantages of Thread
- Threads minimize the context switching time.
- Use of threads provides concurrency within a process.
- Efficient communication.
- It is more economical to create and context switch threads.
- Threads allow utilization of multiprocessor architectures to a greater scale and efficiency.
Types of Thread
- User Level Threads − User managed threads without involving kernel..
- Kernel Level Threads − Operating System managed threads acting on kernel.
User Level Threads
kernel is not aware of the existence of threads. The thread library contains code for creating and destroying threads for passing message and data between threads. The application starts with a single thread.
Advantages
- Thread switching does not require Kernel.
- User level thread can run on any operating system.
- User level threads are fast to create and manage.
Disadvantages
- In operating system, most system calls are blocking.
- Multi-threaded application cannot take advantage of multiprocessing.
Kernel Level Threads
Thread management is done by the Kernel. Kernel threads are supported directly by the operating system. Any application can be programmed to be multi-threaded. The Kernel maintains context information for the process Scheduling by the Kernel is done on a thread basis. The Kernel performs thread creation, scheduling and management in Kernel space. Kernel threads are slower to create and manage than the user threads.
Advantages
- Kernel simultaneously schedule multiple threads from the same process on multiple processes.
- If one thread in a process is blocked, the Kernel can schedule another thread of the same process.
Disadvantages
- Kernel threads are generally slower to create and manage than the user threads.
- Transfer of control from one thread to another within the same process requires a mode switch to the Kernel.
Multi-threading Models
Join us on Telegram and Facebook for B ANK exam is also asked in other government exam like BANK IBPS SO RRB SSC. This note has been prepared by Supriya Kundu is of one of best teacher in this field.If any question please ask in below.
Related Posts
« IBPS SO IT Officer Notes for Operating System IBPS SO IT Officer Notes for Multi threading Models »