SlideShare a Scribd company logo
09/16/10
09/16/10
09/16/10
CPU Scheduling Basic Concept s CPU Scheduler Scheduling Criteria  Scheduling Algorithms Multiple-Processor  Scheduling 09/16/10
Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a  cycle  of CPU execution and I/O wait CPU burst distribution 09/16/10
Alternating Sequence of CPU And I/O Bursts 09/16/10
CPU Scheduler Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them CPU scheduling decisions may take place when a process: 1. Switches from running to waiting state 2. Switches from running to ready state 3. Switches from waiting to ready 4. Terminates Scheduling under 1 and 4 is  non-preemptive All other scheduling is  preemptive 09/16/10
Scheduling Criteria CPU utilization – keep the CPU as busy as possible Throughput – # of processes that complete their execution per time unit Turnaround time – amount of time to execute a particular process Waiting time – amount of time a process has been waiting in the ready queue Response time – amount of time it takes from when a request was submitted until the first response is produced,  not  output  (for time-sharing environment) 09/16/10
Optimization Criteria Max CPU utilization Max throughput Min turnaround time  Min waiting time  Min response time 09/16/10
First-Come, First-Served (FCFS) Scheduling Shortest-Job-First (SJR) Scheduling Example of Non-Preemptive SJF Example of Preemptive SJF Determining Length of Next CPU Burst Examples of Exponential Averaging Priority Scheduling Round Robin (RR) Example of RR with Time Quantum = 20 09/16/10
Multilevel Queue Multilevel Feedback Queue 09/16/10
First-Come, First-Served (FCFS) Scheduling Process Burst Time P 1 24   P 2   3   P 3   3   Suppose that the processes arrive in the order:  P 1  ,  P 2  ,  P 3  The Gantt Chart for the schedule is: Waiting time for  P 1   = 0;  P 2   = 24;  P 3  = 27 Average waiting time:  (0 + 24 + 27)/3 = 17 09/16/10 P 1 P 2 P 3 24 27 30 0
FCFS Scheduling (Cont.) Suppose that the processes arrive in the order   P 2  ,  P 3  ,  P 1   The Gantt chart for the schedule is: Waiting time for  P 1  =  6 ;   P 2  = 0 ;  P 3  =  3 Average waiting time:  (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect  short process behind long process 09/16/10 P 1 P 3 P 2 6 3 30 0
Shortest-Job-First (SJR) Scheduling Associate with each process the length of its next CPU burst.  Use these lengths to schedule the process with the shortest time Two schemes:  Non-preemptive – once CPU given to the process it cannot be preempted until completes its CPU burst preemptive – if a new process arrives with CPU burst length less than remaining time of current executing process, preempt.  This scheme is know as the  Shortest-Remaining-Time-First (SRTF) SJF is optimal – gives minimum average waiting time for a given set of processes 09/16/10
Example of Non-Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7   P 2 2.0 4   P 3 4.0 1   P 4 5.0 4 SJF (non-preemptive) Average waiting time = (0 + 6 + 3 + 7)/4  = 4 09/16/10 P 1 P 3 P 2 7 3 16 0 P 4 8 12
Example of Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7   P 2 2.0 4   P 3 4.0 1   P 4 5.0 4 SJF (preemptive) Average waiting time = (9 + 1 + 0 +2)/4 = 3 09/16/10 P 1 P 3 P 2 4 2 11 0 P 4 5 7 P 2 P 1 16
Determining Length of Next CPU Burst Can only estimate the length Can be done by using the length of previous CPU bursts, using exponential averaging 09/16/10
Prediction of the Length of the Next CPU Burst 09/16/10
Examples of Exponential Averaging    =0  n+1  =   n Recent history does not count    =1  n+1  =     t n Only the actual last CPU burst counts If we expand the formula, we get:  n +1  =    t n +(1  -   )    t n   -1   + … +( 1 -     ) j      t n   - j   + … +( 1 -     ) n  +1   0 Since both    and (1 -   ) are less than or equal to 1, each successive term has less weight than its predecessor 09/16/10
Priority Scheduling A priority number (integer) is associated with each process The CPU is allocated to the process with the highest priority (smallest integer    highest priority) Preemptive Non-preemptive SJF is a priority scheduling where priority is the predicted next CPU burst time Problem    Starvation – low priority processes may never execute Solution    Aging – as time progresses increase the priority of the process 09/16/10
Round Robin (RR) Each process gets a small unit of CPU time ( time quantum ), usually 10-100 milliseconds.  After this time has elapsed, the process is preempted and added to the end of the ready queue. If there are  n  processes in the ready queue and the time quantum is  q , then each process gets 1/ n  of the CPU time in chunks of at most  q  time units at once.  No process waits more than ( n -1) q  time units. Performance q  large    FIFO q  small     q  must be large with respect to context switch, otherwise overhead is too high 09/16/10
Example of RR with Time Quantum = 20 Process Burst Time P 1 53   P 2   17   P 3 68   P 4   24 The Gantt chart is:  Typically, higher average turnaround than SJF, but better  response 09/16/10 P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162
Time Quantum and Context Switch Time 09/16/10
Turnaround Time Varies With The Time Quantum 09/16/10
Multilevel Queue Ready queue is partitioned into separate queues: foreground (interactive) background (batch) Each queue has its own scheduling algorithm foreground – RR background – FCFS Scheduling must be done between the queues Fixed priority scheduling; (i.e., serve all from foreground then from background).  Possibility of starvation. Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes; i.e., 80% to foreground in RR 20% to background in FCFS  09/16/10
Multilevel Queue Scheduling 09/16/10
Multilevel Feedback Queue A process can move between the various queues; aging can be implemented this way Multilevel-feedback-queue scheduler defined by the following parameters: number of queues scheduling algorithms for each queue method used to determine when to upgrade a process method used to determine when to demote a process method used to determine which queue a process will enter when that process needs service 09/16/10
Example of Multilevel Feedback Queue Three queues:  Q 0  – RR with time quantum 8 milliseconds Q 1  – RR time quantum 16 milliseconds Q 2  – FCFS Scheduling A new job enters queue  Q 0   which is served   FCFS. When it gains CPU, job receives 8 milliseconds.  If it does not finish in 8 milliseconds, job is moved to queue  Q 1 . At  Q 1  job is again served FCFS and receives 16 additional milliseconds.  If it still does not complete, it is preempted and moved to queue  Q 2 . 09/16/10
Multilevel Feedback Queues 09/16/10
09/16/10
09/16/10 Approaches to Multiple-Processor Scheduling Processor  Affinity  in Multiprocessors
Multiple-Processor Scheduling So far, we’ve only dealt with a single processor. CPU scheduling  more   complex  when multiple CPUs are available due to  load sharing. No single best solutions – no great surprise. 09/16/10
Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors  within a multiprocessor Load sharing   Asymmetric multiprocessing  – only one processor accesses the system data structures, alleviating the need for data sharing 09/16/10
Approaches to Multiple-Processor Scheduling  Asymmetric   multiprocessing   (master)  Here there is one processor that makes the  decisions  for  Scheduling, I/O processing, system activities Other processor(s) execute only user code. This is a simple approach because only one processor accesses the system data structures, so sharing is not an issue with other processors. Symmetric Multiprocessing (SMP) Here, each processor is  self-scheduling . Share a  common   ready   queue   or  each processor may have its  own private   queue  of ready processes. Whether we have a common ready queue or private ready queues, we have a  scheduler  for  each   processor  that examines the ready queue and dispatches the CPU to a specific process for execution.  . Clearly, there are sharing issues, here, since each processor may update this common data structure or try to access a specific PCB in a queue … Most all modern operating systems support SMP including Windows XP, Solaris, Linux, and Mac OS X. Most of our discussions here on out usually apply to SMPs.  09/16/10
Processor  Affinity  in Multiprocessors Big question:  once a process starts to execute on one processor, does it continue subsequent executions on the  same processor?? If a process starts executing on one processor successive memory accesses are normally cached. This is the norm.  But if a process is now migrated to a  different  processor, this cache must be invalidated and a new cache must/will be established…  High cost;  some loss in efficiency too. So what is ‘ Processor   Affinity ?’ (the tendency to favor one processor over another…) Most SMP systems try to  avoid  this  processor   affinity . If policy is to  try  to keep a process running on the same processor (no guarantee), called  soft   affinity . Some systems (Linux…) provide system calls that support what they call  hard   affinity ,  where a process  may   specify  that it is not to migrate to a different processor. 09/16/10
Summary Basic Concepts Scheduling Criteria Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them CPU utilization – keep the CPU as busy as possible Scheduling Algorithms First-Come, First-Served (FCFS) Scheduling Shortest-Job-First (SJR) Scheduling Example of Non-Preemptive SJF Example of Preemptive SJF Determining Length of Next CPU Burst Prediction of the Length of the Next CPU Burst Examples of Exponential Averaging 09/16/10
Priority Scheduling Multiple-Processor Scheduling Round Robin (RR) Example of RR with Time Quantum = 20 Time Quantum and Context Switch Time Turnaround Time Varies With The Time Quantu multilevel Queue Multilevel Queue Multilevel Queue Scheduling Multilevel Feedback Queue Example of Multilevel Feedback Queue Multiple-Processor Scheduling Approaches to Multiple-Processor Scheduling  Processor  Affinity  in Multiprocessors Summary 09/16/10
09/16/10
09/16/10

More Related Content

PPT
Cp usched 2
PPT
PPT
Processor / CPU Scheduling
PPT
Os module 2 ba
PPT
Cpu Scheduling Galvin
PDF
Comparison Analysis of CPU Scheduling : FCFS, SJF and Round Robin
PPTX
Scheduling algo(by HJ)
Cp usched 2
Processor / CPU Scheduling
Os module 2 ba
Cpu Scheduling Galvin
Comparison Analysis of CPU Scheduling : FCFS, SJF and Round Robin
Scheduling algo(by HJ)

What's hot (20)

PDF
5 Process Scheduling
PPTX
Cpu scheduling
PPT
Sa by shekhar
PPTX
Scheduling algorithms
PPT
Operating System 5
PDF
Scheduling
PPT
Ch6 CPU Scheduling galvin
PDF
Algorithm o.s.
PPTX
Cpu scheduling
PPTX
CPU Sheduling
PPT
Cpu scheduling(suresh)
PPTX
Chapter4
PPTX
CPU scheduling algorithms in OS
PPTX
CPU Scheduling
PPTX
scheduling algorithm
PPTX
Process and CPU scheduler
PDF
Process Scheduling
PDF
cpu scheduling by shivam singh
PPTX
First-Come-First-Serve (FCFS)
PPTX
Scheduling Algorithms-R.D.Sivakumar
5 Process Scheduling
Cpu scheduling
Sa by shekhar
Scheduling algorithms
Operating System 5
Scheduling
Ch6 CPU Scheduling galvin
Algorithm o.s.
Cpu scheduling
CPU Sheduling
Cpu scheduling(suresh)
Chapter4
CPU scheduling algorithms in OS
CPU Scheduling
scheduling algorithm
Process and CPU scheduler
Process Scheduling
cpu scheduling by shivam singh
First-Come-First-Serve (FCFS)
Scheduling Algorithms-R.D.Sivakumar
Ad

Similar to Scheduling algorithm (chammu) (20)

PPT
Process management in os
PPT
cpu sechduling
PPTX
Process and CPU Scheduling.pptx it is about Operating system
PDF
CH06.pdf
PDF
cpu scheduling.pdfoieheoirwuojorkjp;ooooo
PPT
CPU SCHEDULING IN OPERATING SYSTEMS IN DETAILED
PPT
Csc4320 chapter 5 2
PPT
Os..
PPT
Scheduling algorithms
PPTX
3Chapter Three- CPU Scheduling this is the best.pptx
DOC
Operating Systems Third Unit - Fourth Semester - Engineering
PDF
Unit iios process scheduling and synchronization
PPTX
UNIPROCESS SCHEDULING.pptx
PPT
Ch05 cpu-scheduling
PDF
cpu scheduling.pdf
PPTX
Cpu_sheduling.pptx
PPT
Cpu scheduling
PDF
Ch6 cpu scheduling
Process management in os
cpu sechduling
Process and CPU Scheduling.pptx it is about Operating system
CH06.pdf
cpu scheduling.pdfoieheoirwuojorkjp;ooooo
CPU SCHEDULING IN OPERATING SYSTEMS IN DETAILED
Csc4320 chapter 5 2
Os..
Scheduling algorithms
3Chapter Three- CPU Scheduling this is the best.pptx
Operating Systems Third Unit - Fourth Semester - Engineering
Unit iios process scheduling and synchronization
UNIPROCESS SCHEDULING.pptx
Ch05 cpu-scheduling
cpu scheduling.pdf
Cpu_sheduling.pptx
Cpu scheduling
Ch6 cpu scheduling
Ad

More from Nagarajan (17)

PPT
Chapter3
PPT
Chapter2
PPT
Chapter1
PPTX
Minimax
PPT
I/O System
PPT
Real time os(suga)
PPT
Process synchronization(deepa)
PPT
Posix threads(asha)
PPT
Monitor(karthika)
PPT
Backward chaining(bala,karthi,rajesh)
PPTX
Inferno
PPTX
Javascript
PPTX
Introduction Of Artificial neural network
PPT
Perceptron
PPT
Back propagation
PPTX
Ms access
PPT
Adaline madaline
Chapter3
Chapter2
Chapter1
Minimax
I/O System
Real time os(suga)
Process synchronization(deepa)
Posix threads(asha)
Monitor(karthika)
Backward chaining(bala,karthi,rajesh)
Inferno
Javascript
Introduction Of Artificial neural network
Perceptron
Back propagation
Ms access
Adaline madaline

Recently uploaded (20)

PPTX
Institutional Correction lecture only . . .
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
01-Introduction-to-Information-Management.pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
master seminar digital applications in india
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Complications of Minimal Access Surgery at WLH
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
PPH.pptx obstetrics and gynecology in nursing
Institutional Correction lecture only . . .
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Renaissance Architecture: A Journey from Faith to Humanism
human mycosis Human fungal infections are called human mycosis..pptx
01-Introduction-to-Information-Management.pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
102 student loan defaulters named and shamed – Is someone you know on the list?
master seminar digital applications in india
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Complications of Minimal Access Surgery at WLH
Anesthesia in Laparoscopic Surgery in India
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Microbial disease of the cardiovascular and lymphatic systems
PPH.pptx obstetrics and gynecology in nursing

Scheduling algorithm (chammu)

  • 4. CPU Scheduling Basic Concept s CPU Scheduler Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling 09/16/10
  • 5. Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait CPU burst distribution 09/16/10
  • 6. Alternating Sequence of CPU And I/O Bursts 09/16/10
  • 7. CPU Scheduler Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them CPU scheduling decisions may take place when a process: 1. Switches from running to waiting state 2. Switches from running to ready state 3. Switches from waiting to ready 4. Terminates Scheduling under 1 and 4 is non-preemptive All other scheduling is preemptive 09/16/10
  • 8. Scheduling Criteria CPU utilization – keep the CPU as busy as possible Throughput – # of processes that complete their execution per time unit Turnaround time – amount of time to execute a particular process Waiting time – amount of time a process has been waiting in the ready queue Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment) 09/16/10
  • 9. Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time 09/16/10
  • 10. First-Come, First-Served (FCFS) Scheduling Shortest-Job-First (SJR) Scheduling Example of Non-Preemptive SJF Example of Preemptive SJF Determining Length of Next CPU Burst Examples of Exponential Averaging Priority Scheduling Round Robin (RR) Example of RR with Time Quantum = 20 09/16/10
  • 11. Multilevel Queue Multilevel Feedback Queue 09/16/10
  • 12. First-Come, First-Served (FCFS) Scheduling Process Burst Time P 1 24 P 2 3 P 3 3 Suppose that the processes arrive in the order: P 1 , P 2 , P 3 The Gantt Chart for the schedule is: Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 09/16/10 P 1 P 2 P 3 24 27 30 0
  • 13. FCFS Scheduling (Cont.) Suppose that the processes arrive in the order P 2 , P 3 , P 1 The Gantt chart for the schedule is: Waiting time for P 1 = 6 ; P 2 = 0 ; P 3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect short process behind long process 09/16/10 P 1 P 3 P 2 6 3 30 0
  • 14. Shortest-Job-First (SJR) Scheduling Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time Two schemes: Non-preemptive – once CPU given to the process it cannot be preempted until completes its CPU burst preemptive – if a new process arrives with CPU burst length less than remaining time of current executing process, preempt. This scheme is know as the Shortest-Remaining-Time-First (SRTF) SJF is optimal – gives minimum average waiting time for a given set of processes 09/16/10
  • 15. Example of Non-Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) Average waiting time = (0 + 6 + 3 + 7)/4 = 4 09/16/10 P 1 P 3 P 2 7 3 16 0 P 4 8 12
  • 16. Example of Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) Average waiting time = (9 + 1 + 0 +2)/4 = 3 09/16/10 P 1 P 3 P 2 4 2 11 0 P 4 5 7 P 2 P 1 16
  • 17. Determining Length of Next CPU Burst Can only estimate the length Can be done by using the length of previous CPU bursts, using exponential averaging 09/16/10
  • 18. Prediction of the Length of the Next CPU Burst 09/16/10
  • 19. Examples of Exponential Averaging  =0  n+1 =  n Recent history does not count  =1  n+1 =  t n Only the actual last CPU burst counts If we expand the formula, we get:  n +1 =  t n +(1 -  )  t n -1 + … +( 1 -  ) j  t n - j + … +( 1 -  ) n +1  0 Since both  and (1 -  ) are less than or equal to 1, each successive term has less weight than its predecessor 09/16/10
  • 20. Priority Scheduling A priority number (integer) is associated with each process The CPU is allocated to the process with the highest priority (smallest integer  highest priority) Preemptive Non-preemptive SJF is a priority scheduling where priority is the predicted next CPU burst time Problem  Starvation – low priority processes may never execute Solution  Aging – as time progresses increase the priority of the process 09/16/10
  • 21. Round Robin (RR) Each process gets a small unit of CPU time ( time quantum ), usually 10-100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready queue. If there are n processes in the ready queue and the time quantum is q , then each process gets 1/ n of the CPU time in chunks of at most q time units at once. No process waits more than ( n -1) q time units. Performance q large  FIFO q small  q must be large with respect to context switch, otherwise overhead is too high 09/16/10
  • 22. Example of RR with Time Quantum = 20 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 The Gantt chart is: Typically, higher average turnaround than SJF, but better response 09/16/10 P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162
  • 23. Time Quantum and Context Switch Time 09/16/10
  • 24. Turnaround Time Varies With The Time Quantum 09/16/10
  • 25. Multilevel Queue Ready queue is partitioned into separate queues: foreground (interactive) background (batch) Each queue has its own scheduling algorithm foreground – RR background – FCFS Scheduling must be done between the queues Fixed priority scheduling; (i.e., serve all from foreground then from background). Possibility of starvation. Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes; i.e., 80% to foreground in RR 20% to background in FCFS 09/16/10
  • 27. Multilevel Feedback Queue A process can move between the various queues; aging can be implemented this way Multilevel-feedback-queue scheduler defined by the following parameters: number of queues scheduling algorithms for each queue method used to determine when to upgrade a process method used to determine when to demote a process method used to determine which queue a process will enter when that process needs service 09/16/10
  • 28. Example of Multilevel Feedback Queue Three queues: Q 0 – RR with time quantum 8 milliseconds Q 1 – RR time quantum 16 milliseconds Q 2 – FCFS Scheduling A new job enters queue Q 0 which is served FCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to queue Q 1 . At Q 1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q 2 . 09/16/10
  • 31. 09/16/10 Approaches to Multiple-Processor Scheduling Processor Affinity in Multiprocessors
  • 32. Multiple-Processor Scheduling So far, we’ve only dealt with a single processor. CPU scheduling more complex when multiple CPUs are available due to load sharing. No single best solutions – no great surprise. 09/16/10
  • 33. Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Load sharing Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing 09/16/10
  • 34. Approaches to Multiple-Processor Scheduling Asymmetric multiprocessing (master) Here there is one processor that makes the decisions for Scheduling, I/O processing, system activities Other processor(s) execute only user code. This is a simple approach because only one processor accesses the system data structures, so sharing is not an issue with other processors. Symmetric Multiprocessing (SMP) Here, each processor is self-scheduling . Share a common ready queue or each processor may have its own private queue of ready processes. Whether we have a common ready queue or private ready queues, we have a scheduler for each processor that examines the ready queue and dispatches the CPU to a specific process for execution. . Clearly, there are sharing issues, here, since each processor may update this common data structure or try to access a specific PCB in a queue … Most all modern operating systems support SMP including Windows XP, Solaris, Linux, and Mac OS X. Most of our discussions here on out usually apply to SMPs. 09/16/10
  • 35. Processor Affinity in Multiprocessors Big question: once a process starts to execute on one processor, does it continue subsequent executions on the same processor?? If a process starts executing on one processor successive memory accesses are normally cached. This is the norm. But if a process is now migrated to a different processor, this cache must be invalidated and a new cache must/will be established… High cost; some loss in efficiency too. So what is ‘ Processor Affinity ?’ (the tendency to favor one processor over another…) Most SMP systems try to avoid this processor affinity . If policy is to try to keep a process running on the same processor (no guarantee), called soft affinity . Some systems (Linux…) provide system calls that support what they call hard affinity , where a process may specify that it is not to migrate to a different processor. 09/16/10
  • 36. Summary Basic Concepts Scheduling Criteria Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them CPU utilization – keep the CPU as busy as possible Scheduling Algorithms First-Come, First-Served (FCFS) Scheduling Shortest-Job-First (SJR) Scheduling Example of Non-Preemptive SJF Example of Preemptive SJF Determining Length of Next CPU Burst Prediction of the Length of the Next CPU Burst Examples of Exponential Averaging 09/16/10
  • 37. Priority Scheduling Multiple-Processor Scheduling Round Robin (RR) Example of RR with Time Quantum = 20 Time Quantum and Context Switch Time Turnaround Time Varies With The Time Quantu multilevel Queue Multilevel Queue Multilevel Queue Scheduling Multilevel Feedback Queue Example of Multilevel Feedback Queue Multiple-Processor Scheduling Approaches to Multiple-Processor Scheduling Processor Affinity in Multiprocessors Summary 09/16/10