320 likes | 507 Views
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)
E N D
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 • How to allocate the CPU • Monitor whether it’s executing or waiting a process . • Control job entry to ensure balanced use of resources
Process • Processis 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 • 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. Preempted request Arriving requests Scheduled request CPU Completed request Scheduler • 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. Data flow Control Flow Pending requests
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 • CPU utilization (Penggunaan CPU) - keep the CPU as busy as possible • Throughput(DayaPemprosesan) – number of processes that complete their execution per time unit • Turnaround time (Masapusingan)– amount of time to execute a particular process • Waiting time( Masamenunggu)– amount of time a process has been waiting in the ready queue • Response time(Masatindakbalas)– 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
P1 P2 P3 0 24 27 30 Example : FCFS ProcessBurst Time (ms) P1 24 P2 3 P3 3 The Gantt Chart for the schedule is: • 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 • Draw a gantt chart • 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 P4 P1 P3 P2 0 1 16 24 9 • ii) Waiting time; • P1= 3; P2=16; P3=9; P4=0 • iii) Average waiting time; • = ( 3 + 16 + 9 + 0 )/ 4 • = 7 ms
P1 P3 P2 P4 0 7 8 12 16 Scheduling Algorithm : Shortest Job First (SJF) Nonpreemptive ii) Waiting Time P1 = 0 P2 = 8 – 2 = 6 P3 = 7 – 4 = 3 P4 = 12 – 5 = 7 iii) AWT = (0 + 6 + 3 + 7)/4 4
ExerciseSJF 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 P1 P2 P1 12 0 2 4 ii) AWT P1+P2 = 1ms 2 ii) Waiting Time P1 = 0 + (4-2) = 2 P2 = 2-2 = 0
Exercise 1: SRTF Open your labwork book, page 11(Activity 2)
Exercise 2 : SRTF • Draw a gantt chart • Calculate are waiting time for each process • 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 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30 • ii) Waiting time • 1. P1 = (0 + (10-4)) = 6 ms • 2. P2 = 4 ms • 3. P3 = 7 ms • 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 P2 P5 P1 P3 P4 0 1 16 18 19 6 • ii) Waiting time • 1. P1 = 6 ms • 2. P2 = 0 ms • 3.P3 = 16 ms • 4. P4 = 18 ms • 5. P5 = 1 ms • iii) Average waiting time • = ( 6 + 0 + 16 + 18 + 1 )/ 5 • = 8.2 ms
Exercise 1: Priority Scheduling Open your labwork book, page 15 (Activity 2)