Three-level scheduling

from Wikipedia, the free encyclopedia

Three-Level-Scheduling (TLS) TLS divides the scheduling process into 3 sub-processes:

  • Admission scheduler
  • Memory scheduler
  • CPU scheduler
Three level scheduling

At the beginning of this scheduling process there is an input queue . This is merely a data structure similar to a list in which the newly arriving "jobs" are temporarily stored.

Now the admission scheduler (hereinafter referred to as AS) comes into play. The AS decides which job goes into the further system (more precisely into the memory). The other jobs remain in the input queue. Basically, an attempt is made to find a good mix of compute-bound jobs (mostly long processing time) and IO- bound jobs (input / output - short processing time) and / or to prefer shorter jobs to longer ones. The admission scheduler can also give priority to jobs that are added later to those in the input queue. The AS can therefore be viewed as a pre-filter.

The jobs are then loaded into the main memory by the admission scheduler . The work of the memory scheduler now begins here . Since each job in the space required and it may happen that several jobs exist in the memory, the memory scheduler which decides job remains in the main memory and which swapped to disk ( swap ). The "Degree of Multiprogramming" is used to decide how many jobs are left in main memory. The "Degree of Multiprogramming" describes the number of processes that a processor can process efficiently, depending on the main memory load and processor speed. If a resource is accessed jointly by several processes, this can influence the "Degree of Multiprogramming". To ensure optimal performance , it must be decided regularly how many jobs are to be stored in memory. An attempt is made to achieve the highest possible CPU utilization, with the rest being transferred to the hard disk. Storage / retrieval is expensive because it uses more system resources and hard disk access is relatively slow. Storage / retrieval criteria:

  • How long has it been since the job was moved to disk?
  • How much CPU time did the job get recently?
  • How big is the job? (smaller jobs are not outsourced at all as outsourcing is expensive)
  • How important is the job?

The CPU scheduler now takes a job from the memory and processes it (or continues to work on it). One of the other scheduling methods (usually Shortest-Job-Next ) is used for this.