Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 8: CPU Scheduling

Similar presentations


Presentation on theme: "Lecture 8: CPU Scheduling"— Presentation transcript:

1 Lecture 8: CPU Scheduling
Joe McCarthy CSS 430: Operating Systems - CPU Scheduling

2 Chapter 5: CPU Scheduling
Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating Systems Examples Algorithm Evaluation Material derived, in part, from Operating Systems Concepts with Java, 8th Ed. © 2009 Silberschatz, Galvin & Gagne CSS 430: Operating Systems - CPU Scheduling

3 [from Chapter 1: Introduction]
CPU [from Chapter 1: Introduction] CSS 430: Operating Systems - CPU Scheduling

4 [from Chapter 1: Introduction]
CPU Scheduling [from Chapter 1: Introduction] CSS 430: Operating Systems - CPU Scheduling

5 [from Chapter 1: Introduction]
CPU Scheduling [from Chapter 1: Introduction] CSS 430: Operating Systems - CPU Scheduling

6 [from Chapter 1: Introduction]
CPU Scheduling Multiprogramming [from Chapter 1: Introduction] CSS 430: Operating Systems - CPU Scheduling

7 [from Chapter 3: Processes]
CPU Scheduling [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

8 [from Chapter 3: Processes]
CPU Scheduling Process Control Blocks [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

9 [from Chapter 3: Processes]
CPU Scheduling Can all PCBs have access to CPU simultaneously? [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

10 [from Chapter 3: Processes]
CPU Scheduling [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

11 [from Chapter 3: Processes]
CPU Queues [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

12 [from Chapter 3: Processes]
Process States [from Chapter 3: Processes] CSS 430: Operating Systems - CPU Scheduling

13 CSS 430: Operating Systems - CPU Scheduling
Basic Concepts Goal: Maximize CPU utilization via optimized multiprogramming CPU–I/O Burst Cycle: Process execution consists of a cycle of CPU execution I/O wait CPU burst durations vary Within a process, across different processes CSS 430: Operating Systems - CPU Scheduling

14 Histogram of CPU-burst Durations
CSS 430: Operating Systems - CPU Scheduling

15 Alternating Sequence of CPU & I/O Bursts
CSS 430: Operating Systems - CPU Scheduling

16 CSS 430: Operating Systems - CPU Scheduling
CPU Scheduler Selects next process to run (i.e., to get CPU time) Dispatches that process (allocates the CPU to it) CPU scheduler called when a process … CSS 430: Operating Systems - CPU Scheduling

17 CSS 430: Operating Systems - CPU Scheduling
CPU Scheduler Selects next process to run (i.e., to get CPU time) Dispatches that process (allocates the CPU to it) CPU scheduler called when a process: Running  terminated Running  waiting Running  ready Waiting  ready Preemptive vs. non-preemptive CSS 430: Operating Systems - CPU Scheduling

18 CSS 430: Operating Systems - CPU Scheduling
Dispatcher Activates a process (gives control of the CPU to the process) selected by the short-term scheduler Three steps: CSS 430: Operating Systems - CPU Scheduling

19 CSS 430: Operating Systems - CPU Scheduling
Dispatcher Activates a process (gives control of the CPU to the process) selected by the short-term scheduler Three steps: CSS 430: Operating Systems - CPU Scheduling

20 CSS 430: Operating Systems - CPU Scheduling
Dispatcher Activates a process (gives control of the CPU to the process) selected by the short-term scheduler Three steps: Switch context Switch to user mode Jump to the proper location in user program to start/resume CSS 430: Operating Systems - CPU Scheduling

21 CSS 430: Operating Systems - CPU Scheduling
Dispatcher Activates a process (gives control of the CPU to the process) selected by the short-term scheduler Three steps: Switch context Switch to user mode Jump to the proper location in user program to start/resume Dispatch latency? CSS 430: Operating Systems - CPU Scheduling

22 CSS 430: Operating Systems - CPU Scheduling
Dispatcher Activates a process (gives control of the CPU to the process) selected by the short-term scheduler Three steps: Switch context Switch to user mode Jump to the proper location in user program to start/resume Dispatch latency: time it takes for the dispatcher to stop one user process and start another one CSS 430: Operating Systems - CPU Scheduling

23 Scheduling Milestones
Submission Time Time when job is submitted E.g., when command is entered in shell Admission Time Time when job is admitted to Ready queue PCB creation & other housekeeping has to take place Activation Time Time when job is first activated (Ready  Running) E.g., when first output starts appearing on console NB: may have several CPU-I/O burst cycles Completion Time Time when job finishes executing CSS 430: Operating Systems - CPU Scheduling

24 Job (Process/Thread) Times
Response Time Time before job is first activated Activation Time – Submission Time E.g., time between entering command & first response Wait Time Total amount of time job spends in Ready queue Execution Time Total amount of time job spends Running NB: may have several CPU-I/O burst cycles Turnaround Time Time a job takes to complete after it is submitted Completion Time – Submission Time CSS 430: Operating Systems - CPU Scheduling

25 CSS 430: Operating Systems - CPU Scheduling
Scheduling Criteria CPU utilization % of time CPU is executing user processes Throughput # of processes that complete their execution per time unit Average response time average amount of between when a process is submitted & first response (for time-sharing environment) Average waiting time average amount of time a process waits in Ready queue Average turnaround time average amount of time to execute a process CSS 430: Operating Systems - CPU Scheduling

26 Scheduling Optimization Criteria
CPU utilization: maximize % of time CPU is executing user processes Throughput: maximize # of processes that complete their execution per time unit Average response time: minimize average amount of between when a process is submitted & first response (for time-sharing environment) Average waiting time: minimize average amount of time a process waits in Ready queue Average turnaround time: minimize average amount of time to execute a process CSS 430: Operating Systems - CPU Scheduling

27 First-Come, First-Served (FCFS)
FCFS policy often implemented with FIFO queue Example: 3 processes with the following burst times: P1 = 24; P2 = 3; P3 = 3 Suppose that the processes arrive at t0 in the order: P1, P2, P3 The Gantt Chart for the schedule is: Waiting times Average waiting time: P1 P2 P3 24 27 30 CSS 430: Operating Systems - CPU Scheduling

28 First-Come, First-Served (FCFS)
FCFS policy often implemented with FIFO queue Example: 3 processes with the following burst times: P1 = 24; P2 = 3; P3 = 3 Suppose that the processes arrive at t0 in the order: P1, P2, P3 The Gantt Chart for the schedule is: Waiting times: P1 = 0; P2 = 24; P3 = 27 Average waiting time: ( ) / 3 = 17.0 P1 P2 P3 24 27 30 CSS 430: Operating Systems - CPU Scheduling

29 CSS 430: Operating Systems - CPU Scheduling
FCFS Scheduling Suppose that the processes arrive in the order: P2 , P3 , P1 The Gantt chart for the schedule is: Waiting times: Average waiting time: P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

30 CSS 430: Operating Systems - CPU Scheduling
FCFS Scheduling Suppose that the processes arrive in the order: P2 , P3 , P1 The Gantt chart for the schedule is: Waiting times: P1 = 6; P2 = 0;; P3 = 3 Average waiting time: ( ) / 3 = 3.0 P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

31 CSS 430: Operating Systems - CPU Scheduling
FCFS Scheduling P1 P2 P3 24 27 30 P1 P3 P2 6 3 30 Order: P1, P2, P3 Average wait: 17.0 Order: P2, P3, P1 Average wait: 3.0 Convoy effect: short process[es] stuck behind long process How could we achieve minimal average waiting time? CSS 430: Operating Systems - CPU Scheduling

32 Shortest-Job-First (SJF) Scheduling
Always schedule the shortest job first Select process with shortest next CPU burst. Optimal average waiting time For any set of processes P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

33 CSS 430: Operating Systems - CPU Scheduling
Example of SJF Process Arrival Time Burst Time P P P P SJF scheduling chart CSS 430: Operating Systems - CPU Scheduling

34 CSS 430: Operating Systems - CPU Scheduling
Example of SJF Process Arrival Time Burst Time P P P P SJF scheduling chart Average waiting time: P4 P3 P1 3 16 9 P2 24 CSS 430: Operating Systems - CPU Scheduling

35 CSS 430: Operating Systems - CPU Scheduling
Example of SJF Process Arrival Time Burst Time P P P P SJF scheduling chart Average waiting time: ( ) / 4 = 7.0 P4 P3 P1 3 16 9 P2 24 CSS 430: Operating Systems - CPU Scheduling

36 Shortest-Job-First (SJF) Scheduling
Always schedule the shortest job first Select process with shortest next CPU burst. Optimal average waiting time For any set of processes Only one problem P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

37 Shortest-Job-First (SJF) Scheduling
Always schedule the shortest job first Select process with shortest next CPU burst. Optimal average waiting time For any set of processes Only one problem P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

38 Shortest-Job-First (SJF) Scheduling
Always schedule the shortest job first Select process with shortest next CPU burst. Optimal average waiting time For any set of processes Only one problem How to know the length of the next CPU burst? P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

39 Determining Length of Next CPU Burst
Can only estimate length of future bursts Use exponential averaging of previous bursts CSS 430: Operating Systems - CPU Scheduling

40 Predicting Length of Next CPU Burst
CSS 430: Operating Systems - CPU Scheduling

41 Examples of Exponential Averaging
 = 0 n+1 = n Recent history does not count  = 1 n+1 = tn Only the most recent CPU burst counts  = 0.5 (typically) If we expand the formula, we get: n+1 =  tn+(1 - ) tn -1 + … +(1 -  )j  tn -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 CSS 430: Operating Systems - CPU Scheduling

42 Shortest Remaining Time First
Pre-emptive version of SJF CSS 430: Operating Systems - CPU Scheduling

43 Shortest Remaining Time First
Pre-emptive version of SJF Average wait time? CSS 430: Operating Systems - CPU Scheduling

44 Shortest Remaining Time First
Pre-emptive version of SJF Average wait time: [(10 – 1) + (1 – 1) + (17 – 2) + (5 – 3)] / 4 = 6.5 CSS 430: Operating Systems - CPU Scheduling

45 Shortest Remaining Time First
Pre-emptive version of SJF Average wait time: [(10 – 1) + (1 – 1) + (17 – 2) + (5 – 3)] / 4 = 6.5 Non pre-emptive SJF? CSS 430: Operating Systems - CPU Scheduling

46 Shortest Remaining Time First
Pre-emptive version of SJF Average wait time: [(10 – 1) + (1 – 1) + (17 – 2) + (5 – 3)] / 4 = 6.5 Non pre-emptive SJF: [0 + (8 – 1) + (17 – 2) + (12 – 3)] / 4 = 7.75 CSS 430: Operating Systems - CPU Scheduling

47 CSS 430: Operating Systems - CPU Scheduling
Priority Scheduling A priority number (integer) is associated with each process Based on internal and/or external factors The CPU is allocated to the process with the highest priority Preemptive: new, higher priority processes take precedence Nonpreemptive: new processes wait for current process Textbook: low #  high priority [opposite of ThreadOS] SJF priority: FCFS priority: CSS 430: Operating Systems - CPU Scheduling

48 CSS 430: Operating Systems - CPU Scheduling
Priority Scheduling A priority number (integer) is associated with each process Based on internal and/or external factors The CPU is allocated to the process with the highest priority Preemptive: new, higher priority processes take precedence Nonpreemptive: new processes wait for current process Textbook: low #  high priority (opposite of ThreadOS) SJF priority: predicted next CPU burst time FCFS priority: arrival time CSS 430: Operating Systems - CPU Scheduling

49 CSS 430: Operating Systems - CPU Scheduling
Priority Scheduling A priority number (integer) is associated with each process Based on internal and/or external factors The CPU is allocated to the process with the highest priority Preemptive: new, higher priority processes take precedence Nonpreemptive: new processes wait for current process Textbook: low #  high priority (opposite of ThreadOS) SJF priority: predicted next CPU burst time FCFS priority: arrival time Problem? CSS 430: Operating Systems - CPU Scheduling

50 CSS 430: Operating Systems - CPU Scheduling
Priority Scheduling A priority number (integer) is associated with each process Based on internal and/or external factors The CPU is allocated to the process with the highest priority Preemptive: new, higher priority processes take precedence Nonpreemptive: new processes wait for current process Textbook: low #  high priority (opposite of ThreadOS) SJF priority: predicted next CPU burst time FCFS priority: arrival time Problem  Starvation – low priority processes may never execute CSS 430: Operating Systems - CPU Scheduling

51 CSS 430: Operating Systems - CPU Scheduling
Priority Scheduling A priority number (integer) is associated with each process Based on internal and/or external factors The CPU is allocated to the process with the highest priority Preemptive: new, higher priority processes take precedence Nonpreemptive: new processes wait for current process Textbook: low #  high priority (opposite of ThreadOS) SJF priority: predicted next CPU burst time FCFS priority: arrival time Problem  Starvation – low priority processes may never execute Solution  Aging – as time progresses increase the priority of the process CSS 430: Operating Systems - CPU Scheduling

52 Priority Scheduling Example
Average wait time: ( ) / 5 = 8.2 CSS 430: Operating Systems - CPU Scheduling

53 Priority Scheduling Example
Average wait time: ( ) / 5 = 8.2 If pre-emptive & process arrival times are 0, 1, 2, 3, 4? Average wait time: CSS 430: Operating Systems - CPU Scheduling

54 Priority Scheduling Example
Average wait time: ( ) / 5 = 8.2 If pre-emptive & process arrival times are 0, 1, 2, 3, 4? Average wait time: [((2 – 1) + (9 – 4)) (16 – 2) + (18 – 3) + 0] / 5 = 7.0 CSS 430: Operating Systems - CPU Scheduling

55 CSS 430: Operating Systems - CPU Scheduling
Round Robin (RR) Each process gets time quantum (q) of CPU time (typically ms) Selected from head of Ready queue If process does not block (I/O) within q ms: preempted Added to the tail of the Ready queue (as are new processes) General observations: n processes in the Ready queue each process gets 1/n of the CPU time (in slices of size q) maximum waiting time: (n-1)q time units CSS 430: Operating Systems - CPU Scheduling

56 Example of RR with Time Quantum = 4
Process Burst Time P1 24 P2 3 P3 3 The Gantt chart is: Compare to SJF: P1 P2 P3 4 7 10 14 18 22 26 30 P1 P3 P2 6 3 30 CSS 430: Operating Systems - CPU Scheduling

57 Time Quantum & Context Switch Time
Performance issues: q large  q small  CSS 430: Operating Systems - CPU Scheduling

58 Time Quantum & Context Switch Time
Performance issues: q large  FCFS q small  context switch overhead too high CSS 430: Operating Systems - CPU Scheduling

59 Time Quantum  Turnaround Time
CSS 430: Operating Systems - CPU Scheduling

60 CSS 430: Operating Systems - CPU Scheduling
Multilevel Queue Ready queue can be partitioned into separate queues E.g., foreground (interactive) & background (batch) Each queue can have its own scheduling algorithm Scheduling must be done between the queues Simplest: Fixed priority scheduling One possibility: 100% priority to foreground Serve foreground if any; serve background only if no foreground Problem? CSS 430: Operating Systems - CPU Scheduling

61 CSS 430: Operating Systems - CPU Scheduling
Multilevel Queue Ready queue can be partitioned into separate queues E.g., foreground (interactive) & background (batch) Each queue can have its own scheduling algorithm Scheduling must be done between the queues Simplest: Fixed priority scheduling One possibility: 100% priority to foreground Serve foreground if any; serve background only if no foreground Problem: possibility of starvation Another possibility? CSS 430: Operating Systems - CPU Scheduling

62 CSS 430: Operating Systems - CPU Scheduling
Multilevel Queue Ready queue can be partitioned into separate queues E.g., foreground (interactive) & background (batch) Each queue can have its own scheduling algorithm Scheduling must be done between the queues Simplest: Fixed priority scheduling One possibility: 100% priority to foreground Serve foreground if any; serve background only if no foreground Problem: possibility of starvation. Another possibility: 80/20 priority using time slices 80% to foreground using RR 20% to background using FCFS CSS 430: Operating Systems - CPU Scheduling

63 Multilevel Queue Scheduling
CSS 430: Operating Systems - CPU Scheduling

64 Multilevel Feedback Queue
Process can migrate among queues Queue placement based on past behavior (feedback) Parameters: number of queues scheduling algorithms for each queue when to upgrade a process when to demote a process when to select a queue for service CSS 430: Operating Systems - CPU Scheduling

65 Multilevel Feedback Queue
CSS 430: Operating Systems - CPU Scheduling

66 Example of Multilevel Feedback Queue
Three queues: Q0, Q1, Q2; all use FCFS If blocked for I/O, job returned to Q0 when I/O done New jobs enter queue Q0 When activated (given CPU), job receives 8 milliseconds If not done, job is preempted, demoted to queue Q1 Jobs in Q1 When activated, job receives 16 additional milliseconds If not done, job is preempted, demoted to Q2 Jobs in Q2 When activated, job runs until terminated or interrupted If not done, job is preempted, returned to Q2 CSS 430: Operating Systems - CPU Scheduling

67 Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing: only one processor accesses the system data structures, alleviating the need for data sharing (master & slave processors) Symmetric multiprocessing (SMP): each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes CSS 430: Operating Systems - CPU Scheduling

68 Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing: only one processor accesses the system data structures, alleviating the need for data sharing (master & slave processors) Symmetric multiprocessing (SMP): each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes Processor affinity? CSS 430: Operating Systems - CPU Scheduling

69 Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing: only one processor accesses the system data structures, alleviating the need for data sharing (master & slave processors) Symmetric multiprocessing (SMP): each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes Processor affinity? CSS 430: Operating Systems - CPU Scheduling

70 Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing: only one processor accesses the system data structures, alleviating the need for data sharing (master & slave processors) Symmetric multiprocessing (SMP): each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes Processor affinity: process has affinity for processor on which it is currently running soft affinity: policy hard affinity: mechanism CSS 430: Operating Systems - CPU Scheduling

71 CSS 430: Operating Systems - CPU Scheduling
CSS 430: Operating Systems - CPU Scheduling

72 NUMA and CPU Scheduling
NUMA = non-uniform memory access CSS 430: Operating Systems - CPU Scheduling

73 CSS 430: Operating Systems - CPU Scheduling
Multicore Processors Multiple threads per core Memory stall: CPU awaits instruction/data fetch Multiple hardware threads: logical processors Each logical processor can run a software thread Enables progress to made on one thread while memory is updated Two approaches Coarse-grained multithreading (latency event) Fine-grained multithreading (per instruction) CSS 430: Operating Systems - CPU Scheduling

74 Multithreaded Multicore System
CSS 430: Operating Systems - CPU Scheduling

75 Operating System Examples
Solaris scheduling Windows XP scheduling Linux scheduling CSS 430: Operating Systems - CPU Scheduling

76 CSS 430: Operating Systems - CPU Scheduling
Solaris Scheduling Dispatch Table (for TS, IA) CSS 430: Operating Systems - CPU Scheduling

77 CSS 430: Operating Systems - CPU Scheduling
Windows XP Scheduling Priority classes Relative priorities Processes within a variable class (not real-time): Expired time quantum  reduce priority Released from wait  increase priority Foreground process gets extra boost CSS 430: Operating Systems - CPU Scheduling

78 Linux priorities & time quanta
CSS 430: Operating Systems - CPU Scheduling

79 runqueue: active & expired
When all task lists in active array are empty, exchange active array & expired array CSS 430: Operating Systems - CPU Scheduling

80 Java Thread Scheduling
Priority-based FCFS within same priority level May be preemptive or non-preemptive A runnable thread executes until: Time quantum expires Blocks for I/O Exits its run() method Yields to another thread via yield() “cooperative multitasking” CSS 430: Operating Systems - CPU Scheduling

81 Java Thread Priorities
Values: Thread.MAX_PRIORITY = 10 Thread.NORM_PRIORITY = 5 Thread.MIN_PRIORITY = 1 Methods: int Thread.getPriority() Thread.setPriority( int newPriority ) CSS 430: Operating Systems - CPU Scheduling

82 Mapping Java Thread Priorities
JVM runs on host Java Thread priorities (user)  host kernel priorities Example: Win32 CSS 430: Operating Systems - CPU Scheduling

83 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? CSS 430: Operating Systems - CPU Scheduling

84 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? FCFS, SJF & RR average wait times? CSS 430: Operating Systems - CPU Scheduling

85 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? CSS 430: Operating Systems - CPU Scheduling

86 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? CSS 430: Operating Systems - CPU Scheduling

87 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? FCFS: ( ) / 5 = 28 CSS 430: Operating Systems - CPU Scheduling

88 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? FCFS: ( ) / 5 = 28 CSS 430: Operating Systems - CPU Scheduling

89 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? FCFS: ( ) / 5 = 28 SJF: ( ) / 5 = 13 CSS 430: Operating Systems - CPU Scheduling

90 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? FCFS: ( ) / 5 = 28 SJF: ( ) / 5 = 13 CSS 430: Operating Systems - CPU Scheduling

91 CSS 430: Operating Systems - CPU Scheduling
FCFS, SJF & RR: average wait times? FCFS: ( ) / 5 = 28 SJF: ( ) / 5 = 13 RR: ( ) / 5 = 23 CSS 430: Operating Systems - CPU Scheduling

92 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? Analysis Deterministic models: predetermined workload CSS 430: Operating Systems - CPU Scheduling

93 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? Analysis Deterministic models: predetermined workload Queueing models: use probability distribution Arrival rate Service rate CSS 430: Operating Systems - CPU Scheduling

94 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? Analysis Deterministic models: predetermined workload Queueing models: use probability distribution Arrival rate Service rate Simulation ThreadOS CSS 430: Operating Systems - CPU Scheduling

95 CSS 430: Operating Systems - CPU Scheduling
Algorithm Evaluation How can we compare scheduling algorithms? Analysis Deterministic models: predetermined workload Queueing models: use probability distribution Arrival rate Service rate Simulation ThreadOS Implementation CSS 430: Operating Systems - CPU Scheduling

96 CSS 430: Operating Systems - CPU Scheduling
For next time Readings Chapter 4: Threads Chapter 6: Process Synchronization CSS 430: Operating Systems - CPU Scheduling


Download ppt "Lecture 8: CPU Scheduling"

Similar presentations


Ads by Google