作业调度,cpu调度,进程调度,内存管理以及长期调度,中期调度,短期调度的区别

一、区分:

  1. CPU调度 = 短期调度 = 狭义的进程调度
  2. 作业调度 = 长期调度
  3. 中期调度
  4. 广义的进程调度 = 长期调度 + 短期调度 + 中期调度(也就是概念中除了内存管理的全部调度过程)
  5. 内存管理

这里的狭义的进程调度和广义的进程调度,是这样理解。在教材中,是在进程调度的讲解中,说“长期调度,中期调度,短期调度都属于进程调度”,而其他资料中,是将cpu调度也就是短期调度叫做进程调度。所以就出现了两个进程调度的概念,又存在包含关系,就用狭义和广义进行区分。

二、进程调度

首先给出一个最简洁的区分这些概念的图(注意图中的箭头方向)
这里写图片描述
然后再给两个比较详细的图
这里写图片描述
这里写图片描述
进程调度分为:

长程调度,又称作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行。

短程调度,又称进程调度和cpu调度,用来决定就绪队列中的哪个进程应获得cpu,然后再由分派程序把处理机分配给该进程的具体操作。常见的cpu调度算法有先到先服务调度(FCFS)、最短作业优先调度(SJF)、优先级调度(priority scheduling)、轮转法调度(RR)、多级队列调度、多级反馈队列调度、最短响应比优先算法(HRRN)。这些调度算法的执行可以参考这两个链接:CPU Scheduling CPU调度 - CSDN博客
CPU调度算法总结

,这些调度算法,可以通过参考链接1的题目练习一下,会对调度的执行有个概观。

中程调度,从就绪挂起到就绪,从阻塞挂起到阻塞,引入中程调度的主要目的,是为了提高内存利用率和系统吞吐量。(这里就涉及一个何为就绪挂起,何为阻塞挂起的概念。简单的讲,“挂起”就是把已经在内存的进程从内存中调出到外存,因为进程的内存的状态分为就绪和阻塞,所以有就绪挂起和阻塞挂起。)

三、内存管理

说完进程调度,来说说内存管理,内存管理也是在内存和外存之间进行调度,但是它们调度的对象不同。进程调度的对象是进程/线程,而内存管理的对象是页(或者是段),内存管理是和进程调度协作进行的,当进程调度(中期和长期调度)决定哪些进程进入内存之后,这些进程实际分配到内存中的页数和位置(涉及到虚拟内存的概念)就是由内存管理来进行页面置换算法的执行。

参考链接:

一道题浅谈【作业调度】与【进程调度】

操作系统中长期调度、中期调度和短期调度之间的区别

猜你喜欢

转载自blog.csdn.net/qq_36328643/article/details/81181100