Consider three processes, all arriving at time zero, with total execution time of 10, 20 and 30 units, respectively. Each process spends the first 20% of execution time doing I/O, the next 70% of time doing computation, and the last 10% of time doing I/O again. The operating system uses a shortest remaining compute time first scheduling algorithm and schedules a new process either when the running process gets blocked on I/O or when the running process finishes its compute burst. Assume that all I/O operations can be overlapped as much as possible. For what percentage of time does the CPU remain idle?
Explanation: Let three processes be p0, p1 and p2. Their execution time is 10, 20 and 30 respectively. p0 spends first 2 time units in I/O, 7 units of CPU time and finally 1 unit in I/O. p1 spends first 4 units in I/O, 14 units of CPU time and finally 2 units in I/O. p2 spends first 6 units in I/O, 21 units of CPU time and finally 3 units in I/O.
idle p0 p1 p2 idle 0 2 9 23 44 47
Total time spent = 47
Idle time = 2 + 3 = 5
Percentage of idle time = (5/47)*100 = 10.6 %
Quiz of this Question
- Operating Systems | CPU Scheduling | Question 3
- Operating System | Process Synchronization | Introduction
- Operating Systems | Set 6
- Operating Systems | CPU Scheduling | Question 1
- Operating Systems | Set 12
- Using fork() to produce 1 parent and its 3 child processes
- Get to know Ubuntu 18.04 LTS | Welcome Bionic Beaver!!
- Operating System | Allocation of frames
- Why Is There a system32 Folder in a 64-bit Operating System?
- ISRO | ISRO CS 2017 | Question 65