3.1 Resource Management

advertisement
3.1 : Resource Management
Part2 :Processor Management
Learning Outcomes
3.1.1 Understand Processor Management
3.1.2 Various type of scheduling processes
3.1.3 Scheduling Algorithms
– First in first out (FIFO)
– Shortest Job First (Nonpreemptive SJF)
– Shortest Remaining Time (Preemptive SJF)
– Round Robin Scheduling
– Priority
Processor Management
• To know how Processor Manager allocates a
single CPU to execute the jobs / processes
from those user.
• Task of Processor Manager : Decide
i. How to allocate the CPU
ii. Monitor whether it’s executing or
waiting a process .
iii.Control job entry to ensure balanced use
of resources
Process
•
•
•
•
Process is a program in execution
When process execute it changes state
State represent process’s current activity
Each process may be in one of the following state,
which are :
– New : the process is being created
– Running : instruction are being executed
– Waiting : the process is waiting for some event to occur
(reception of signal)
– Ready : the process is waiting to be assigned to a
processor
– Terminated : the process has finished execution
Process
• Waiting queue is place for not executing
process.
• Ready queue is contains all the processes
that are ready to execute and waiting for the
CPU.
• Each process is represent by PCB (Process
Control Block)
PCB (Process Control Block)
• PCB contains many pieces of information with specific
process which are;
– Process state : new, running, waiting, ready and terminated
– Program counter : the counter indicate the address of the next
instruction to be executed
– CPU Register: include accumulator, index register stack
pointer and so on .
– CPU Scheduling algorithm : includes a process priority, or
others CPU scheduling algorithm
– Memory – management information : may include such
information as the value of the limit and base register, the
page table or segment table, depend on which memory scheme
used by operating system.
• PCB can linked together to a ready queue
Scheduling Concept
• The objective of Multiprogramming is to have
some process running at all times, - to
maximize CPU utilization
• Objective of Time-Sharing is to switch the CPU
among processes – so frequently that user
can interact with each program while it is
running.
• A uniprocessor/ single – user system can have
only one running process. If more processes
exist, the rest must wait until the CPU is free
and can be rescheduled.
Process Scheduling
• Therefore process scheduling is need for
schedule processes on your system
• Why to schedule ? To decide which
process to run first if there have more than
one process is run able.
• Scheduler is part of O/S which make this
decision.
Schematic of scheduling
Preempted request
Arriving
requests
Scheduled
request
Scheduler
Pending
requests



Figure above is shows movement
of requests in the system
All requests waiting to be
executed are kept in a list of
pending requests.
Whenever scheduling is to be
performed, the scheduler
examines the pending request and
select one for executing.
CPU
Completed
request
Data flow
Control Flow
 This request is handed over to the CPU.
 A request leaves the CPU when it completes or
when it is preempted by the scheduler.
 In which case, it is put back into the list of
pending request
 In either situation, scheduler performs
scheduling to select next request to be executed.
Cont..
• Preemptive
– Interrupts the processing of a job and transfer the CPU
to another job.
– Strategy of allowing process that are logically run able
to be suspended.
– It is widely used in time-sharing environments
• Nonpreemtive
– Always processes a scheduled request to completion
– Since only one request is under processing by the CPU
at any time, it is not necessary to maintain the
distinction between long, medium and short – term
scheduling
– Example of scheduling are FCFS and SJF scheduling
Type of scheduling processes :
Long – term Scheduling
– Also known as job scheduling
– Is the selection of processes to be allowed to
compete for the CPU.
– Normally Long – Term Scheduling is heavily
influenced resource – allocation consideration,
especially memory management.
Type of scheduling processes :
Short– term Scheduling
– Also known as CPU Scheduling
– Is the selection of one process from ready
queue(all the processes that are ready to
execute and waiting for the CPU)
Scheduling Creteria
1. CPU utilization (Penggunaan CPU) - keep the CPU as busy as
possible
2. Throughput(Daya Pemprosesan) – number of processes that
complete their execution per time unit
3. Turnaround time (Masa pusingan)– amount of time to execute a
particular process
4. Waiting time( Masa menunggu) – amount of time a process has been
waiting in the ready queue
5. Response time(Masa tindakbalas) – amount of time it takes from
when a request was submitted until the first response is produced, not
output (for time-sharing environment)
Optimization Criteria
• Max;
– CPU utilization
– throughput
• Min;
– turnaround time
– waiting time
– response time
Scheduling Algorithm : First Come
First Serve
• Is nonpreemptive scheduling algorithm.
• Handles job according to their arrival time. The
early arrive the, the sooner they’re served.
• It’s very simple algorithm to implement
because it uses FIFO queue.
• This algorithm is fine for most batch system,
but it unacceptable for interactive systems
because interactive users expect quick
response time
Example : FCFS
Process
P1
P2
P3
Burst Time (ms)
24
3
3
The Gantt Chart for the schedule is:
P1
0
P2
24
P3
27
30
• Waiting time for P1 = 0ms; P2 = 24ms; P3 = 27ms
• Average waiting time: (0 + 24 + 27)/3 = 17ms
Exercise 1: FCFS
• What will happened if the processes arrive
in the order  P2 , P3 , P1
i. Draw a gantt chart
ii. Calculate average waiting time
Scheduling Algorithm : Shortest
Job First (SJF)
• Handles jobs based on the length of their CPU
cycle time/ burst time.
• When CPU available , it is assigned to the
process that has smallest next CPU burst.
• If two processes have the same length next CPU
burst, FCFS scheduling is used to break the tie.
• The SJF scheduling algorithm is optimal that
is gives the minimum average waiting time for
a given set of processes.
Scheduling Algorithm : Shortest Job
First (SJF)
• Two schemes:
– nonpreemptive – once CPU given to the
process it cannot be preempted until completes
its CPU burst.
– 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).
Scheduling Algorithm : Shortest
Job First (SJF) Nonpreemptive
Process
Burst Time
Arrival Time
P1
6
0
P2
8
0
P3
7
0
P4
3
0
P4
0
P1
1
P3
9
ii) Waiting time;
P1= 3; P2=16; P3=9; P4=0
P2
16
24
iii) Average waiting time;
= ( 3 + 16 + 9 + 0 )/ 4
= 7 ms
Scheduling Algorithm : Shortest
Job First (SJF) Nonpreemptive
Process
Burst Time
Arrival Time
P1
7
0
P2
4
2
P3
1
4
P4
4
5
P1
0
ii) Waiting Time
1.
2.
3.
4.
P1 = 0
P2 = 8 – 2 = 6
P3 = 7 – 4 = 3
P4 = 12 – 5 = 7
P3
7
P2
8
P4
12
16
iii) AWT = (0 + 6 + 3 + 7)/4  4
Exercise SJF Nonepreemptive
Open your labwork book, page 11(Activity 2)
Scheduling Algorithm : Shortest
Job First (SJF) Preemptive / SRTF
Rules :
Current process preempted if a new
process with CPU burst time less than
remaining burst time for current executing
process.
Example 1: SRTF
Process
Burst Time
Arrival Time
P1
10
0
P2
2
2
P1
0
P2
2
P1
4
ii) Waiting Time
P1 = 0 + (4-2) = 2
P2 = 2-2 = 0
12
ii) AWT
P1+P2 = 1ms
2
Exercise 1: SRTF
Open your labwork book, page 11(Activity 2)
Exercise 2 : SRTF
Process
Burst Time
Arrival Time
P1
24
0
P2
3
1
P3
3
2
P4
1
3
i) Draw a gantt chart
ii) Calculate are waiting time for each process
iii) Calculate average waiting time
Scheduling Algorithm: Round
Robin Scheduling /RR
• Is a preemptive process scheduling
algorithm
• Each process gets a small unit of CPU time
(time quantum/time slice), usually 10-100
milliseconds.
• Time quantum = time interval
• After this time has elapsed, the process is
preempted and added to the end of the
ready queue.
Scheduling Algorithm: RR
Scheduling
P1
0
Process
Burst Time
P1
24
P2
3
P3
3
P2
4
P3
7
P1
10
Time Quantum = 4ms
P1
14
ii) Waiting time
1. P1 = (0 + (10-4)) = 6 ms
2. P2 = 4 ms
3. P3 = 7 ms
P1
18
P1
22
P1
26
30
iii) Average waiting time
= ( 6 + 4 + 7 )/ 3
= 5.66 ms
Exercise 1: RR Scheduling
Open your labwork book, page 14 (Activity 1)
Scheduling Algorithm: Priority
Scheduling
• A priority number (integer) is associated with each process
• The CPU is allocated to the process with the highest
priority (smallest integer = highest priority).
– Preemptive
– nonpreemptive
• SJF is a priority scheduling where priority is the predicted
next CPU burst time.
• Problem  Starvation ( low priority processes may never
execute)
• Solution  Aging ( as time progresses increase the priority
of the process)
Example 1: Priority Scheduling
0
P2
1
Process
Burst Time
Priority
P1
10
3
P2
1
1
P3
2
4
P4
1
5
P5
5
2
P5
ii) Waiting time
1. P1 = 6 ms
2. P2 = 0 ms
3. P3 = 16 ms
4. P4 = 18 ms
5. P5 = 1 ms
P1
P3
P4
6
16
18
iii) Average waiting time
= ( 6 + 0 + 16 + 18 + 1 )/ 5
= 8.2 ms
19
Exercise 1: Priority Scheduling
Open your labwork book, page 15 (Activity 2)
Download