Scheduling is an important part of
the working of operating systems.
- The scheduler is the component that provides access to the resources to the processes, threads and data
flows.
- These resources may include time of the processor and the communications
bandwidth.
- Scheduling is necessary for effectively balancing the load of the
system and achieving the target of QoS or quality of service.
- Scheduling is
also necessary for the systems that do multitasking and multiplexing on a
single processor since they need to divide the CPU time between many processes.
- In multiplexing, it is required for timing the simultaneous transmission of the
multiple flows.
Important things about Scheduler
There are 3 things which most concern the scheduler:
- Throughput
- Latency inclusive of
the response time and the turnaround time
- Waiting time or the
fairness time
- But when practically implemented, conflicts
arise between these goals for example between latency and throughput.
- It is the
scheduler that can make a compromise between any two goals.
- Based on the
user’s requirements and the objectives it is decided to which goal the
preference has to be given.
- In systems such as the embedded systems and
robotics that operate in real time environment, it has to be ensured by the scheduler that the
processes are capable of meeting the deadlines.
- This is a very critical factor in maintaining the stability of the
system.
- The administrative back end is used for managing the scheduled tasks
that are then sent to the mobile devices.
Types of Schedulers
There are 3 different types of schedulers
available which we discuss below:
Long term Schedulers
or Admission Schedulers:
- The purpose of this type of scheduler is to decide
about the processes and jobs to be admitted or added to the ready queue.
- When
a program makes an attempt for executing a process, it is the
responsibility of the long – term scheduler to delay or authorize the
request for admitting the process to the ready queue.
- Thus, what all
processes will be executed by the system is dictated by this scheduler.
- It
also dictates about the degree of the concurrency and handling of the CPU
intensive and I/O intensive processes.
- Modern operating systems use this
for making sure that there is enough time for the processes to finish of
their tasks.
- Modern GUIs would be of very less use if there was no real
time scheduling.
- The long term queue resides in the secondary memory.
Medium term Schedulers:
- This scheduler serves the purpose of removing the processes
from the physical memory and placing them in the virtual memory and even
vice versa.
- This process is called swapping out and swapping in.
- A process
that has been inactive for some time might be swapped by the scheduler.
- It
may also swap a process with frequent page faulting, low priority or more
amount of memory etc.
- This is necessary since this makes the space
available for other processes.
Short term Schedulers:
- These schedulers are more commonly known as the CPU schedulers.
- It decides which one out of all the processes will be executed after the clock
interrupt, a system call, an I/O interrupt, hardware interrupt and so on.
- Thus, we can say that the frequency of the short term schedulers of making
decisions is much higher than that of the long term and medium term
schedulers since after every time slice these schedulers have to decide.
- There is one more component that is involved
in CPU scheduling but is not counted under schedulers. It is called dispatcher.
No comments:
Post a Comment