下图CSDN博客链接内容
https://blog.csdn.net/Houchaoqun_XMU/article/details/55539362
进程调度算法 | |
---|---|
先来先服务FCFS | |
短作业优先SJF | |
高响应比优先HRN | |
时间片轮转RR |
HRRN
高响应比优先调度算法(HRRN)
高响应比优先调度算法则是既考虑了作业等待的时间,又考虑了作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机的调度能力。
R1=1+等待/服务
=1+(开始-到达)/服务
算法实现
优先权的变化规律:
优先权= (等待时间+要求服务时间)/要求服务时间 = 响应时间/要求服务时间
由上式可以看出:
1.如果等待时间相同,则要求服务的时间越短,其优先权越高,类似短作业。
2.要求服务时间相同时,作业的优先权又取决于等待时间,类似先来先服务。
3。对于长作业的优先权,可以随等待时间的增加而提高,当其等待时间足够长时,也能获得处理机。
例题:
注意:对于高响应比优先算法(非抢占),第一个先到进程直接运行到结束,余下进程每次都要计算响应比,比较后响应比最大的那个进程先运行,依次到进程全部运行完成。
时间片轮转:
Q=1各时间点就绪队列
1.A
2.BA
3.ACB
4.CBDA
5.BDAEC
6.DAECB
7.AECBD
8.ECBDA
9.CBDAE
10.BDAEC B完成
11.DAEC D完成
12.AEC A 完成
13.EC
14.CE
15.EC
16.CE
17.EC E完成
18.C C完成
1.银行家算法
2.安全性算法
掌握例题
连续分配算法 | |
---|---|
1首次适应FF | |
2循环首次适应 | |
3最佳适应BF | |
4最坏适应WF |
例:
给定主存空闲区,按照地址从小到大排列位:100KB,500KB,200KB,300KB,600KB。现有用户进程依次为212KB,417KB,112KB,426KB。
(1)分别用首次适应算法,最佳适应算法和最坏适应算法将他们装入主存的哪个分区?
(2)哪个算法能最有效的利用主存?
解:按题意地址从小到大进行分区如图所示。
(1)1首次适应算法 212KB 选中分区2,这时分区2还剩288KB。417KB选中分区5,这时分区
5还剩183KB。112KB选中分区2,这时分区2还剩176KB。426KB无分区能满足,应该等待。(2分)
2最佳适应算法 212KB 选中分区4,这时分区4还剩88KB。417KB选中分区2,这时分区2还剩83KB。112KB选中分区3,这时分区3还剩88KB。426KB选中分区5,这时分区5还剩174KB。(2分)
3最坏适应算法 212KB 选中分区5,这时分区5还剩388KB。417KB选中分区2,这时分区2还剩83KB。112KB选中分区5,这时分区5还剩176KB。426KB无分区能满足,应该等待。(2分)
(2)对于该作业队列,最佳适应算法能最有效利用主存。
虚拟存储管理页面置换算法 | |
---|---|
1最佳置换算法OPT | |
2先进先出算法FIFO (队列思想) | |
3最近最久未使用LRU(栈的思想) |
好的页面置换算法,应具有较低的页面更换频率
最佳置换算法 :保证获得最低的缺页率。
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
先进先出置换算法:淘汰最先进入内存的页面
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
LRU(最近最久未使用)置换算法:选择最后一次访问时间距离当前时间最长的一页并淘汰之。
计算缺页中断次数+页面置换次数+缺页率
(由于运行进程太多,无法满足要求,频繁换进换出产生抖动现象)
引入硬件 | 引入软件 |
---|---|
控制器,通道,中断 | 驱动程序 |
磁盘调度算法 | |
---|---|
1先来先服务FCFS(按照先后顺序访问) | |
2最短寻道时间优先SSJF(要访问的与当前磁道最近) | |
3扫描算法SCAN(电梯调度算法) | |
4循环扫描算法CSCAN(当前一直移动到最大然后直接跳到最小的) |
例题:设某磁盘有200个柱面,编号为0, 1, 2, …, 199,磁头刚从140道移到143道完成了读写。若某时刻有9个磁盘请求分别对如下各道进行读写:86,147,91,177,94,150,102,175,130,试分别求FCFS,SSTF及SCAN磁盘调度算法响应请求的次序及磁头移动的总距离。
答:FCFS算法的调度顺序与请求顺序一致。SSTF算法总是先完成距当前存取臂最近的柱面上的输入输出请求。SCAN算法是存取臂从磁盘的一端出发,向另一端移动,遇到需要访问的柱面就完成访问请求,直至到达磁盘的另一端。到达磁盘的另一端后,存取臂的移动方向就倒转过来,继续完成这一方向的访问请求。(1分)
磁道号(排序后) | |
---|---|
177 | |
175 | |
150 | |
147 | |
143 | 开始 |
130 | |
102 | |
94 | |
91 | |
86 |
(1)采用FCFS算法调度时,磁头移动顺序为:
143→86→147→91→177→94→150→102→175→130(1分)
磁头移动总距离为:
(143-86) + (147-86) + (147-91) + (177-91) + (177-94) + (150-94) + (150-102) + (175-102) + (175-130) = 565(1分)
(2)采用Sstf算法调度时,磁头移动顺序为
143→147→150→130→102→94→91→86→175→177(2分)
磁头移动总距离是162(柱面) (1分)
(3)采用SCAN(电梯)算法调度时,磁头移动顺序为:
143→147→150→175→177→130→102→94→91→86(2分)
磁头移动总距离是125(柱面)。(1分)
(4)采用NSCAN(循环扫描)算法调度,磁头移动顺序为:
143→147→150→175→177→86→91→94→102→130
磁头移动总距离是169(柱面)。
逻辑结构/物理结构 | |
---|---|
索引 | |
索引顺序 | |
连续 | |
链接 |
描述当前磁盘中物理块的使用情况 | |
---|---|
空闲表 | |
空闲链表 | |
空闲分区 | |
位示图 |
处理进程间的同步与互斥问题:https://blog.csdn.net/yeyuangen/article/details/7361976
(1)程序空间的大小为32KB,32kb=25X210=215因此逻辑地址的有效位数是15位。
(2)内存空间的大小是16KB,16kb=24X210=214因此物理地址至少需要14位。
1.十六进制表示逻辑地址:
已知:用户编程空间共32个页面,25= 32 得知页号部分占5位,由“每页为1KB”,1K=210,可知内页地址占10位。
由“内存为16KB”,2^4=16得知块号占4位。
(1)一般情况页面大小占10位即2^10=1K, 2~6 位表示页号,后10位表示偏移量如下图
(2)若说明页面大小占11位即2^11, 1~5 位表示页号,后11位表示偏移量如下图
2.十进制表示逻辑地址:商表示页号,余数表示偏移量
页面大小为1024k页表如下图