Title: Chapter 2.2 : Process Scheduling
1Chapter 2.2 Process Scheduling
- Process concept ?
- Process scheduling
- Interprocess communication
- Deadlocks
- Threads
2Scheduling
- 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
3Types 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
4Types of Scheduling
- Long Term Scheduling.
- The decision to add to the pool of processes to
be executed. - Medium Term Scheduling.
- The decision to add to the process in main
memory. - Short Term Scheduling.
- The decision as to which process will gain the
processor. - I/O Scheduling.
- The decision as to which process's I/O request
shall be handled by a device.
5Scheduling 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
6User-Oriented, Performance Criteria
Criteria Aim Response Time low response time,
maximum number of interactive users
Turnaround Time time between submission
and completion Deadlines maximise deadlines
met
7System-oriented, Performance Criteria
- Criteria Aim
- Throughput allow maximum number of jobs to
complete - Processor maximise percentage of time processor
is busy - utilisation
- Overhead minimise time processor busy executing
OS
8System oriented, other criteria
Criteria Aim Fairness treat processes the
same avoid starvation Enforcing Priorities give
preference to higher priority processes Balancing
Resources keep the system resources busy
9Important 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
10Types 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.
11The Interrupting Clock
- The OS sets the interrupting clock to generate an
interrupt at some specified future time. - This interrupt time is the process quantum.
- Provides reasonable response times and prevents
the system being held up by processes in infinite
loops.
12Scheduling Algorithms
- FCFS
- Round Robin
- Virtual Round Robin
- Priority
- Priority Classes
- Shortest Job First
- Shortest Remaining Time
- Highest Response Ratio Next
- Feedback Queues
13FCFS (First Come First Serve)
- Implementation
- As each process becomes ready, it joins the ready
queue. - When the current process finishes the oldest
process is selected next. - Characteristics
- Simple to implement
- Nonpremptive
- Penalises short and I/O-bound processes
14Round Robin (RR)
- Implementation
- Processes are dispatched FIFO. But are given a
fixed time on the CPU (quantum - time slice). - Characteristics
- Preemptive
- Effective in time sharing environments
- Penalises I/O bound processes
15Quantum 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
16Virtual Round Robin (VRR)
- A modification to the RR algorithm to remove the
bias towards CPU bound processes. - 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
17Priority
- 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
18Priority Classes
Priority Class 4
Highest
Priority Class 3
Priority Class 2
Priority Class 1
Lowest
19- 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
20Shortest-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
21- 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
22Shortest Remaining Time (SRT)
- Preemptive counterpart of SPN
- Implementation
- Process with the smallest estimated run-time to
completion is run next - A running process may be preempted by a new
process with a shorter estimate run-time
23- 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
24Highest Response Ratio Next (HRRN)
- How do you get around the problem of Indefinite
postponement? - Implementation
- Once a job gets the CPU it runs it to completion
- The priority of a job is a function of the job's
service time and the time it has been waiting for
service - priority (time waiting service time) /
service time
25- Characteristics
- Nonpremptive
- Shorter jobs still get preference over longer
jobs - However aging ensures long jobs will eventually
gain the processor - Estimation still involved
26Feedback 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
27- 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
28- 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
29A Scheduling Mechanism Should
- Favour short jobs
- Favour I/O bound jobs to get good I/O device
utilisation - Determine the nature of a job and schedule
accordingly