Scheduling, in computer science, is the technique though which processes, threads or data flows are given access to system resources (for example communications bandwidth, processor time,). It is usually done to load balance a system effectively or obtain a target quality of service. The requirement for a scheduling algorithm arises from the requirement for most modern systems to carry out multitasking (execute more than one process at a time) and multiplexing (simultaneously transmit multiple flows).

The scheduler is concerned mainly with:

The over all number of processes that complete their execution per time unit.

  • Turnaround time – it is overall time between submission of a procedure and its completion.
  • Response time – it is amount of time it takes from while a request was submitted till the first response is produced.

Fairness / Waiting Time:

Equal CPU time to every process (or normally more appropriate times according to every process' priority). It is the time for which the procedure remains in the ready queue.

In practice, these goals frequently conflict (for example. throughput versus latency), therefore a scheduler will implement a appropriate compromise. Preference is given to any one of the above denoted concerns based upon the user's needs and objectives.

In real-time environments, such like embedded systems for automatic control in industry (for instance robotics), the scheduler also ought to ensure that processes can meet deadlines; it is crucial for keeping the system stable. Scheduled tasks are sent towards mobile devices and handled through an administrative back end.

Types of operating system schedulers:

Long-term scheduling:

The long-term, or admission scheduler, choose which jobs or processes are to be admitted to the ready queue (in the Main Memory); i.e., Whereas an effort is made to execute a program, its admission to the set of currently executing procedure is either authorized or delayed by the long-term scheduler. Therefore, this scheduler dictates what processes are to run on a particular system, and the degree of concurrency to be supported at any one time - i.e.: whether a high or low amount of processes are to be concurrently executed, and how the divide between input output intensive and CPU intensive processes is to be managed. In modern operating systems, this is utilized to make sure that real time processes get enough CPU time to finish their tasks. Without appropriate real time scheduling, modern GUI interfaces would appear sluggish. The long term queue presents in the Hard Disk or the "Virtual Memory".

Medium-term scheduling:

The medium-term scheduler temporarily eliminate processes from main memory and put them on secondary memory (such as a disk drive) or vice versa. Normally it is considered as "swapping out" or "swapping in" (also incorrectly like "paging out" or "paging in"). The medium-term scheduler might be choose to swap out a procedure which has not been active for some time, or a procedure which has a low priority, or a procedure which is page faulting frequently, or a procedure which is taking up a big amount of memory to free up main memory for other processes, swapping the procedure back in later on when more memory is available, or when the procedure has been unblocked and is no longer waiting for a resource.

Short-term scheduling:

The short-term scheduler (also called as the CPU scheduler) decides which task ready, in-memory processes are to be executed (allocated a CPU) next following clock interrupt, an I/O interrupt, an operating system call or another form of signal. Therefore the short-term scheduler makes scheduling decisions much more frequently than the long-term or mid-term schedulers - a scheduling decision at a minimum ought to be made after every time slice and these are extremely short. This particular scheduler might be preemptive, implying that it is capable of forcibly eliminating processes from a CPU while it decides to allocate that CPU to another procedure, or non-preemptive (also called "co-operative" / "voluntary"), in which case the scheduler is unable to "force" processes off the CPU.


Another component included in the CPU-scheduling function is the dispatcher. The dispatcher is the module that provides control of the CPU to the process chosen by the short-term scheduler. This function includes switching context, Switching to user mode, jumping to the right location in the user program to restart that program.

Latest technology based Computer Science Online Tutoring Assistance

Tutors, at the, take pledge to provide full satisfaction and assurance in Scheduling homework help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Scheduling, project ideas and tutorials. We provide email based Scheduling homework help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Scheduling. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Computer Science homework help and assignment help services. They use their experience, as they have solved thousands of the Computer assignments, which may help you to solve your complex issues of Scheduling. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.