2)PROCESS SCHEDULING

a)Scheduling Queues

-Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. In modern operating systems, there are typically many more processes running than there are CPUs available to run them. Scheduling refers to the way processes are assigned to run on the available CPUs. This assignment is carried out by software known as a scheduler.




  • Job queue – set of all processes in the system.


  • Ready queue – set of all processes residing in main memory, ready and waiting to execute.


  • Device queues – set of processes waiting for an I/O device.


  • Process migration between the various queues.

b)Schedulers




  • Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue.


  • Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU.






  1. Short-term scheduler is invoked very frequently (milliseconds) Þ (must be fast).


  2. Long-term scheduler is invoked very infrequently (seconds, minutes) Þ (may be slow).


  3. The long-term scheduler controls the degree of multiprogramming.


  4. Processes can be described as either:


  5. I/O-bound process – spends more time doing I/O than computations, many short CPU bursts.


  6. CPU-bound process – spends more time doing computations; few very long CPU bursts.






c)Context Switch





  • When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process.


  • Context-switch time is overhead; the system does no useful work while switching.


  • Time dependent on hardware support.

0 comments: