FACTOID # 35: Looking for Czech and Slovak men? Half are in factories.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Scheduling (computing)

Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. It refers to the way processes are assigned priorities in a priority queue. This assignment is carried out by software known as a scheduler. Image File history File links This is a lossless scalable vector image. ... I/O Scheduling which should not be confused with process scheduling. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ... In computing, a process is an instance of a computer program that is being executed. ... A priority queue is an abstract data type in computer programming, supporting the following three operations: add an element to the queue with an associated priority remove the element from the queue that has the highest priority, and return it (optionally) peek at the element with highest priority without removing...


In real-time environments, such as mobile devices for automatic control in industry (for example robotics), the scheduler also must ensure that processes can meet deadlines; this is crucial for keeping the system stable. Scheduled tasks are sent to mobile devices and managed through an administrative back end. Realtime redirects here. ... A mobile device (also known as converged device, handheld device, handheld computer, Palmtop or simply handheld) is a pocket-sized computing device, typically comprising a small visual display screen for user output and a miniature keyboard or touch screen for user input. ... Automatic control is the research area and theoretical base for mechanization and automation, employing methods from mathematics and engineering. ... The Shadow robot hand system holding a lightbulb. ... Deadline can refer to several things: A deadline is a point in time at which something must be completed. ... Device Management is a standard where users do not have to worry about managing the software on their mobile phone. ...

Contents

Types of operating system schedulers

Operating systems may feature up to 3 distinct types of schedulers: a long-term scheduler (also known as an admission scheduler or high-level), a mid-term or medium-term scheduler and a short-term scheduler (also known as a dispatcher). 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. Typically for a desktop computer, there is no long-term scheduler as such, and processes are admitted to the system automatically. However this type of scheduling is very important for a real time system, as the system's ability to meet process deadlines may be compromised by the slowdowns and contention resulting from the admission of more processes than the system can safely handle. [Stallings, 399] A ready queue is used in computer scheduling. ... In computer science, IO bound refers to a condition in which the time it takes to complete a computation is determined principally by the period of time spent waiting for Input/output operations to be completed. ... CPU bound refers to a condition where the time to complete a computation is determined principally by the speed of the central processor and main memory. ... Bold text Desktop computer with several common peripherals (Monitor, keyboard, mouse, speakers, microphone and a printer) A desktop computer is a gay electronic machine computer which convert raw data into meaningful information, made for use on a desk in an office or home and is distinguished from portable computers such... It has been suggested that Real-time computing be merged into this article or section. ...


Mid-term Scheduler

The mid-term scheduler, present in all systems with virtual memory, 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" (also incorrectly as "paging out" or "paging 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. [Stallings, 396] [Stallings, 370] The program thinks it has a large range of contiguous addresses; but in reality the parts it is currently using are scattered around RAM, and the inactive parts are saved in a disk file. ... In computer operating systems, paging memory allocation, paging refers to the process of managing program access to virtual memory pages that do not currently reside in RAM. It is implemented as a task that resides in the kernel of the operating system and gains control when a page fault takes... In computer storage technology, a page is a fixed length block of memory that is used as a unit of transfer between physical memory and external storage like a disk, and a page fault is an interrupt (or exception) to the software raised by the hardware, when a program accesses...


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". [Stallings, 394]


Short-term Scheduler

The short-term scheduler (also known as the dispatcher) decides which of the ready, in-memory processes are to be executed (allocated a CPU) 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, in which case the scheduler is unable to "force" processes off the CPU. [Stallings, 396]. In computing, a system call is the mechanism used by an application program to request service from the operating system. ... Signal programming is often used in the same sense as Event-driven programming. ... Pre-emption as used with respect to operating systems means the ability of the operating system to preempt or stop a currently scheduled task in favour of a higher priority task. ...


Scheduling disciplines

Main article: Scheduling algorithm

Scheduling disciplines are algorithms used for distributing resources among parties which simultaneously and asynchronously request them. Scheduling disciplines are used in routers (to handle packet traffic) as well as in operating systems (to share CPU time among threads and processes). It has been suggested that this section be split into a new article entitled Scheduling (communications). ... This article is about a computer networking device. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... CPU Time is the amount of time a computer program uses in processing on a CPU, often measured in clock ticks. ... For the form of code consisting entirely of subroutine calls, see Threaded code. ... In computing, a process is an instance of a computer program that is being executed. ...


The main purposes of scheduling algorithms are to minimize resource starvation and to ensure fairness amongst the parties utilizing the resources. In computer science, starvation is a multitasking-related problem, where a process is perpetually denied necessary resources. ...


Common scheduling disciplines

The following is a list of common scheduling practices and disciplines:

The Completely Fair Scheduler is the name of a task scheduler which was merged into the 2. ... This article needs to be wikified. ... A scheduling strategy for periodic tasks which assigns the higher priority to the task of shorter deadline-interval. ... Deficit round robin (DRR) is a modified weighted round robin scheduling discipline. ... Earliest deadline first (EDF) scheduling is a dynamic scheduling principle used in real-time operating systems. ... Fair-share scheduling is a scheduling strategy for computer operating systems in which the CPU usage is equally distributed among system users or groups, as opposed to equal distribution among processes. ... This article is about FIFOs in computing and electronic design. ... Scheduling threads of a single process to run at the same time. ... Highest Response ratio Next (HRRN) scheduling is a non-preemptive discipline, similar to Shortest job next, in which the priority of each job is dependent on its estimated run time, and also the amount of time it has spent waiting. ... Interval scheduling is a class of problems in computer science, particularly in the area of algorithm design. ... In a stack, the topmost item, which is added last, is taken out first. ... Job shops are typically small manufacturing operations that handle specialized manufacturing processes such as small customer orders or small batch jobs. ... Least Slack Time (LST) scheduling is a scheduling algorithm. ... The basic idea of list scheduling is to make an ordered list of processes by assigning them some priorities, and then repeatedly execute the following two steps until a valid schedule is obtained : Select from the list, the process with the highest priority for scheduling. ... Lottery Scheduling is a scheduling algorithm for processes in an operating system, and is a specialized implementation of priority scheduling. ... Multi-level queueing, used at least since the late 1950s/early 1960s, is a queue with a predefined number of levels. ... The multilevel feedback queue was designed by Kleinrock in 1970 to meet the following design requirements for multimode systems: Give preference to short jobs. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... Proportional Share Scheduling is a type of scheduling which preallocates certain amount of CPU time to each of the processes. ... In computer science, rate-monotonic scheduling [1] is a scheduling algorithm used in real-time operating systems with a static-priority scheduling class. ... Round-robin is one of the simplest scheduling algorithms for processes in an operating system, which assigns time slices to each process in equal portions and in order, handling all processes as having the same priority. ... Shortest job next (SJN) (also known as Shortest Job First (SJF)) is a nonpreemptive method of CPU scheduling that selects the waiting process with the smallest execution time to execute next. ... Shortest remaining time is a method of CPU scheduling that is a preemptive version of shortest job next scheduling. ... Two-level scheduling is a Computer science term to describe a method to more efficiently perform process scheduling that involves swapped out processes. ... Weighted Fair Queuing (WFQ) is a packet scheduling technique allowing guaranteed bandwidth services. ... Weighted round robin (WRR) is a best-effort connection scheduling discipline. ...

Operating system scheduler implementations

Different computer operating systems implement different scheduling schemes. Very early MS-DOS and Microsoft Windows systems were non-multitasking, and as such did not feature a scheduler. Windows 3.1 and Macintosh OS 9 (not OS X) and prior based operating systems used a simple non-preemptive scheduler which requires programmers to instruct their processes to "yield" (give up the CPU) in order for other processes to gain some CPU time. This provided primitive support for multitasking, but did not provide more advanced scheduling options. Microsofts disk operating system, MS-DOS, was Microsofts implementation of DOS, which was the first popular operating system for the IBM PC, and until recently, was widely used on the PC compatible platform. ... A typical Windows 3. ...


Windows NT 4.0-based operating systems use a multilevel feedback queue. Priorities in Windows NT 4.0 based systems range from 1 through to 31, with priorities 1 through 15 being "normal" priorities and priorities 16 through 31 being soft realtime priorities, requiring privileges to assign. Users can select 5 of these priorities to assign to a running application from the Task Manager application, or through thread management APIs. Information on the Windows NT scheduler Windows NT 4. ... The multilevel feedback queue was designed by Kleinrock in 1970 to meet the following design requirements for multimode systems: Give preference to short jobs. ...


Early Unix implementations used a scheduler with multilevel feedback queues with round robin selections within each Feedback Queue. In this system, processes begin in a high priority queue (giving a quick response time to new processes, such as those involved in a single mouse movement or keystroke), and as they spend more time within the system, they are preempted multiple times and placed in lower priority queues. Unfortunately under this system older processes may be starved of CPU time by a continual influx of new processes, although if a system is unable to deal with new processes faster than they arrive, starvation is inevitable anyway. Process priorities could be explicitly set under Unix to one of 40 values, although most modern Unix systems have a higher range of priorities available (Solaris has 160). Instead of the Windows NT 4.0 solution to low priority process starvation (bumping a process to the front of the round robin queue should it be starving), early Unix systems used a more subtle aging system, to slowly increase the priority of a starving process until it was executed, whereupon its priority would be reset to whatever it was before it started starving. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®, sometimes also written as or ® with small caps) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ...


The Linux kernel had been using an O(1) scheduler until 2.6.23, at which point it is switching over to the Completely Fair Scheduler. The Linux kernel is a Unix-like operating system kernel. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... The Completely Fair Scheduler is the name of a task scheduler which was merged into the 2. ...


References

  • Blazewicz, J., Ecker, K.H., Pesch, E., Schmidt, G. und J. Weglarz, Scheduling Computer and Manufacturing Processes, Berlin (Springer) 2001, ISBN 3-540-41931-4
  • Stallings, William (2004). Operating Systems Internals and Design Principles (fifth international edition). Prentice Hall. ISBN 0-13-147954-7. 
  • Stallings, William (2004). Operating Systems Internals and Design Principles (fourth edition). Prentice Hall. ISBN 0-13-031999-6. 
  • Information on the Linux 2.6 scheduler
  • Information on the Windows NT scheduler
  • Information on the Windows NT and Unix schedulers

Year 2001 (MMI) was a common year starting on Monday (link displays the 2001 Gregorian calendar). ...

See also

It has been suggested that this section be split into a new article entitled Scheduling (communications). ... In computing, a process is an instance of a computer program that is being executed. ... In a multitasking computer system, processes may occupy a variety of states. ... Automated planning and scheduling is a branch of artificial intelligence that concerns the realisation of strategies or action sequences, typically for execution by intelligent agents, autonomous robots and unmanned vehicles. ... Its a type of Scheduling Algorithm in which the priorities are calculated during the execution of the system. ...

Further reading



 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.