3.1处理机调度的层次与调度算法的目标
3.1.1处理机的调度层次
高级调度(长程调度或作业调度)
频率较低,通常几分钟一次
学要解决的:
一次接纳多少作业:允许多少作业同时在内存中运行
接纳那些作业:那些作业调入内存,取决于所采用的算法
低级调度(进程调度或短程调度)
哪个进程能获得处理器就执行哪个进程
三种类型的操作系统(批处理,分时,实时)都必须配置此级调度
中级调度(平衡负载调度或中程调度)
目的提高内存的利用率和系统吞吐量
实质是进程的内外存对换功能,将外存中具备运行条件的进程换入内存,而将内存中处于阻塞状态的某些进程换入外存
三种调度,进程调度运行频率最高,作业调度运行周期较长,中级调度处于两者之间.
进程调度:
进程任务
保存CPU现场信息
按照某种算法选取进程
把CPU分给进程
进程调度机制
排队器
分派器
上下文切换器
进程调度方式
(抢占的主要原则:优先级原则,短进程优先原则,时间片原则)
非抢占式调度方式
抢占调度方式
3.1.2处理机调度算法的目标
处理机调度算法的共同目标
资源利用率
![](https://i-blog.csdnimg.cn/blog_migrate/3faf0b7b646d4fbe149cbf6f8cdcb365.png)
公平性
平衡性
策略强制执行
批处理系统的目标
1.平均周转时间短
(周转时间:从作业提交给系统开始,到作业完成为止的时间)(意思就是所需的运行时间0.o?不是,应该是运行时间+到达时间)
Ti单个进程去周转时间
![](https://i-blog.csdnimg.cn/blog_migrate/13ecb4417d168e1e6ca22d67512aa031.png)
平均带权周转时间(W)=作业周转时间/作业运行时间>=1
2.系统吞吐量高
处理机利用率高
3.分时系统的目标
保障时间响应快
保证均衡性
4.实时系统的目标
保证满足截止时间的要求(主要用来评价实时系统)
保证可预测性
3.2作业与作业调度
3.2.1批处理系统中的作业
作业与作业步
作业:程序+数据+作业调度书(JCB)
作业步:"编译"作业步,"链接配装"作业步,"运行"作业步
作业控制块(JCB)
作业控制块(JCB)是作业在系统中存在的标志,保存了系统对作业进行管理和调度的所需的全部信息.
作业从进入系统到运行结束的三个阶段:收容,运行和完成.
作业运行的三个阶段后备状态运行状态和完成状态
作业调度被称为接纳调度
每次执行作业调度时都需要做出以下两个决定
接纳多少作业
接纳哪些作业
3.2.3先来先服务调度算法和短作业(SJF)优先调度
先来先服务调度算法(FCFS)
最简单的调度算法
作业调度和进程调度都是按照先后次序来进行
算法容易实现效率不高只顾及作业等候时间没考虑作业要求服务时间的长短,不利于短作业而优待了长作业
以下是关于先来先服务的例题和个人的解答过程:
![](https://i-blog.csdnimg.cn/blog_migrate/fcb1a6f05a01c89b4746d6275c69b96f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fad9afec61258f3a832e38e9a42d5e62.jpeg)
先来先服务调度算法(FCFS)有利于CPU繁忙型的作业,不利于I/O繁忙型的进程或作业
短进程优先调度算法
是以作业长度来计算优先级,作业越短优先级越高;
优点算法易于实现能有效地降低作业的平均等待时间
缺点:必须预知作业的运行时间
对长作业非常不利,对长作业的周转时间会明显地增长
采用该算法,无法实现人机交互
该调度算法完全未考虑作业的紧迫程度,故不能保障紧迫性作业能得到及时的处理
3.2.4优先级调度算法(PSA)和高响应比优先调度算法(HRRN)
优先级调度算法
用于作业调度和进程调度是选择若干个作业(放入内存)或进程(分配处理机)
优先权的种类:
静态优先权
在创立时确定的,在进程的运行整个运行时不会发生变化
动态优先权:
在创立时创建的优先权,可以随着进程的推进而改变;
高响应比优先调度算法
是一种动态优先权调度算法
既考虑了作业等待时间,又考虑了作业运行时间,既考虑短进程又不使长进程等待时间过长,但每次调度都会进行响应比的计算,会增加系统开销;
优先权变化规律:
![](https://i-blog.csdnimg.cn/blog_migrate/dbe8f70e2dac6a5afba50957ab35392b.png)
响应比(Rp):
![](https://i-blog.csdnimg.cn/blog_migrate/4fc77c5ded11e71d885750813c7ffc0a.png)
进程调度的任务:
保护处理机的现场信息
按照某种算法选取进程
把处理机分配给进程
进程调度的方式:
非抢占式:一个进程完成后再根据优先级选取进程进入处理机(大多数批处理系统)
抢占式:当优先级高的进程进入时,正在运行的进程中断移出内存,由优先级高的进程来运行(批处理:可以防止一个长进程长时间占用处理机;分时系统:只有抢占式才可能实现人机交互;实时系统:能满足实时系统的需求也就是能更快完成实时系统要求的进程)
轮转调度法
基于时间片的轮转
时间片的大小也会影响平均周转时间
q为时间片的大小
![](https://i-blog.csdnimg.cn/blog_migrate/0cae7a4afa446fc346c8ba66c76aa3f6.png)
语言有点能以表达,以下是轮转调度法图文解释
![](https://i-blog.csdnimg.cn/blog_migrate/8178c205433ebb0e71544c2b963b7b5e.jpeg)
优先级算法:略
多级反馈队列调度算法
设置多个就绪队列
每个队列都采用先来先服务算法
按队列优先级调度
最后一级队列采用时间片轮转法
![](https://i-blog.csdnimg.cn/blog_migrate/42411aaf51ea2d8668e5c7c00bdba90d.png)
以下是第三章作业:
既考虑作业等待时间,又考虑作业执行时间的调度算法是( D)。
A、先来先服务
B、短作业优先
C、优先级调度
D、高响应比优先
作业从进入后备队列到被调度程序选中的时间间隔称为( C )。
A、周转时间
B、响应时间
C、等待时间
D、触发时间
时间片轮转调度算法是为了( A)。
A、多个终端能够得到系统及时响应
B、使系统更高效
C、优先级较高的进程得到及时响应
D、需要CPU时间最少的进程最先运行
下面有关选择进程调度算法的准则中不正确的是( D )。
A、尽快响应交互式用户的请求
B、尽量提高处理机利用率
C、尽可能提高系统吞吐量
D、适当增长进程就绪队列的等待时间
进程调度算法采用时间片轮转调度算法,当时间片过大时,就会使时间片轮转算法转化为(A )调度算法。
A、先来先服务
B、短进程优先
C、高响应比优先
D、以上选项都不对
下列选项中,满足短作业优先且不会发生饥饿现象的是( D )调度算法。
A、先来先服务
B、非抢占式短作业优先
C、时间片轮转
D、高响应比优先
进程调度又称低级调度,其主要功能是( C )。
A、选择一个作业调入内存
B、选择一个内存中的进程调出到外存
C、选择一个外存中的进程调入内存
D、将一个就绪的进程投入运行
分时系统中,若当前运行的进程连续获得两个时间片,原因可能是( B )。
A、该进程的优先级最高
B、就绪队列为空
C、该进程最早进入就绪队列
D、该进程是一个短进程
三种主要类型的OS中都必须配置的调度是( C )。
A、作业调度
B、中级调度
C、低级调度
D、高级调度
死锁问题的讨论是针对( D )进行。
A、某个进程申请系统中不存在的资源
B、某个进程申请资源数超过了系统拥有的最大资源数
C、硬件故障
D、多个并发进程竞争独占型资源
有关资源分配图中存在环路和死锁关系,正确的说法是( D )。
A、图中无环路则系统可能存在死锁
B、图中无环路则系统肯定存在死锁
C、图中有环路则系统肯定存在死锁
D、图中有环路则系统可能不存在死锁
死锁的预防方法中,不太可能的一种方法是(C )。
A、破环互斥条件
B、破坏请求和保持条件
C、破坏不剥夺条件
D、破坏循环等待条件
产生死锁的原因可能是因为( C )。
A、进程释放资源
B、一个进程进入死循环
C、多个进程竞争资源出现了循环等待
D、多个进程竞争共享型设备
对资源采用按序分配策略能达到( B )的目的。
A、预防死锁
B、避免死锁
C、检测死锁
D、解除死锁
多个进程共享的系统资源不足时可能产生死锁,但是不适当的( B )也可能产生死锁。
A、进程优先权
B、资源的静态分配
C、进程的推进顺序
D、分配队列优先权
通常不采用( D )方法来解除死锁。
A、终止一个死锁进程
B、终止所有的死锁进程
C、从死锁进程处抢夺资源
D、从非死锁进程处抢夺资源
下列进程调度算法中,( D )可能会出现饥饿现象。
A、静态优先权算法
B、抢占式调度中采用动态优先权算法
C、分时处理中的时间片论战调度算法
D、非抢占式调度中采用FIFO算法
两个进程争夺同一个资源( C )。
A、一定死锁
B、不一定死锁
C、只要互斥就不会死锁
D、以上说法都不对
在处理死锁的方法中,属于“避免死锁”的策略是( B )。
A、资源的有序分配
B、银行家算法
C、优先级调度
D、高响应比优先
当进程调度采用优先级调度算法时,从保证系统效率的角度来看,应提高( B )进程的优先级。
A、连续占用处理器时间长的
B、在就绪队列中等待时间长的
C、以计算为主的
D、用户
一个作业8:00到达系统,估计运行时间为1h.若10:00开始执行该作业,其响应比是(C )。
A、2
B、1
C、3
D、0.5
假设有5个批处理作业几乎同时到达系统,它们估计运行时间为10,6,2,4,8分钟,优先级分别为3,5,2,1,4(5为最高优先级)。若采用优先级调度算法,则平均周转时间为( C )分钟。
A、6
B、10
C、20
D、24
设系统中有n个并发进程,共同竞争资源X,且每个进程都需要m个X资源,为使该系统不会发生死锁,资源X最少要有(C )个。
A、n*m+1
B、n*m+n
C、n*m+1-n
D、无法预计
若进程P一旦被唤醒就能够投入运行,系统可能为( B )。
A、分时系统,进程P的优先级最高
B、抢占调度方式,就绪队列上的所有进程的优先级都比进程P低
C、就绪队列为空队列
D、抢占调度方式,进程P的优先级高于当前运行的进程
某系统采用银行家算法,则下列叙述正确的是( B)。
A、系统处于不安全状态时一定会发生死锁
B、系统处于不安全状态时可能会发生死锁
C、系统处于安全状态时一定会发生死锁
D、系统处于安全状态时可能会发生死锁
系统中有四个进程P1、P2、P3、P4,有四种类型的资源:A、B、C、D。系统最初四类资源总数为(5,7,7,2)。P1、P2、P3、P4的对各类资源的最大需求分别为(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0时刻P1、P2、P3、P4已经分配到的资源分别为:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。问TO时刻系统的可用资源向量是( C )。
A、(1,1,2,2)
B、(1,2,2,1)
C、(1,0,2,0)
D、(2,1,2,1)
系统中有四个进程P1、P2、P3、P4,有四种类型的资源:A、B、C、D。系统最初四类资源总数为(5,7,7,2)。P1、P2、P3、P4的对各类资源的最大需求分别为(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0时刻P1、P2、P3、P4已经分配到的资源分别为:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。问TO时刻P3的需求矩阵是( B )。
A、(1,2,3,1)
B、(1,2,2,1)
C、(1,2,3,2)
D、(2,2,3,1)
系统中有四个进程P1、P2、P3、P4,有四种类型的资源:A、B、C、D。系统最初四类资源总数为(5,7,7,2)。P1、P2、P3、P4的对各类资源的最大需求分别为(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0时刻P1、P2、P3、P4已经分配到的资源分别为:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。问TO时刻的安全序列是
( D )。
A、{P3,P4,P1,P2}
B、{P1,P4,P3,P2}
C、{P2,P4,P3,P1}
D、{P4,P3,P1,P2}
系统中有四个进程P1、P2、P3、P4,有四种类型的资源:A、B、C、D。系统最初四类资源总数为(5,7,7,2)。P1、P2、P3、P4的对各类资源的最大需求分别为(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0时刻P1、P2、P3、P4已经分配到的资源分别为:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。问TO时刻P1请求资源(0,0,2,0),是否能实施资源分配?( A )。
A、是
B、否
在系统中有5个作业A,B,C,D,E,他们的到达时间分别为0,2,4,6,8。运行时间分别为3,6,4,5,2。系统采用FCFS调度算法的平均带权周转时间是(A)
A、2.56
B、3.4
C、6
D、8.6
在系统中有5个作业A,B,C,D,E,他们的到达时间分别为0,2,4,6,8。运行时间分别为3,6,4,5,2。系统采用SJF调度算法的平均带权周转时间是(A)
A、7.6
B、4
C、3.5
D、1.84
在系统中有5个作业A,B,C,D,E,他们的到达时间分别为0,2,4,6,8。运行时间分别为3,6,4,5,2。系统采用高响应比调度算法的平均带权周转时间是(C)
A、3
B、8
C、2.14
D、5