Scheduling
is a very important concept when it comes to the multi-tasking operating
systems.
- It is the method via which the
data flows, threads and processes are provided access to the shared resources
of the computer system.
- These resources include communications bandwidth,
processor time, and memory and so on.
- Scheduling is important as it helps in striking a balance the
system processor and its resources effectively.
- It helps in
achieving the target QoS or quality of service.
But what gave rise to
scheduling?
- Almost all the modern systems require to carry out multiple tasks
i.e., multi-tasking and multiplexing as well which require a scheduling
algorithm.
- Multiplexing means transmission of the multiple data flows at the
same time. - There are some other things also with which the scheduler is
concerned. They are:
- Throughput: It is the ratio of total number of
processes executed to a given amount of time.
- Latency: This factor can be sub – divided in
to two namely response time and the turnaround time. Response time is the
time taken from the submission of the process till its output is produced
by the processor. The latter i.e., the turnaround time is the time period
elapsed between the process submission and its completion.
- Waiting/ fairness time: This is the equal CPU
time given to each process or we can say that the time is allocated as
per the priority of the processes. The time for which the processes wait
in the ready queue is also counted in this.
- But in
practical, conflicts may arise between these goals such as in case of latency
versus throughput.
- If such a case occurs, a suitable compromise has to be
implemented by the scheduler.
- The needs and the objectives of the user are used
for deciding to who (of the above concerns) the preference is to be given.
- In
robotics or embedded systems i.e., in the real time environments, it becomes a
duty of the scheduler for ensuring that all the processes meet their deadlines.
- This is important for maintaining the stability of the system.
- The mobile
devices are given the scheduled tasks which are then managed by an
administrative back end.
Types of CPU Schedulers
There are
many types of CPU schedulers as discussed below:
1. Long-term Schedulers:
- These schedulers
facilitate the long term scheduling and are also known as the high level
schedulers and the admission schedulers.
- It is up to them to determine
which processes and jobs are to be sent to the ready queue.
- When the CPU
makes an attempt for executing a program, the long term scheduler has
the right to decide whether this program will be admitted to the currently
executing set of processes.
- Thus, it is dictated by this scheduler what
processes are to be run and the extent of the concurrency has to be there.
- It also decides what amounts of processes have to be concurrently
executed.
- It also decides the handling of the split between the CPU
intensive and I/O processes.
2. Medium-term Schedulers:
- The processes are
temporarily removed from the main memory and placed up on the secondary
memory by this scheduler.
- This process is called “swapping in” and
“swapping out”.
- Usually this scheduler swaps out the following processes:
a) processes that have been inactive
since some time
b) the processes that has raised a
frequent page faulting
c) processes having a low priority
d) processes that take up large
memory chunks for releasing the main memory to other processes
- The
scheduler later swaps in these processes whenever sufficient memory is
available and if the processes are unblocked and not in waiting state.
3. Short-term Schedulers:
It takes decision
regarding the processes to be executed after clock interrupt.
No comments:
Post a Comment