CPU Scheduling Algorithms
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

CPU Scheduling Algorithms

on

  • 11,384 views

A presentation on implementing CPU Scheduling Algorithms in C++

A presentation on implementing CPU Scheduling Algorithms in C++

Statistics

Views

Total Views
11,384
Views on SlideShare
11,384
Embed Views
0

Actions

Likes
2
Downloads
245
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Sonali C. UDIT CPU Scheduling Aging - Gradually increasing the priority of process that waits in the system for long time.

CPU Scheduling Algorithms Presentation Transcript

  • 1. CPUSchedulingAlgorithms Group No. 2 1
  • 2. Overview Basic Concepts Scheduling Criteria Scheduling Algorithms Implementation in C++ Demonstration Involvement of Operating System CPU Scheduling Algorithms 2
  • 3. Basic Concepts Main objective of multiprogramming is to keep on running processes all the time for maximum CPU utilization. Scheduling is fundamental function of OS. The task of selecting the processes in memory that are ready to execute, and allocating them to the CPU is performed by the CPU Scheduler. CPU Scheduling Algorithms 3
  • 4. CPU Scheduler CPU scheduling decisions may take place when a process: o 1. Switches from running to waiting state o 2. Switches from running to ready state o 3. Switches from waiting to ready o 4. Terminates Scheduling under 1 and 4 is non preemptive. All other scheduling is preemptive. CPU Scheduling Algorithms 4
  • 5. CONT…CPU Scheduler Nonpreemptive Once a process is allocated the CPU, it does not leave unless: o it has to wait, e.g., for I/O request  o it terminates   Preemptive o OS can force (preempt) a process from CPU at anytime o E.g., to allocate CPU to another higher-priority process  CPU Scheduling Algorithms 5
  • 6. Scheduling Criteria CPU utilization: keep the CPU as busy as possible ◦ Maximize Throughput: No of processes that complete their execution per time unit ◦ Maximize Turnaround time: amount of time to execute a particular process (time from submission to termination) ◦ Minimize CPU Scheduling Algorithms 6
  • 7. CONT…Scheduling Criteria Waiting time: amount of time a process has been waiting in the ready queue (sum of time waiting in ready queue) o Minimize 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) o Minimize CPU Scheduling Algorithms 7
  • 8. Scheduling Algorithms First Come, First Served Shortest Job First Priority Round Robin CPU Scheduling Algorithms 8
  • 9. Implementation in C++ Class: cpuschedule Attributes: o n – number of processes o Bu[ ] – Array to store Burst Time o A[ ] – Array to store Arrival Time o Wt[ ] – Array to store Waiting Time o Twt – Total Waiting Time o Awt – Average Waiting Time CPU Scheduling Algorithms 9
  • 10. CONT…Implementation in C++ Operations: o Getdata() – To get number of processes and Burst Times from the user o Fcfs() – First Come, First Served Algorithm o Sjf() – Shortest Job First (normal) Algorithm o SjfP() – Shortest Job First (Preemption) Algorithm o SjfNp() – Shortest Job First (non preemption) Algorithm o Priority() – Priority Algorithm o RoundRobin() – Round Robin Algorithm CPU Scheduling Algorithms 10
  • 11. First Come, First Served Process Burst Time P1 24 P2 3 P3 3 Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is: P1 P2 P3 0 24 27 30 Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 CPU Scheduling Algorithms 11
  • 12. First Come First CONT…Served Suppose that the processes arrive in the order : P2 , P3 , P1 (P1:24,P2:3,P3:3) The Gantt chart for the schedule is: P2 P3 P1 0 3 6 30 Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect - short process behind long process CPU Scheduling Algorithms 12
  • 13. Shortest Job First Normal SJF Process Burst Time P1 7 P2 3 P3 4 The Gantt Chart for SJF (Normal) is: P2 P3 P1 0 3 7 14 Average waiting time = (0 + 3 + 7)/3 = 3.33 CPU Scheduling Algorithms 13
  • 14. Shortest Job First CONT… Non-Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 The Gantt Chart for SJF (non-preemptive) is: P1 P3 P2 P4 0 2 4 5 7 8 12 16 Average waiting time = (0 + 6 + 3 + 7)/4 = 4 CPU Scheduling Algorithms 14
  • 15. Shortest Job First CONT… Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 The Gantt Chart for SJF (preemptive) is: P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16 Average waiting time = (9 + 1 + 0 +2)/4 = 3 CPU Scheduling Algorithms 15
  • 16. Shortest Job First CONT… Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time. Two schemes: o Non-Preemptive: once CPU given to the process it cannot be preempted until completes its CPU burst. o 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. CPU Scheduling Algorithms 16
  • 17. Priority Process Burst Time Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Gantt Chart P2 P5 P1 P3 P4 0 1 6 16 18 19 Average waiting time = (6 + 0 + 16 + 18 + 1)/5 = 8.2 CPU Scheduling Algorithms 17
  • 18. Priority CONT…A priority number (integer) is associated with each process. Lager the CPU burst lower the priority. The CPU is allocated to the process with the highest priority (smallest integer ≡ highest priority) Starvation (Infinity blocking): low priority processes may never execute. Aging: as time progresses increase the priority of the process. CPU Scheduling Algorithms 18
  • 19. Round Robin Process Burst Time P1 24 P2 3 P3 3 Quantum time = 4 milliseconds The Gantt chart is: P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30 Average waiting time = {[0+(10-4)]+4+7}/3 = 5.6 CPU Scheduling Algorithms 19
  • 20. Round Robin CONT… Typically, higher average turnaround than SJF, but better response 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. Performance o q large ⇒ FCFS o q small ⇒ q must be large with respect to context switch, otherwise overhead is too high CPU Scheduling Algorithms 20
  • 21. Involvement of OS Source Code (.c) Compiler Conversion (.i , .o) Executable (.exe) Microsoft (load executable Micro-kernel Windows directly to memory) Memory CPU Scheduling Algorithms Execut e CPU Scheduling Algorithms 21
  • 22. CPUSchedulingAlgorithms Group No. 2 Group No. 2 22