* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter Four : Processor Management
Survey
Document related concepts
Transcript
Chapter Four : Processor Management • Introduction • Job Scheduling Versus Process Scheduling • Process Scheduler • Process Identification • Process Status • Process State • Accounting • Process Scheduling Policies • Process Scheduling Algorithms • Cache Memory • Interrupts Job Scheduling Process Scheduling Interrupt Management How Does Processor Manager Allocate CPU(s) to Jobs? • Process Manager performs job scheduling, process scheduling and interrupt management. • In single-user systems, processor is busy only when user is executing a job—at all other times it is idle. – Processor management is simple. • In multiprogramming environment, processor must be allocated to each job in a fair and efficient manner. – Requires scheduling policy and a scheduling algorithm. Understanding Operating Systems 2 Some Important Terms • Program – inactive unit, such as a file stored on a disk. – To an operating system, a program or job is a unit of work that has been submitted by user. – “Job” is usually associated with batch systems. • Process (task) – active entity, which requires a set of resources, including a processor and special registers to perform its function. – A single instance of an executable program. Understanding Operating Systems 3 Important Terms - 2 • Thread of control (thread) – a portion of a process that can run independently. • Processor ( CPU, central processing unit) –part of machine that performs calculations and executes programs. • Multiprogramming requires that the processor be “allocated” to each job or to each process for a period of time and “deallocated” at an appropriate moment. Understanding Operating Systems 4 Job Scheduling vs. Process Scheduling • Processor Manager has 2 sub-managers: 1. Job Scheduler • in charge of job scheduling. 2. Process Scheduler • in charge of process scheduling. Understanding Operating Systems 5 Job Scheduler • High-level scheduler. • Selects jobs from a queue of incoming jobs. • Places them in process queue (batch or interactive), based on each job’s characteristics. • Goal is to put jobs in a sequence that uses all system’s resources as fully as possible. • Strives for balanced mix of jobs with large I/O interaction and jobs with lots of computation. – Tries to keep most system components busy most of time. Understanding Operating Systems 6 Process Scheduler • Low-level scheduler – assigns the CPU to execute processes of those jobs placed on ready queue by Job Scheduler. • After a job has been placed on the READY queue by Job Scheduler, Process Scheduler that takes over. – – – – Determines which jobs will get CPU, when, and for how long. Decides when processing should be interrupted. Determines queues job should be moved to during execution. Recognizes when a job has concluded and should be terminated. Understanding Operating Systems 7 CPU Cycles and I/O Cycles • To schedule CPU, Process Scheduler uses common trait among most computer programs: they alternate between CPU cycles and I/O cycles. READ A,B I/O cycle C = A+B D = (A*B)–C CPU cycle E = A–B F = D/E WRITE A,B,C,D,E,F I/O cycle STOP terminate execution END 8 Poisson Distribution Curve • I/O-bound jobs (such as printing a series of documents) have many brief CPU cycles and long I/O cycles. • CPU-bound jobs (such as finding the first 300 prime numbers) have long CPU cycles and shorter I/O cycles. • Total effect of all CPU cycles, from both I/O-bound and CPU-bound jobs, approximates a Poisson distribution curve. – Figure 4.1 Understanding Operating Systems 9 Processor Manager : Middle-Level Scheduler • In a highly interactive environment there’s a third layer – called middle-level scheduler. • Removes active jobs from memory to reduce degree of multiprogramming and allows jobs to be completed faster. Understanding Operating Systems 10 Job and Process Status • Job status -- one of the 5 states that a job takes as it moves through the system. – – – – – HOLD READY WAITING RUNNING FINISHED Understanding Operating Systems 11 Job and Process Status Admitted Hold Finished Interrupt Ready I/O or event completion Exit Running Scheduler dispatch Waiting I/O or event wait Handled by Process Scheduler Handled by Job Scheduler 12 Transition Among Process States HOLD to READY : Job Scheduler using a predefined policy. READY to RUNNING : Process Scheduler using some predefined algorithm RUNNING back to READY : Process Scheduler according to some predefined time limit or other criterion. RUNNING to WAITING : Process Scheduler and is initiated by an instruction in the job. WAITING to READY : Process Scheduler and is initiated by signal from I/O device manager that I/O request has been satisfied and job can continue. RUNNING to FINISHED : Process Scheduler or Job Scheduler. Understanding Operating Systems 13 Process Control Block (PCB) • Process Control Block (PCB) -- data structure that contains basic info about the job – Process identification – Process status (HOLD, READY, RUNNING, WAITING) – Process state (process status word, register contents, main memory info, resources, process priority) – Accounting (CPU time, total amount of time, I/O operations, number input records read, etc.) Understanding Operating Systems 14 PCBs and Queuing • PCB of job created when Job Scheduler accepts it – updated as job goes from beginning to termination. • Queues use PCBs to track jobs. – PCBs, not jobs, are linked to form queues. – E.g., PCBs for every ready job are linked on READY queue; all PCBs for jobs just entering system are linked on HOLD queue. – Queues must be managed by process scheduling policies and algorithms. Understanding Operating Systems 15 Process Scheduling Policies • Before operating system can schedule all jobs in a multiprogramming environment, it must resolve three limitations of system: – finite number of resources (such as disk drives, printers, and tape drives) – some resources can’t be shared once they’re allocated (such as printers) – some resources require operator intervention (such as tape drives). Understanding Operating Systems 16 Scheduling Criteria • CPU utilization – keep the CPU as busy as possible • Throughput – # of processes that complete their execution per time unit • Turnaround time – amount of time to execute a particular process • Waiting time – amount of time a process has been waiting in the ready queue • Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment) Understanding Operating Systems 17 A Good Scheduling Policy Maximize throughput by running as many jobs as possible in a given amount of time. Maximize CPU efficiency by keeping CPU busy 100 % of time. Ensure fairness for all jobs by giving everyone an equal amount of CPU and I/O time. Minimize response time by quickly turning around interactive requests. Minimize turnaround time by moving entire jobs in/out of system quickly. Minimize waiting time by moving jobs out of READY queue as quickly as possible. 18 Interrupts • There are instances when a job claims CPU for a very long time before issuing an I/O request. – builds up READY queue & empties I/O queues. – Creates an unacceptable imbalance in the system. • Process Scheduler uses a timing mechanism to periodically interrupts running processes when a predetermined slice of time has expired. – suspends all activity on the currently running job and reschedules it into the READY queue. Understanding Operating Systems 19 Preemptive & Non-preemptive Scheduling Policies • Preemptive scheduling policy interrupts processing of a job and transfers the CPU to another job. • Non-preemptive scheduling policy functions without external interrupts. – Once a job captures processor and begins execution, it remains in RUNNING state uninterrupted. – Until it issues an I/O request (natural wait) or until it is finished (exception for infinite loops). Understanding Operating Systems 20 Process Scheduling Algorithms • • • • • • First Come First Served (FCFS) Shortest Job Next (SJN) Priority Scheduling Shortest Remaining Time (SRT) Round Robin Multiple Level Queues Understanding Operating Systems 21 First Come First Served (FCFS) • Non-preemptive. • Handles jobs according to their arrival time -- the earlier they arrive, the sooner they’re served. • Simple algorithm to implement -- uses a FIFO queue. • Good for batch systems; not so good for interactive ones. • Turnaround time is unpredictable. Understanding Operating Systems 22 FCFS Example Process A B C CPU Burst (Turnaround Time) 15 milliseconds 2 milliseconds 1 millisecond • If they arrive in order of A, B, and C. What does the time line look like? What’s the average turnaround time? Understanding Operating Systems 23 Shortest Job Next (SJN) • Non-preemptive. • Handles jobs based on length of their CPU cycle time. – Use lengths to schedule process with shortest time. • Optimal – gives minimum average waiting time for a given set of processes. – optimal only when all of jobs are available at same time and the CPU estimates are available and accurate. • Doesn’t work in interactive systems because users don’t estimate in advance CPU time required to run their jobs. Understanding Operating Systems 24 Priority Scheduling • Non-preemptive. • Gives preferential treatment to important jobs. – Programs with highest priority are processed first. – Aren’t interrupted until CPU cycles are completed or a natural wait occurs. • If 2+ jobs with equal priority are in READY queue, processor is allocated to one that arrived first (first come first served within priority). • Many different methods of assigning priorities by system administrator or by Processor Manager. Understanding Operating Systems 25 Shortest Remaining Time (SRT) • Preemptive version of the SJN algorithm. • Processor allocated to job closest to completion. – This job can be preempted if a newer job in READY queue has a “time to completion” that's shorter. • Can’t be implemented in interactive system -- requires advance knowledge of CPU time required to finish each job. • SRT involves more overhead than SJN. – OS monitors CPU time for all jobs in READY queue and performs “context switching”. Understanding Operating Systems 26 Context Switching Is Required by All Preemptive Algorithms • When Job A is preempted – All of its processing information must be saved in its PCB for later (when Job A’s execution is continued). – Contents of Job B’s PCB are loaded into appropriate registers so it can start running again (context switch). • Later when Job A is once again assigned to processor another context switch is performed. – Info from preempted job is stored in its PCB. – Contents of Job A’s PCB are loaded into appropriate registers. Understanding Operating Systems 27 Round Robin • Preemptive. • Used extensively in interactive systems because it’s easy to implement. • Isn’t based on job characteristics but on a predetermined slice of time that’s given to each job. – Ensures CPU is equally shared among all active processes and isn’t monopolized by any one job. • Time slice is called a time quantum – size crucial to system performance (100 ms to 1-2 secs) Understanding Operating Systems 28 If Job’s CPU Cycle < Time Quantum • If job’s last CPU cycle & job is finished, then all resources allocated to it are released & completed job is returned to user. • If CPU cycle was interrupted by I/O request, then info about the job is saved in its PCB & it is linked at end of the appropriate I/O queue. – Later, when I/O request has been satisfied, it is returned to end of READY queue to await allocation of CPU. Understanding Operating Systems 29 Time Slices Should Be ... • Long enough to allow 80 % of CPU cycles to run to completion. • At least 100 times longer than time required to perform one context switch. • Flexible -- depends on the system. Understanding Operating Systems 30 Multiple Level Queues • Not a separate scheduling algorithm. • Works in conjunction with several other schemes where jobs can be grouped according to a common characteristic. • Examples: – Priority-based system with different queues for each priority level. – Put all CPU-bound jobs in 1 queue and all I/O-bound jobs in another. Alternately select jobs from each queue to keep system balanced. – Put batch jobs “background queue” & interactive jobs in a “foreground queue”; treat foreground queue more favorably than background queue. Understanding Operating Systems 31 Policies To Service Multi-level Queues • No movement between queues. • Move jobs from queue to queue. • Move jobs from queue to queue and increasing time quantums for “lower” queues. • Give special treatment to jobs that have been in system for a long time (aging). Understanding Operating Systems 32 Cache Memory • Cache memory -- quickly accessible memory that’s designed to alleviate speed differences between a very fast CPU and slower main memory. • Stores copy of frequently used data in an easily accessible memory area instead of main memory. CPU Main Memory Cache Controller Hit Cache Memory Miss 33 Types of Interrupts • • • • Page interrupts to accommodate job requests. Time quantum expiration. I/O interrupts when issue READ or WRITE command. Internal interrupts (synchronous interrupts) result from arithmetic operation or job instruction currently being processed. • Illegal arithmetic operations (e.g., divide by 0). • Illegal job instructions (e.g., attempts to access protected storage locations). Understanding Operating Systems 34 Interrupt Handler • Describe & store type of interrupt (passed to user as error message). • Save state of interrupted process (value of program counter, mode specification, and contents of all registers). • Process the interrupt – Send error message & state of interrupted process to user. – Halt program execution – Release any resources allocated to job are released – Job exits the system. • Processor resumes normal operation. Understanding Operating Systems 35 Key Terms • • • • • • • • • aging cache memory context switching CPU-bound first come first served high-level scheduler I/O-bound indefinite postponement internal interrupts Understanding Operating Systems • • • • • • • • • interrupt interrupt handler Job Scheduler job status low-level scheduler middle-level scheduler multiple level queues multiprogramming non-preemptive scheduling policy 36 Key Terms - 2 • preemptive scheduling policy • priority scheduling • process • Process Control Block • Process Scheduler • process scheduling algorithm • process scheduling policy process status Understanding Operating Systems • • • • • • • • • • processor queue response time round robin shortest job next (SJN) shortest remaining time synchronous interrupts time quantum time slice turnaround time 37