Saturday, March 16, 2013

Scheduling OS and its types



Scheduling OS and its types

What is scheduling?
  • Operating system scheduling is the process of controlling and prioritizing messages sent to a processor.
  • An internal operating system program, called the scheduler, performs this task.
  • The goal is maintaining a constant amount of work for the processor, eliminating highs and lows in the workload and making sure each process is completed within a reasonable time frame.
  • While scheduling is important to all systems, it is especially important in a real-time system.

 


Types of scheduling

     Operating systems Scheduling is typically broken down into three parts.Namely,

1)    Long-term scheduler or admission scheduler or high-level scheduler,
2)    Mid-term or medium-term scheduler
3)    Short-term scheduler .

The names suggest the relative frequency with which these functions are performed.

Long-term scheduler

  • The long-term, or admission, scheduler decides which jobs or processes are to be admitted to the ready queue; that is, when an attempt is made to execute a program, its admission to the set of currently executing processes is either authorized or delayed by the long-term scheduler.
  • Thus, this scheduler dictates what processes are to run on a system, and the degree of concurrency to be supported at any one time - ie: whether a high or low amount of processes are to be executed concurrently, and how the split between IO intensive and CPU intensive processes is to be handled.
  • In modern OS's, this is used to make sure that real time processes get enough CPU time to finish their tasks. Without proper real time scheduling, modern GUI interfaces would seem sluggish.
  • Long-term scheduling is also important in large-scale systems such as batch processing systems, computer clusters, supercomputers and render farms.
  • In these cases, special purpose job scheduler software is typically used to assist these functions, in addition to any underlying admission scheduling support in the operating system.

Mid-term scheduler
  • The mid-term scheduler temporarily removes processes from main memory and places them on secondary memory (such as a disk drive) or vice versa.
  • This is commonly referred to as "swapping out" or "swapping in".
  • The mid-term scheduler may decide to swap out a process which has not been active for some time, or a process which has a low priority, or a process which is page faulting frequently, or a process which is taking up a large amount of memory in order to free up main memory for other processes, swapping the process back in later when more memory is available, or when the process has been unblocked and is no longer waiting for a resource.
  • In many systems today (those that support mapping virtual address space to secondary storage other than the swap file), the mid-term scheduler may actually perform the role of the long-term scheduler, by treating binaries as "swapped out processes" upon their execution.
  • In this way, when a segment of the binary is required it can be swapped in on demand, or "lazy loaded".


Short-term scheduler
  • The short-term scheduler (also known as the CPU scheduler) decides which of the ready, in-memory processes are to be executed next following a clock interrupt, an IO interrupt, an operating system call or another form of signal.
  • Thus the short-term scheduler makes scheduling decisions much more frequently than the long-term or mid-term schedulers - a scheduling decision will at a minimum have to be made after every time slice, and these are very short. 
  • This scheduler can be preemptive, implying that it is capable of forcibly removing processes from a CPU when it decides to allocate that CPU to another process, or non-preemptive (also known as "voluntary" or "co-operative"), in which case the scheduler is unable to "force" processes off the CPU.


 



No comments:

Post a Comment