1.优先级调度算法:
优先级调度算法根据进程的优先级执行进程。为每个进程分配一个优先级,并首先执行具有最高优先级的进程。可以在内部和外部定义优先级。内部优先级是由系统根据所需的资源数量,所需的时间等决定的,而外部优先级则取决于需要工作的时间或为完成的工作支付的金额或过程的重要性。优先级调度可以是抢占式的也可以是非抢占式的。
笔记 –
- 如果两个进程具有相同的优先级,则使用FCFS断开连接。
- 在抢占模式下,最高优先级进程的等待时间始终为零,而在非抢占模式下的等待时间可能不为零。
缺点:
主要问题是饥饿或无限期封锁。可能会发生这样的情况,即在进程流中,系统会继续执行高优先级进程,而永远不会执行低优先级进程。
2.轮循(RR):
轮询(RR)调度算法是专门为时间共享系统设计的。进程被放入就绪队列,在这种情况下,该队列是循环队列。在这种情况下,定义了一个小的时间单位,称为时间量。该算法从队列中选择第一个进程,并在时间量所定义的时间内执行它。如果该进程的突发时间小于该时间量,则CPU执行下一个进程,但如果其突发时间大于该时间量,则该过程被中断,并针对相同的时间量执行下一个进程。如果某个进程被中断,则会发生上下文切换,并将该进程放回队列的尾部。它本质上是先发制人的。
该算法主要取决于时间量。很大的时间量会使RR与FCFS相同,而很小的时间量将导致开销,因为上下文切换将在非常小的间隔后一次又一次地发生。
该算法的主要优点是,所有进程都一个接一个地执行,这不会导致进程出现饥饿或等待进程等待很长时间才能执行。优先级调度和循环调度(RR)调度算法之间的区别如下:
Priority Scheduling | Round-Robin (RR) |
---|---|
Priority Scheduling executes the processes according to the priority i.e. process with higher priority is executed first. | Round-Robin (RR) executes the processes based upon the time quantum defined i.e. each process is executed for a fixed amount of time. |
Priority Scheduling is both preemptive and non-preemptive in nature. | Round-Robin (RR) is preemptive in nature. |
The average waiting time and average response time is unknown beforehand. | The average waiting time for given set of processes is quite small and depends on the time quantum. |
It is easy to implement and best suited for real time operating systems. | It is quite easy to implement RR in any system. |
The problem of blocking of a process can be solved using aging. | Each process is executed and every user feels that his work is being done as the CPU gives equal amount of time to each process. |