
CSC501 Operating SystemsPrinciples Process Scheduling 1 Last Lecture q Process Lifecycles q Context Switching 2 Process Scheduling q Key steps Q Examine processes eligible for execution Q Select one based on a certain scheduling policy Q Switch CPU to selected item q Two-level scheduling possible Q Select Process Q Select thread within Process 3 Scheduling Policy q Fundamental OS policy q Determines when process selected for execution q May depend on Q Process priority Q Time process waits Q Process owner (user) 4 Process Scheduling Queues q Ready queue Q Set of processes residing in main memory, ready, and waiting to execute q Job queue Q Set of all processes in the system q Device queues Q Set of processes waiting for an I/O device q Process migration between the various queues 5 Ready Queue And Various I/O Device Queues Representation of Process Scheduling Schedulers q Long-term scheduler (or job scheduler) Q Which processes should be brought into the ready queue Q Invoked very infrequently (seconds, minutes) Þ (may be slow) Q Controls the degree of multiprogramming q Short-term scheduler (or CPU scheduler) Q Which process should execute next (allocates CPU) Q Invoked very frequently (milliseconds) Þ (must be fast) 8 Schedulers (Cont.) q Processes can be described as either: Q I/O-bound process v spends more time doing I/O than computations, v many short CPU bursts Q CPU-bound process v spends more time doing computations v few very long CPU bursts 9 Example Scheduling in XINU q Each process assigned a priority Q Non-negative integer value Q Initialized when process created Q Can be changed q Scheduler chooses process with highest priority Q Processes with the same priority are scheduled in a round-robin fashion q Policy enforced as a system-wide invariant 10 The XINU Scheduling Invariant q At any time, the CPU must run the highest priority eligible process. Among processes with equal priority, scheduling is round robin. q Invariant enforced during Q System call Q Interrupt 11 Implementation of Scheduling q Process eligible if state is Q ready or current q To avoid searching process table Q Keep ready processes on linked list called ready list Q Order ready list by priority Q Selection in constant time 12 Example Scheduler Code 13 Puzzle #1 q Invariant says that at any time, one process must be executing q Context switch code moves from one process to another q Question: which process executes the context switch code? 14 Solution to Puzzle #1 q ‘‘Old’’ process Q Executes first half of context switch Q Is suspended q ‘‘New’’ process Q Continues executing where previously suspended Q Usually runs second half of context switch 15 Puzzle #2 q Invariant says that at any time, one process must be executing q All user processes may be idle (e.g., applications all wait for input) q Which process executes? 16 Solution to Puzzle #2 q OS needs an extra process Q Called NULL process Q Never terminates Q Cannot make a system call that takes it out of ready or current state Q Typically an infinite loop 17 Lab 1 –Process Scheduling q Part I Q The chprio() function contains a bug (sys/chprio.c) q Part II Q The resched() function contains a limitation (sys/resched.c), i.e., a process with a lower priority could suffer from starvation 18 Lab 1 –Process Scheduling q Part I Q The chprio() function contains a bug (sys/chprio.c) 19 Lab 1 –Process Scheduling q Part II Q The process scheduling policy has a limitation, namely process starvation Q You are asked to implement two different policies v Random scheduler v Proportional sharing scheduler 20 Random Scheduler q Total N processes Pi (i=0..N-1) in the ready queue q Each Pi Q Priority: PRIOi Q Probability: PRIOi/sum(PRIOj) (j=0..N-1) 21 Proportional Sharing Scheduler q Two factors: Q The priority and execution time q Timer interrupt handler Q Related files: sys/clkint.Ssys/clkinit.c Q Interrupt rate –based on clock timer v ctr1000: 1ms Q Scheduling rate: v Interrupt rate * QUANTUM Q Others v preempt: preemption counter 22 Lab 1 –Process Scheduling q Read relevant source code in Xinu Q Process queue management v h/q.hsys/queue.csys/insert.c, … Q Proc. creation/suspension/resumption/termination: v sys/create.c, sys/suspend.csys/resume.c, sys/kill.c Q Priority change v sys/chprio.c Q Process scheduling v sys/resched.c Q Other initialization code v sys/initialize.c 23 Process Control Block (proc.h) 24 Next Lecture q Process Synchronization 25.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages25 Page
-
File Size-