Professional Documents
Culture Documents
2 : Process Scheduling
Process concept Process scheduling Interprocess communication Deadlocks Threads
2.2-1
Scheduling
Select process(es) to run on processor(s) Process state is changed from ready to running The component of the OS which does the scheduling is called the scheduler
2.2-2
Types of Scheduling
Scheduling is divided into various levels. These levels are defined by the location of the processes A process can be
available to be executed by the processor partially or fully in main memory in secondary memory is not started yet
2.2-3
Types of Scheduling
Long Term Scheduling.
The decision to add to the pool of processes to be executed.
I/O Scheduling.
The decision as to which process's I/O request shall be handled by a device.
Ceng 334 - Operating Systems
2.2-4
Scheduling Criteria
Fairness : each process should get a fair share of the CPU Efficiency: keep CPU 100% utilized Response time : should be minimized for interactive users Turnaround : minimize batch turnaround times Throughput : maximize number of jobs processed per hour
Ceng 334 - Operating Systems
2.2-5
Turnaround Time
Deadlines
2.2-6
Aim
allow maximum number of jobs to complete maximise percentage of time processor is busy
2.2-7
Criteria
Fairness
Aim
treat processes the same avoid starvation
Enforcing Priorities
Balancing Resources
2.2-8
Important Factors
I/O boundedness of a process CPU boundedness of a process Is the process interactive or batch? Process priority Page fault frequency Preemption frequency Execution time received Execution time required to complete
2.2-9
Types of Scheduling
A scheduling algorithm is non-premptive (run to completion) if the CPU cannot be taken away by the OS.
A scheduling algorithm is preemptive if the CPU can be taken away by the OS.
2.2-10
2.2-11
Scheduling Algorithms
FCFS Round Robin Virtual Round Robin Priority Priority Classes Shortest Job First Shortest Remaining Time Highest Response Ratio Next Feedback Queues
2.2-12
Characteristics:
Simple to implement Nonpremptive Penalises short and I/O-bound processes
Ceng 334 - Operating Systems
2.2-13
Characteristics:
Preemptive Effective in time sharing environments Penalises I/O bound processes
2.2-14
Quantum Size
Some Options:
Large or small quantum Fixed or variable quantum Same for everyone or different If quantum is to large RR degenerates into FCFS If quantum is to small context switching becomes the primary job being executed A good guide is quantum should be slightly larger than the time required for a typical interaction
Ceng 334 - Operating Systems
2.2-15
Implementation:
Two ready queues, one called an AUX queue for storing completed IO processes AUX queue has priority over READY queue IO processes only runs for remaining time
Characteristics:
Performance studies indicate fairer than RR
Ceng 334 - Operating Systems
2.2-16
Priority
Implementation:
Each process is assigned a priority and the scheduler always selects the highest priority process first
Characteristics:
High priority processes may run indefinitely, so decrease the priority of these processes at regular intervals Assign high priority to system processes with known characteristics such as being I/O bound
Ceng 334 - Operating Systems
2.2-17
Priority Classes
Priority Class 4 Priority Class 3
Highest
Priority Class 2
Priority Class 1
Lowest
2.2-18
Implementation:
Processes are grouped into priority classes Round Robin is used within a class When selecting process start with the highest class. If the class is empty, use a lower class
Characteristics:
If priorities are not adjusted from time to time, lower classes may starve to death
2.2-19
Shortest-Job-First (SJF)
Sometimes known as Shortest Process Next (SPN) Implementation: The process with the shortest expected execution time is given priority on the processor
2.2-20
Characteristics:
Nonpremptive Reduces average waiting time over FIFO Always produces the minimum average turnaround time Must know how long a process will run Possible user abuse Suitable for batch environments. Not useful in a timesharing environment
Ceng 334 - Operating Systems
2.2-21
Implementation: Process with the smallest estimated runtime to completion is run next A running process may be preempted by a new process with a shorter estimate runtime
2.2-22
Characteristics: Still requires estimates of the future Higher overhead than SJF No additional interrupts are generated as in RR Elapsed service times must be recorded
2.2-23
Characteristics: Nonpremptive Shorter jobs still get preference over longer jobs However aging ensures long jobs will eventually gain the processor Estimation still involved
2.2-25
Feedback Queues
Sometimes called multi-level feedback queues Implementation:
There is a network of ready queues A new process enters at the top queue Moves through the queue FIFO
Ceng 334 - Operating Systems
2.2-26
I/O processes: If the job requires I/O before quantum expiration it leaves the network and comes back at the same level queue CPU bound processes: If the quantum expires first, the process is placed on the next lower queue This continues until it reaches the bottom queue
Ceng 334 - Operating Systems
2.2-27
Dispatching: A process is only placed on the CPU if all higher level queues are empty A running process is preempted by a process arriving in a higher queue Processes from lower level queues receive a larger quantum Modifications: In some systems processes can proceed back up the network by becoming I/O bound
Ceng 334 - Operating Systems
2.2-28
2.2-29