精华内容
下载资源
问答
  • 低级调度
    万次阅读 多人点赞
    2021-06-10 18:05:47

    一般来说,作业进入系统到最后完成,可能经历三级调度:高级调度、中级调度和低级调度。

    1. 高级调度(作业调度)
      按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竟争处理机的权利。
      高级调度是辅存(外存)与内存之间的调度。每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,但调出的时机必然是作业运行结束才调出。
    2. 中级调度(内存调度)
      为了使内存中的内存不至于太多,有时需要把某些进程从内存中调到外存。在内存使用情况紧张时,将一些暂时不能运行的进程从内存中对换到外存中等待。当内存有足够的空闲空间时,再将合适的进程重新换入内存。
    3. 低级调度(进程调度)
      主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
    更多相关内容
  • 1、采用面向对象思想抽象仿真设计 CPU、寄存器、时钟中断等硬件部件 2、仿真实现进程 PCB 及其控制操作 3、多道程序的并发环境模拟 4、仿真实现进程低级
  • 操作系统之低级调度算法

    千次阅读 2021-01-26 21:27:12
    本章主要介绍计算机操作系统中的低级调度算法,包括先来先服务算法(FCFS),最短作业优先算法(SJF),最短剩余时间优先算法(SRTF),最高响应比优先算法(HRRF)

    本章主要介绍计算机操作系统中的低级调度算法,包括先来先服务算法(FCFS),最短作业优先算法(SJF),最短剩余时间优先算法(SRTF),最高响应比优先算法(HRRF)和相对应的平均作业周转时间和平均带权作业周转时间的计算方法。适用于普通本科院校的同学期末复习或计算机学院教师板书参考用。

    先来先服务算法(FCFS)

    先来先服务算法按照作业进入系统后备作业队列的先后次序来挑选作业,和名字一样,谁先到就先服务谁。是一种非剥夺式调度算法。用下面这个例子来具体说明:

    作业名所需CPU时间/ms
    作业128
    作业29
    作业33

    所以三个作业的周转时间为28ms,37ms,40ms(有同学可能会好奇为什么 第二个作业的周转时间是37ms而不是9ms,注意!是周转时间,周转时间指的是从作业到达后备作业队列到完成这个作业的时间,作业2的周转时间即28+9=37ms,即包括了在等待作业1做完的这段时间,同理作业3)

    故平均作业周转时间T=(28+37+40)/3=35ms

    FCFS算法的缺点是只顾及作业等待时间,未考虑作业要求服务时间的长短,就是不管多长时间的作业,只要是第一个来到的,就第一个服务,不能进行调度。如果按上面的例题把作业顺序调为2,1,3,那平均作业周转时间就缩短为约29ms。所以FCFS算法的平均作业周转时间与作业的提交和调度顺序有关

    最短作业优先算法(SJF)

    最短作业优先算法以进入系统作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。也是一种非剥夺式的算法。以下用例子来具体说明:

    作业名所需CPU时间/ms
    作业19
    作业24
    作业310
    作业48

    如表格所见,四个作业已经进入了系统的后备作业中,按照最短作业优先算法的要求,作业的调度顺序为2,4,1,3.

    则平均作业周转时间T为:
    T=(4+12+21+31)/4=17ms
    平均带权作业周转时间W为:
    W=(4/4+12/8+21/9+31/10)/4=1.98

    什么是平均带权周转时间?和平均作业周转时间有什么不同?
    看上面的计算过程可知,平均作业周转时间只是把周转时间加起来后除以对应的作业数量,平均带权周转时间则在每个作业的周转时间上除以每个作业的所需CPU时间,即带权周转时间=周转时间/所需CPU时间

    对比FCFS算法
    平均作业周转时间T为
    T=(9+13+23+31)/4=19ms
    平均带权作业周转时间W为
    W=(9/9+13/4+23/10+31/8)/4=2.61ms

    可见SJF算法的平均作业周转时间比FCFS要短。但是实现SJF算法要事先知道作业的运行时间,否则调度没有依据。

    最短剩余时间优先算法(SRTF)

    最短剩余时间优先算法是SJF算法的变种,SJF是非剥夺式的,SRTF是剥夺式的SJF。假设当前某进程/线程正在运行,如果有新进程/线程移入就绪队列,若它所需要的CPU运行时间比当前运行进程/线程所需要的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程/线程执行。以下用例题来具体讲解:

    进程到达系统时间所需CPU时间/ms
    p108
    p214
    p329
    p435

    注意看以下的步骤:

    ①p1在0开始执行,然后p2在时间1到达,由于p2的所需CPU时间小于p1,所以p2抢占了p1从而占用CPU
    ②当p2运行完后,时间已经到了5
    ③这个时候p3,p4也已经进入了就绪队列,但是p4的所需CPU时间小于p1和p3,故先运行p4
    ④p4运行完后,时间由5+5=10,这个时候由于p1所需CPU时间小于p3,所以先运行p1
    ⑤因为前面p1已经运行了1ms,所以现在p1只需要运行7ms,时间到了17
    ⑥最后运行p3,从17开始,加上p3所需要的9,所以完成时间是26

    故平均等待时间=((10-1)+(1-1)+(17-2)+(5-3))/4=6.5ms
    平均周转时间=((17-0)+(5-1)+(26-2)+(10-3))/4=13ms

    平均等待时间怎么算的?10-1,因为时间10后p1才开始执行,然后前面已经执行了时间1(执行了时间1后就被p2剥夺了),所以是10-1;p2是1-1,因为一进来就是时间1,因为是时间最短的就被当场执行;p3是17-2,因为P3达到系统时间是2,然后在时间17开始执行,所以是17-2;P4在时间3出场,时间5执行,所以是5-3。

    平均周转时间就是从进入到结束的时间,这里不再叙述。

    最高响应比优先算法(HRRF)

    最高响应比优先算法在进行调度时需要计算每个作业的最高响应比。
    响应比怎么算呢?
    最高响应比=作业周转时间/作业处理时间=(作业等待时间+作业处理时间)/作业处理时间=1+作业等待时间/作业处理时间
    根据谁的响应比最高来决定谁先执行
    以下用例题来具体说明:

    作业名到达系统时间所需CPU时间/ms
    作业1020
    作业2515
    作业3105
    作业41510

    执行HRRF算法计算过程如下:
    ①作业1执行完后,执行时间为20ms
    ②作业2的响应比为 1+15/15,怎么算的?到达系统时间5,等cpu等了时间15(这15ms作业1正在用CPU),所以响应比=(15+15) /15=1+15/15
    作业3的响应比为1+10/5,怎么算的?到达系统时间是10,等CPU等了时间10(这10ms作业1正在用CPU),所以响应比=(10+5)/5=1+10/5
    同理作业4也一样,是1+5/10。
    每个作业的响应比都要根据第一个作业来进行计算
    ③因为作业3的响应比最高,所以执行作业3,剩余作业的响应比为1+20/15、1+10/10
    ④所以执行为作业2后执行作业4
    平均作业周转时间T为
    T =(20+(25-10)+(40-5)+(50-15))/4=26.25ms
    平均带权作业周转时间W为
    W=(20/20+15/5+35/15+35/10)/4=2.46ms

    本例题来自书
    操作系统教程(第5版)费翔林 骆斌 编著
    p100-p105

    其余操作系统的算法可在博主空间找到!

    感谢大家浏览,谢谢!

    展开全文
  • 低级调度 总结 如果有不正确的话,欢迎指正。下面是个人理解。 高级调度 将作业调入内存,强调的是第一次。将作业调出内存,强调的是最后一次。 等待区——外存 座位——内存 筷子,一双——CPU,一个 等待...

    目录

    高级调度

    中级调度

    低级调度

    总结


    如果有不正确的话,欢迎指正。下面是个人理解。

    高级调度

    将作业调入内存,强调的是第一次。将作业调出内存,强调的是最后一次。

    等待区——外存

    座位——内存

    筷子,一双——CPU,一个

    等待区的人——作业

    管理员——操作系统

    现在在等待区有一个人很饿很饿,想要坐到座位上吃饭。

    管理员看他快坚持不住了,让他进去,并且询问了他的名字。相当于作业第一次进入内存。记下名字相当于在内存里有了 PCB。这个行为就是高级调度。

    中级调度

    那个人吃了一会出去了,然后又饿了,又想进去吃。

    管理员看到了,直接说:YYY(某个座位上的人)出去。XXX(等待区又饿了的那个人的名字,第一次进去吃记录下的)进来。这个行为就是中级调度。

     

    低级调度

    现在一个人拿着筷子吃饭,相当于一个进程在占用CPU。 

    另一个从正在吃饭的人手里拿到筷子。相当于CPU的使用权发生了转移。这一行为就是低级调度。

     

    总结

    高级调度:要伴随PCB的创建和销毁。事件是作业进出内存,第一次进和最后一次出。

    中级调度:PCB会改变,但是不是从无到有和从有到无。事件也是作业进出内存,但PCB一直在内存。

    低级调度:内存里的进程使用CPU的情况。事件是CPU使用权转移。

    展开全文
  • 处理机调度 调度的基本概念 当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是"调度"研究的问题。 举个有味道的例子: 现在有4个人要上厕所...

    调度


    调度的基本概念

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

    举个有味道的例子:
    现在有4个人要上厕所(他们几乎同时到达),他们分别需要使用厕所3分钟、10分钟、1分钟、4分钟。但是他们面前只有一个厕所,而且厕所里面只有一个马桶,那我们应该怎么确定他们上厕所的顺序呢?

    我们有以下的方案:

    1. 谁先来,谁就先用厕所。
    2. 谁需要使用的时间少,谁先用厕所。


    我们先说说第一种方案,这种方案很公平,谁先来谁先用,但是这样会产生一个问题。假如他们来的顺序是10分钟、4分钟、3分钟、1分钟,显然,采用这种方案的话,对于最后一个人,他上厕所1分钟要等17分钟,估计翔都憋不住了吧…
    我们再说下第二种方案,采用这种方案的话,虽然没有第一种方案公平,但是这4个人的整体平均等待时间是最少的。(平均等待时间 = 每个人等待的时间的和 / 人数)

    在上面的例子中,厕所就是资源,方案就是调度的规则,而调度就是安排他们上厕所。

    我们回到操作系统,在多道程序系统中,进程的数量往往是多于处理机个数的,这样就导致处理机不能并行的处理所有进程。处理机调度,就是从就绪队列中按照某种的算法选择一个进程并将处理机分配给它,以实现进程的并发运行。

    操作系统的调度有三个层次,分别是高级调度、中级调度和低级调度。下面分别介绍它们。

    高级调度 (外存 --> 内存)

    我们知道是计算机的内存空间是有限,所以有时操作系统无法将用户提交的作业全部放入内存 (在单道批系统时),因此操作系统就需要确定某种算法,决定作业调度内存的顺序。
    高级调度,就是按某种算法在外存中处于后备队列的作业中挑选一个(或多个)作业,给它分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竞争处理机的权利。
    高级调度是外存与内存之间的调度。在这里,每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,而调出的时机必然是作业运行结束后。
    这种调度就好像刚刚的上厕所问题,厕所外的人处于后备队列,而高级调度的任务就类似把人从厕所外调入到厕所内。


    在这里插入图片描述

    中级调度 (外存 --> 内存)

    背景:在引入了虚拟存储技术之后,操作系统可将暂时不能运行的进程调至外存等待。等它重新具备了运行条件且内存稍有空闲时,操作系统再把它调回内存。
    回顾一下,我们之前说过进程有几种状态,如 就绪态、阻塞态、运行态…,那被调到外存等待的进程处于什么状态呢?这些进程会处于挂起态。值得注意的,该进程的数据段和代码段会被调回外存,但PCB依旧会留在内存中的,并不会被调回外存,因为操作系统只有通过该进程的PCB,才能对其进行管理。被挂起进程的PCB会被操作系统放到挂起队列中。

    中级调度,就是决定将哪个挂起状态的进程从外存重新调回内存。
    注意和高级调度区分,虽然同样是从外存调到内存,但高级调度是调入,中级调度是调回。
    由于一个进程可能会被多次调出、调回内存,因此中级调度发生的频率要比高级调度的高。

    在这里插入图片描述

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

    暂时调到外存等待的进程状态为挂起态。挂起态其实又可以进一步细分为就绪挂起、阻塞挂起两种状态,于是,五状态模型现在变成了七状态模型。
    在这里插入图片描述 注意:

    • 注意"挂起态"和"阻塞态"的区别,两种状态都是暂时不能获得CPU的服务,但挂起态是将进程实体(除PCB外)调到外存,而阻塞态的进程实体还留存在内存中。
    • 有的操作系统不只把挂起态分为阻塞挂起和就绪挂起,甚至会根据阻塞原因的不同把阻塞挂起态的进程进一步细分为多个队列。

    低级调度 (内存 --> CPU)

    低级调度的主要任务是按照某种规则从就绪队列中选取一个进程,将CPU分配给它。低级调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置低级调度。而且低级调度的频率很高,一般几十毫秒一次。

    在这里插入图片描述

    又是一个有味道的例子

    故事背景:现在有很多个人想上厕所,他们面前有一间厕所,厕所里面有三个马桶。

    接下来,我们把厕所看作是内存,马桶看作是CPU,现在我们来看看这三种调度与这例子的类比。

    • 高级调度:研究怎么让还没进入过厕所的人进入厕所。(厕所外 --> 厕所内,之前一直在厕所外)
    • 中级调度:有的人进入了厕所,但是尿不出来,于是他们被赶了出去。中级调度就是研究怎么让这些被赶出去的人再次回到厕所。 (厕所外 --> 厕所内,之前进入过厕所)
    • 低级调度:研究怎么给厕所内的人分配马桶。(厕所内 --> 马桶上)

    总结

    在这里插入图片描述调度的算法会在下节介绍。

    感谢

    以上内容大部分来自王道操作系统系列视频教学。

    展开全文
  • 调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此需要确定某种规则来决定将作业调入内存的顺序。高级调度是按一定的原则从外存上处于...
  • 高级调度(作业调度)和低级调度(进程调度)的区别 作业调度为进程被调用做准备,进程调度使进程被调用。换言之,作业调度的结果是为作业创建进程,而进程调度的结果是进程被执行。 作业调度次数少,进程调度频率高。 ...
  • 0. 思维导图 1. 调度的基本概念 2. 调度的三个层次 2.1 高级调度( 作业调度) 2.2 中级调度(内存调度) 2.3 进程的挂起状态与七状态模型...2.4 低级调度(进程调度) 2.5 三层调度的联系和对比 3. 知识回顾与重要考点
  • 参考程序:处理机低级调度模拟系统.pdf
  • 处理机的高级、中级和低级调度

    万次阅读 2016-03-03 20:54:54
    处理机调度是为了解决多个进程或线程争夺CPU的问题。在多道程序系统中,通常会有...处理机的调度分为高级调度、中级调度和低级调度。1、高级调度高级调度发生在作业对应的新进程创建中,它决定一个进程是否被创建,或者
  • 进程调度的任务和机制进程调度任务 保存处理机的现场信息 按某种算法选取进程 把处理器分配给进程 进程调度机制进程调度方式非抢占方式一旦把处理机分配给某进程,就让它一直运行下去,直至该进程完成或阻塞时,才把...
  • 仿真设计进程 PCB、PCB表的数据结构 :1.1仿真进程并发的调度环境,设计和实现 PCB 控制块、进程创建、进程切 换、进程并发、进程阻塞和进程调度的算法 1.2 掌握进程调度的优先权法、时间片轮转法和多级反馈队列...
  • 2、调度算法 (1)先来先服务调度(FCFS):按照进程提交给系统的先后顺序来挑选进程,先提交的先被挑选。 (2)短进程优先调度(SJF):是以进入系统的进程所提出的“执行时间”为标准,总是优先选取执行时间最短的...
  • 3.1.1、高级、中级和低级调度(这三个调度其实都是对处理机进行分配,也就是处理机调度) 一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完成,可能需要经历三级调度: 1
  • 进程调度:也就是低级调度,按某种算法从就绪队列中选择一个进程为其分配处理机 当前进程主动放弃处理机 *进程正常终止 *运行过程中发生异常而终止 *进程主动请求阻塞(如 等待I/O) 当前进程被动放弃处理机 *分给进程...
  • 一、高级调度(外存->内存) 高级调度就是根据某种算法,从外存的后备队列中选取某些作业调入内存,为他们创建进程、分配必要的资源。 1. 作业 作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据...
  • 1.高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 答:高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。低级调度是保存处理机的现场信息,按某种算法先取进程,再把...
  • 操作系统 处理器调度

    2020-12-18 17:00:42
    处理器利用率和系统性能(吞吐量、响应时间)在很大程度上取决于处理机调度 需要解决的问题: WHAT:按什么原则分配CPU—进程调度算法 WHEN:何时分配CPU —进程调度的时机 HOW:如何分配CPU —CPU调度过程(进程的...
  • 进程的调度算法

    2019-10-26 14:59:34
    进程调度也称为低级调度(CPU调度),是按照某种调度算法(或原则)从就绪队列中选取进程分配CPU,主要是协调对CPU的争夺使用。 通常有以下两种调度方式: 1)非剥夺调度方式,又称非抢占方式 是指...
  • CPU的调度算法就是根据该系统的资源分配策略设计出来的一个资源分配算法,常用的调度算法有:先来先服务调度算法、短作业/短进程优先算法、时间片轮转调度算法、高响应比优先调度算法、优先级调度算法和多级反馈队列...
  • 低级调度:又称进程调度或短程调度,调度对象是进程(或内核级线程)。 主要功能:根据算法,决定就绪队列中哪个进程应该获得处理机,并由分派程序将处理机分配给选中的进程。进程调度是最基本的一种调度,在多道...
  • 甚至乎举步维艰,嘿嘿,下面我就对低级调度算法(应该是个蛮重要的考点,计算题)的一些概念做一下记录,总结一下,没准期末用的上。 关于作业(job)的一些基本概念、公式: 作业周转时间 = 作业完成时间点 - ...
  • 手中有粮,心中不慌。
  • 多进程cpu调度仿真

    2019-03-18 21:44:21
    多进程cpu调度仿真作业可以设置进程数和阻塞状态概况,从而计算出进程队列中的进程和每个进程所占有的时间片,可供操作系统课程学习使用
  • 目录 调度 调度时机 进程调度方式 ...进程都希望自己能够占用CPU工作,⼀旦操作系统把进程切换到运⾏状态,也就意味着...③低级调度:进程调度(最基本的一种调度) 五状态模型 七状态模型 调度时机 ..
  • 操作系统 | CPU调度

    2022-06-12 11:08:08
    操作系统---CPU调度策略相关。
  • 进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。 1.作业调度分别采用先来先服务算法,进程调度采用可抢占的优先级调度算法。 2.假定“预输入”程序已经把一批作业的信息存放在...
  • 低级调度 1.1 高级调度 高级调度:即作业调度,按照一定策略将选择磁盘上的程序装入内存,并建立进程。(存在与多道批处理系统中) 这里解释一下作业和进程的区别与联系 作业可分为:编译、链接、装入、和...
  • 低级调度:调度对象是进程。决定就续队列中的哪些进程能获得处理机。 1.2 调度算法目标 处理机调度算法最重要的共同目标就是提高CPU的利用率,同时能保证公平性就最好了。但是对于不同的系统有不同的要求。 像批处理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,392
精华内容 7,356
关键字:

低级调度

友情链接: VPrint.rar