Fedora 12 Scheduling Criteria & Algorithms

download Fedora 12 Scheduling Criteria & Algorithms

of 48

Transcript of Fedora 12 Scheduling Criteria & Algorithms

  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    1/48

    Click to edit Master subtitle style

    Fedora 12 scheduling criteria& algorithms

  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    2/48

    4/21/12

    Fedora 12 Specifications

    Fedora 12 is a 0s based on theLinux kernel, developed by thecommunity-supported Fedora Projectand sponsored by Red Hat.

    Fedora 12 uses Fedora Core 6development environment

    Fedora core 6 uses the 2.6.18 basedLinux kernel

    http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Fedora_Projecthttp://en.wikipedia.org/wiki/Red_Hathttp://en.wikipedia.org/wiki/Red_Hathttp://en.wikipedia.org/wiki/Fedora_Projecthttp://en.wikipedia.org/wiki/Linux_kernel
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    3/48

    4/21/12

    History of Linux kernel

    The Linux kernel was initiallyconceived and created by] Linus

    Torvalds in 1991

    He was influenced by the operating

    system MINIX written by Andrew S.Tanenbaum

    http://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Linus_Torvalds
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    4/48

    4/21/12

    Linux kernel specification

    Linux is a monolithic kernel

    Preemptive kernel

    Support symmetric multi processing

    Written in C using GCC compiler

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    5/48

    4/21/12

    Linux kernel versions

    The Linux Kernel Archives is the

    official site to

    Download standard Linux kernel.

    3.0.1 is the latest stable kernelrealease

    It was released in 05-08-2011

    But we are taking about 2.6.37.6kernel in Fedora 12

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    6/48

    4/21/12

    We are going to talk moreabout scheduling Selecting processes one by one from

    the ready queue and allocate CPU forthem.

    The decisions may occur on

    Process Switches from running towaiting state

    Switches from running to ready state

    Switches from waiting to ready Terminates

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    7/48

    4/21/12

    Scheduling Policy Process Preemption

    When the dynamic priority of the currently runningprocess is lower than the process waiting in thereadyqueue

    A process may also be preempted when its time quantumexpires

    How Long Must a Time Quantum Last?

    Quantum duration too short - system overhead caused bytask switching becomes excessively high

    Quantum duration too long - processes no longer appearto be executed concurrently, degrades the response timeof interactive applications, and degrades theresponsiveness of the system

    The rule of thumb adopted by Linux is: choose a duration

    as long as possible, while keeping good system responsetime

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    8/48

    4/21/12

    What is Scheduling Criteria CPU utilization keep the CPU as

    busy as possible Throughput Number of processesthat complete their execution per

    time unit Turnaround time amount of timeto execute a particular process

    Waiting time amount of time aprocess has been waiting in the readyqueue

    Response time amount of time it

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    9/48

    4/21/12

    Scheduling Algorithems First Come First Serve Scheduling

    Shortest Job First Scheduling

    Priority Scheduling

    Round-Robin Scheduling Multilevel Queue Scheduling

    Multilevel Feedback-QueueScheduling

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    10/48

    4/21/12

    First Come First ServeScheduling (FCFS)Process Burst time

    P1 24

    P2 3

    P2 3

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    11/48

    4/21/12

    First Come First ServeSchedulingThe average of waiting time in this

    policy is usually quite long

    Waiting time for P1=0; P2=24; P3=27 Average waiting time=(0+24+27)/3=17

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    12/48

    4/21/12

    First Come First ServeScheduling Suppose we change the order of

    arriving job P2, P3, P1

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    13/48

    4/21/12

    First Come First ServeScheduling Consider if we have a CPU-bound process

    and many I/O-bound processes

    There is a convoy effect as all the other

    processes waiting for one of the big processto get off the CPU

    FCFS scheduling algorithm is non-preemptive

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    14/48

    4/21/12

    Short job first scheduling (SJF)This algorithm associates with each

    process the length of the processesnext CPU burst

    If there is a tie, FCFS is used In other words, this algorithm can bealso regard as shortest-next-cpu-burst

    algorithm

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    15/48

    4/21/12

    Short job first scheduling SJF is optimal gives minimum

    average waiting time for a given setof processes

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    16/48

    4/21/12

    ExampleProcesses Burst time

    P1 6

    P2 8

    P3 7

    P4 3

    FCFS average waiting time: (0+6+14+21)/4=10.25

    SJF average waiting time: (3+16+9+0)/4=7

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    17/48

    4/21/12

    Short job first scheduling

    Two schemes:

    Non-preemptive once CPU given to the

    process it cannot be preempted untilcompletes its CPU burst

    Preemptive if a new process arrives with

    CPU burst length less than remaining timeof current executing process, preempt.This scheme is know as the Shortest-Remaining-Time-First (SRTF)

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    18/48

  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    19/48

    4/21/12

    Short job first scheduling-Preemptive

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    20/48

    4/21/12

    Priority Scheduling

    A priority number (integer) is associated witheach process

    The CPU is allocated to the process with the

    highest priority(smallest integer highest priority)

    Preemptive

    Non-preemptive

    SJF is a special priority scheduling where priorityis the predicted next CPU burst time, so that itcan decide the priority

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    21/48

    4/21/12

    Priority SchedulingProcesses Burst time Priority Arrival time

    P1 10 3

    P2 1 1

    P3 2 4

    P4 1 5

    P5 5 2

    The average waitingtime=(6+0+16+18+1)/5=8.2

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    22/48

    4/21/12

    Priority SchedulingProcesses Burst time Priority Arrival time

    P1 10 3 0.0

    P2 1 1 1.0

    P3 2 4 2.0

    P4 1 5 3.0

    P5 5 2 4.0

    Gantt chart for both preemptive and non-preemptive, also waiting time

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    23/48

    4/21/12

    Priority Scheduling

    Problem : Starvation low priority

    processes may never execute

    Solution : Aging as time progressesincrease the priority of the process

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    24/48

    4/21/12

    Round-Robin SchedulingThe Round-Robin is designed

    especially for time sharing systems.

    It is similar FCFS but add preemptionconcept

    A small unit of time, called timequantum, is defined

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    25/48

    4/21/12

    Round-Robin Scheduling Each process gets a small unit of CPU

    time (time quantum), usually 10-100milliseconds. After this time haselapsed, the process is preempted

    and added to the end of the readyqueue.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    26/48

    4/21/12

    Round-Robin Scheduling

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    27/48

    4/21/12

    Round-Robin Scheduling If there are n processes in the ready

    queue and the time quantum is q,then each process gets 1/n of the CPUtime in chunks of at most q time units

    at once. No process waits more than(n-1)q time units.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    28/48

    4/21/12

    Round-Robin Scheduling

    Performance

    q large => FIFO

    q small => q must be large withrespect to context switch, otherwise

    overhead is too high

    Typically, higher average turnaroundthan SJF, but better response

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    29/48

    4/21/12

    Round-Robin Scheduling

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    30/48

    Linux Version Scheduler

    Linux pre 2.5 Multilevel Feedback Queue

    Linux 2.5-2.6.23 O(1) Scheduler

    Linux Post 2.6.23 Completely Fair Scheduler

    Linux SchedulerHistoryLinux schedulers history is short but the popularityand its development achieved makes it impossible tosay that this was introduced in the later part of the19th century.

    Below are some the schedulers' through its briefhistory

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    31/48

    LINUX Schedulers

    Linux operating system is a timesharing system thus the concept ofshort and long term schedulers istaken to higher level,

    introducing an additional intermediary

    level of scheduling or commonlyknown as medium term scheduling.

    Key ideas behind medium term scheduling

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    32/48

    Linux 1.2 Scheduler

    Linux 1.2 scheduler used a circularqueue for runnable task managementthat operated with a round-robinscheduling policy.

    .Features of 1.2 scheduler

    Efficient for adding and removing processes (witha lock to protect the structure ).

    Simple and fast .

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    33/48

    2.2 and 2.4 Schedulers

    Linux 2.2 scheduler

    Linux 2.2 schedulers introduced the idea

    of scheduling classes, permittingscheduling policies for real-time tasks,non-preemptive tasks, and non-real-timetasks.

    Linux 2.4 scheduler

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    34/48

    Linux 2.6 O(1) SchedulerReReducing scheduling algorithm

    complexity to O(1)from O(n).Better support for SMP system.

    Single run queue lock Cache problem

    Preemptive: A higher priority processcan preempt a running process withlower priority.

    P i i d i i i ff

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    35/48

    Priority and interactivity effect ontime slice

    Ni V l t ti i it

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    36/48

    Nice Value vs. static priorityand Quantum

    Static Priority NICE Quantum

    High Priority 100 -20 800 ms

    110 -10 600 ms

    120 0 100 ms

    120 +10 50 ms

    Low Priority 139 +19 5 ms

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    37/48

    4/21/12

    Where Did We Come From?

    Pre 2.6 Schedulers

    Didnt utilize SMP very well

    Single runqueue lock meant idleprocessors awaiting lock release

    Preemption not possible

    Lower priority task can execute whilehigh priority task waits

    O(n) complexity

    Slows down with larger input.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    38/48

    4/21/12

    CFS The Future is Now! Completely Fair Scheduler

    Merged into the 2.6.23 kernel

    Runs task with the gravest need

    Guarantees fairness (CPU usage)

    No runqueues!

    Uses a time-ordered red-black binarytree

    Leftmost node is the next process to run

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    39/48

    4/21/12

    Red/Black Tree Rules

    1

    9

    27

    NL

    NL

    NL

    NL

    NL

    NL

    NL

    NL

    NL

    98

    49

    2

    3

    4

    65

    31

    25

    7

    NL

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    40/48

    4/21/12

    Red/Black Continues.

    1. Every node has two children, each

    colored either red or black.2. Every tree leaf node is colored

    black.

    3. Every red node has both of itschildren colored black.

    4. Every path from root to a tree leaf

    contains same number of blacknodes

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    41/48

    4/21/12

    CFS Features (cont) No timeslices!... sort of

    Uses wait_runtime (individual) andfair_clock (queue-wide)

    Processes build up CPU debt

    Different priorities spend timedifferently

    Half priority task sees time pass twice as

    fast

    O(log n) complexity

    Only marginally slower than O(1) at very

    large numbers of inputs

    Digging in CFS Data

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    42/48

    4/21/12

    Digging in CFS DataStructures

    CFS has three primary structures

    task_struct, sched_entity, and cfs_rq. task_struct is the top-level entity,

    containing things such as task

    priorities, scheduling class, and thesched_entity struct. (sched.h, L1117)

    sched_entity includes a node for the

    RB tree and the vruntime statistic,among others. (sched.h, L1041)

    cfs_rq contains the root node, task

    group (more on this later), etc.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    43/48

    4/21/12

    Priorities and more While CFS does not directly use

    priorities or priority queues, it doesuse them to modulate vruntimebuildup.

    In this version, priority is inverse toits effect a higher priority task willaccumulate vruntime more slowly,

    since it needs more CPU time. Likewise, a low-priority task will have

    its vruntime increase more quickly,

    causing it to be preempted earlier.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    44/48

    4/21/12

    ...that's it?The CFS algorithm is, as stated, a lot

    simpler than the previous one, anddoes not require many of the oldvariables.

    Preemption time is variable,depending on priorities and actualrunning time. So we don't need

    assign tasks a given timeslice.

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    45/48

    4/21/12

    Other additions CFS introduced group scheduling in

    release 2.6.24, adding another levelof fairness.

    Tasks can be grouped together, such

    as by the user which owns them.CFS can then be applied to the grouplevel as well as the individual task

    level. So, for three groups, it would give

    each about a third of the CPU time,

    and then divide that time up among

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    46/48

    4/21/12

    Modular scheduling Alongside the initial CFS release

    came the notion of modularscheduling, and scheduling classes.

    This allows various scheduling

    policies to be implemented,independent of the genericscheduler.

    sched.c, which we have seen,contains that generic code. Whenschedule() is called, it will callpick_next_task(), which will look atthe task's class and call the class-

    http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    47/48

  • 8/4/2019 Fedora 12 Scheduling Criteria & Algorithms

    48/48