现代操作系统(第四版)————处理机调度

目录

一、调度简介

1、调度的要求

2、何时调度?

3、调度算法的分类

4、调度算法的目标

二、批处理系统中的调度

三、交互式系统中的调度

四、实时系统中的调度

五、策略和机制

六、线程调度


当计算机系统是多道程序设计系统时,通常就会有多个进程或者线程同时竞争CPU。

只要两个或者更多的进程处于就绪状态,就会有多个进程或者线程同时竞争CPU。

如果只有一个CPU可用,那么就必须选择下一个要运行的进程

在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法称为调度算法

一、调度简介

1、调度的要求

(1)调度程序要选取正确进程运行

对于网络服务器,多个进程经常竞争CPU,因此调度功能变得至关重要。例如,当CPU必须在运行一个收集每日统计数据的进程和服务用户需求的进程之间进行选择的时候,如果后者首先占用了CPU,用户将会很高兴。

(2)调度程序要考虑CPU的利用率

进程切换的代价是比较高的。

首先用户态必须切换到内核态;然后要保存当前进程的状态,包括在进程表中存储寄存器值以便以重新装载。在许多系统中,内存映像(例如,页表内的内存访问位)也必须保存;接着,通过运行调度算法选定一个新进程;之后,应该将新进程的内存映像重新装入MMU;最后新进程开始运行。

除此之外,进程切换还要使整个内存高速缓存失效,强迫缓存从内存中动态重新装入两次(进入内核一次,离开内核一次)。

总之,如果每秒钟切换进程的次数太多,会耗费大量的CPU时间,所以有必要提醒。

2、何时调度?

(1)创建一个新进程之后,需要决定是运行父进程还是子进程。

(2)在一个进程退出时必须做出调度决策。

(3)当一个进程阻塞在I/O和信号量或由于其他原因阻塞时,必须选择另一个进程运行

(4)当一个I/O中断发生时,必须做出调度决策。

备注:

   非抢占式调度算法挑选一个进程,然后让该进程运行直至被阻塞(阻塞在I/O等待另一个进程),或者直到该进程自动释放CPU。即使该进程运行了若干个小时,它也不会被强迫挂起。结果是在时钟中断发生时不会进行调度。在处理完时钟中断后,如果没有更高优先级的进程等待到时,则被中断的进程会继续执行。

   抢占式调度算法挑选一个进程,并且让该进程运行某个固定时段的最大值。如果在该时段结束时,该进程仍在运行,他就被挂起,而调度程序挑选另一个程序运行(如果存在一个就绪进程)。进行抢占调度处理,需要再时间间隔的末端发生时钟中断,以便把CPU控制返回给调度程序。如果没有可用时钟,那么非抢占式调度就是唯一的选择了。

3、调度算法的分类

批处理,交互式,实时。

4、调度算法的目标

二、批处理系统中的调度

1、先来先服务

2、最短作业优先

3、最短剩余时间优先

三、交互式系统中的调度

1、轮转调度

2、优先级调度

3、多级多列

4、最短进程优先

5、保证调度

6、彩票调度

7、公平分享调度

四、实时系统中的调度

五、策略和机制

六、线程调度

发布了151 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41808387/article/details/104839836