Process Scheduling

Process Scheduling

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us