[2.2.1]进程管理——调度的概念、层次
创始人
2024-05-30 20:48:00
0

文章目录

  • 第二章 进程管理
    • 调度的概念、层次
      • (一)调度的基本概念
      • (二)调度的三个层次
        • (1)高级调度
        • (2)低级调度
        • (3)中级调度
        • 补充知识:进程的挂起态与七状态模型
        • (4)三层调度的联系、对比
    • 小结

第二章 进程管理

调度的概念、层次

处理机调度

  • 基本概念
  • 三个层次
    • 高级调度(作业调度)
    • 中级调度(内存调度)
    • 低级调度(进程调度)
  • 三层调度的联系、对比
  • 补充知识
    • 进程的“挂起态”
    • 七状态模型

(一)调度的基本概念

  其实调度的概念离我们的生活并不遥远。

  比如在我们去银行的时候,这个银行,它可能有几个窗口为客户服务。那么,这些客户,到底应该先为谁服务呢?银行一般采用的是先到先服务的这种原则。

  如果说此时有一个vip客户,这个客户在银行里可能就会优先被服务、优先级更高。

image-20230308184703607

  再看另外一个例子。一个宿舍,早上大家都想上卫生间。每个人都想使用,但是有的人想使用3分钟,有的人要10分钟,有的人要1分钟……那么,大家在商量之后,就决定了一种使用这个资源的一个原则:使用时间短的就先使用,使用时间长的就后使用;如果时间长度相同的,先排队的先使用。

image-20230308184924476

  其实所谓的调度,它指的就是,当我们有一堆任务要处理的时候,由于当前的资源有限,那么这些事情没办法同时地被处理,那这个时候,我们就需要按照某种规则(比如先到先服务、时间短的优先),来决定我们要用什么样的顺序来处理这些任务。这就是所谓的“调度”。

  当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则决定处理这些任务的顺序,这就是“调度”研究的问题。

(二)调度的三个层次

(1)高级调度

  我们来看一下,在一个程序整个生命周期内,什么时候会发生调度的情况。

  第一种,叫做高级调度,又叫作业调度。


  此处补充一下作业的概念。

  所谓的作业,指的就是某一个具体的任务。

  可能有时会看到这种描述:用户向操作系统提交了一个作业。

  这句话,其实可以理解为:用户让操作系统帮他启动某一个程序,这个程序是来处理某一个具体的任务的。


  我们知道,我们要启动一个程序,那么这个程序相关的数据肯定需要从外存放到内存里面。

  但是我们的内存资源又是有限的。

  所以,如果内存已经满了,那么我们给操作系统提交的作业(或者我们想让系统帮我们启动的这个程序)就有可能没办法马上把它们放入内存(没办法马上启动)。

image-20230308185706788

  在这个时候,操作系统就会做高级调度(作业调度)。

image-20230308185925640

  操作系统会按照作业调度的相关规则,从作业后备队列里面选择一个先把它调入内存,并且会为这个作业建立与它相对应的进程,也就是建立一个PCB。这就是高级调度(作业调度)要做的事情。如果当前用户提交了很多作业,操作系统就要决定接下来到底要执行哪一个作业。

  高级调度(作业调度):按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。简化理解:好几个程序需要启动,到底先启动哪个。

  每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。

(2)低级调度

  低级调度(进程调度/处理机调度):按照某种策略从就绪队列中选取一个进程,将处理机分配给它。

image-20230308190500198

  因为我们内存中同一时刻是存在很多进程的,而我们CPU的资源也是有限的。所以,操作系统也需要按某种策略,从我们的进程就绪队列中挑选出一个进程,把处理机资源分配给它。

  多道程序并发,这件事情,肯定要用到进程调度。

  所以,进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。

  并且,进程调度的频率是很高的,一般几十毫秒一次。因为高频率的进程调度,才可以让各个进程很快速地、轮流地上CPU执行。这样才可以让用户在宏观上看,好像是各个进程在同时运行。

(3)中级调度

  刚才我们说过,计算机当中有可能出现内存资源不足的情况。内存里面此时存在多个进程的数据。

image-20230308191010895

  而如果内存不足的话,其实我们是可以让一些不太紧急、不太重要的进程,先把这些进程的数据从内存调出到外存。

image-20230308191039857

  如果一个进程的数据,把它从内存放入到了外存里面,那这个进程此时就处于挂起状态。操作系统会把这些进程的PCB组织起来成为一个队列,叫挂起队列。(类似于之前说过的就绪队列、阻塞队列)

  暂时调到外存等待的进程状态为挂起状态。被挂起的进程PCB会被组织成挂起队列

image-20230308191213786

  那此时已经有空闲的内存资源了,操作系统又可以通过某一种调度策略,来决定,到底要把哪个进程的数据先调回内存。这个就是中级调度管的事情,又叫内存调度。

image-20230308191348846

  中级调度(内存调度):按照某种策略决定将哪个处于挂起状态的进程重新调入内存。

  我们平时用手机的时候会有这样的体验:有时在切换程序(切换进程)的时候,有的时候会发现切换的很快,而有的时候切换的又很慢。有种可能的原因就是,当切换很快的时候,这个进程的数据有可能是位于内存里面的;而切换进程很慢的时候,有可能是因为那个进程的数据已经不在手机内存里,而是被系统调到了外存当中,所以当你切换到这个进程的时候,系统会发现,这个进程此时非运行不可了,它再把相关的数据从外存再读回内存。

  那么显然,在进程运行的生命周期内,有可能会多次调出、调入内存,所以中级调度发生的频率肯定要比高级调度的频率更高

补充知识:进程的挂起态与七状态模型

  刚刚提到了挂起状态。此处再补充一个与挂起状态相关的,七状态模型。

  暂时调到外存等待的进程状态为挂起状态(挂起态,suspend)

  挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。

  之前已经学习了进程的五状态模型。这是考研408里要求掌握的一种模型。

image-20230308192518216

  但对于一些自主命题的学校,也有可能要掌握七状态模型。总之了解一下。

  那么,在引入了就绪挂起、阻塞挂起两种状态之后,一个处于就绪态的进程,如果此时这个系统的负载比较高、内存空间已经不够用了,那么它有可能会把一个处于就绪态的进程,把它暂时调到外存当中,这个进程就进入了一个就绪挂起的状态。一直到内存空闲,或者这个进程急需进行,那么这个进程又会被激活,并把它相应数据挪回内存中。

  同样地,一个阻塞态的进程也可以被挂起,相应的也可以被激活、重新调入内存。

  而有的操作系统,对于处于阻塞挂起的进程,当它等待的阻塞事件发生的时候,这个进程会从阻塞挂起变为就绪挂起。之后,当它再被重新调回内存的时候,直接就是就绪态,而不是回到阻塞态。

image-20230308193039232

  还有的时候,一个进程处于运行态,当运行结束之后,可能这个进程下处理机的时候就会被直接放到外存当中,让它进入就绪挂起的状态。

  而有的时候,一个处于创建态的进程,当它创建结束之后、创建完PCB之后,有可能出现内存空间不够的情况,那这种情况下有可能,处于创建态的进程,创建之后处于就绪挂起的状态。

image-20230308193257053

  需要注意的是,“挂起”和“阻塞”的区别。

  这两种状态都是暂时不能获得CPU的服务,但区别在于,处于挂起态的进程,进程映像是放在外存里的;而处于阻塞态的进程,它的进程映像其实还在内存当中。

  有的操作系统,会把就绪挂起、阻塞挂起分为两个不同的挂起队列。还有的操作系统会把阻塞挂起的进程,根据阻塞原因不同,再把阻塞挂起队列细分为多个队列。

  以上就是七状态模型。

(4)三层调度的联系、对比

image-20230308193606060

小结

image-20230308193914382

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...