王道操作系统笔记视频链接2.2.1 调度的概念、层次知识总览基本概念处理机调度分为三个层次高级调度作业调度中级调度内存调度低级调度进程调度三层调度的联系、对比补充知识由中级调度引出进程的“挂起态”七状态模型图示调度的基本概念例1银行中普通客户先到先服务VIP用户优先服务例2某个公共场所使用时间短的优先时间相同的先排队先使用这些都是调度的例子当有一堆任务要处理但由于资源有限这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序这就是“调度”研究的问题。调度的三个层次高级调度作业调度作业一个具体的任务用户向系统提交一个作业 ≈ 用户让操作系统启动一个程序来处理一个具体的任务内存空间有限有时无法将用户提交的作业全部放入内存中。高级调度作业调度按一定的原则从外存的作业后备队列中挑选以恶作业调入内存并创建进程。每个作业只调入一次调出一次。作业调入时会建立PCB调出时才撤销PCB。PS简化理解高级调度就是好几个程序需要启动到底先启动哪个。图示低级调度进程调度低级调度进程调度/处理机调度——按照某种策略从就绪队列中选取一个进程将处理机分配给它。进程调度是操作系统中最基本的一种调度在一般的操作系统中都必须配置进程调度。进程调度的频率很高一般几十毫秒一次。图示中级调度内存调度内存不够时可将某些进程的数据调出外存等内存空闲或者进程需要运行时再重新调入内存。暂时调到外存等待的进程状态为挂起状态被挂起的进程PCB会被组织成挂起队列。中级调度内存调度——按照某种策略决定将哪个处于挂起状态的进程重新调入内存。一个进程可能会被多次调出、调入内存因此中级调度发生的频率要比高级调度更高。注意中级调度因为涉及访问外存所以时间开销比低级调度大。图示补充知识进程的挂起态和七状态模型暂时调到外存等待的进程状态为挂起状态挂起态suspend挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态五状态模型-七状态模型后者相较于前者多了“就绪挂起”与“阻塞挂起”两种状态并且多了如下关系“就绪态”与“就绪挂起”可以相互转换“阻塞态”与“阻塞挂起”可以相互转换“阻塞挂起”可以在事件出现时转换为“就绪挂起”“创建态”可以在内存不足时转换为“就绪挂起”“运行态”可以转换为“就绪挂起”如图所示注意事项“挂起”和“阻塞”的区别两种状态都是暂时不能获得CPU的服务但挂起态是将进程印象调到外存去了而阻塞态下进程映像还在内存中。有的操作系统会把就绪挂起、阻塞挂起分为两个挂起队列甚至会根据阻塞原因不同再把阻塞挂起进程进一步细分为多个队列。三层调度的联系、对比如图所示知识回顾与重要考点如图所示一些可能有争议的点关于中级调度是否是双向课件里的表以及最后的总结都明确指出中级调度——按照某种规则从挂起队列中选择合适的进程将其数据调回内存。但是前面又说“内存不够时可将某些进程的数据调出外存等内存空闲或者进程需要运行时再重新调入内存。”看上去又暗示有双向又定义是单向十分混乱。个人想法把它们当成广义和狭义的两种定义聊的时候说双向题目聊单向也不算错。deepseek 修改后的表格调度类型要做什么调度发生在…发生频率对进程状态的影响高级调度作业调度按照某种规则从后备队列中选择合适的作业将其调入内存并为其创建进程外存→内存面向作业单向最低无→创建态→就绪态中级调度内存调度按照某种规则将进程调入调出内存以提高内存利用率内存 ↔ 外存面向进程双向中等就绪态↔挂起态阻塞态↔阻塞挂起低级调度进程调度按照某种规则从就绪队列中选择一个进程为其分配处理机内存→CPU面向进程单向最高就绪态→运行态关于高级调度是否涉及调出课件里说明每个作业只调入一次调出一次。 作业调入时会建立相应的PCB作业调出时才撤销PCB。高级调度主要是指调入的问题因为只有调入的时机需要操作系统来确定但调出的时机必然是作业运行结束才调出。调入调出不是针对外存和内存的存储吗作业运行结束为什么要执行调出调出到外存有什么意义汤小丹版教材定义中将高级调度定义为“调入”作业其对立面是作业运行完毕后的“撤销”或“终止”而非“调出”所以个人理解这里的“调出”对应的就是汤小丹版中的删除撤销进程操作理解成和“中级调度”中的“调出”同词不同义吧。