进程调度算法
先来先服务FCFS
按照作业到达的先后次序进行调度
短作业优先SJF
以作业长短计算优先级
长短:作业所要求的运行时间
优先级调度PSA
外部赋予进程优先级
- 非抢占式:处理机被分配给一个进程后就一直执行下去直到进程完成或发生某事件导致进程放弃处理机。
- 抢占式:当出现优先级更高的进程,就停止原进程,开始新进程。
优先级的类型可以分为静态和动态。静态优先级在创建进程时确定,动态优先级是指优先级随着进程推进或等待时间增加而改变。
高响应比优先HRRN
动态优先级的实现,以响应比作为动态优先级。
响应比Rp = (等待时间+要求服务时间)/要求服务时间
时间片轮转调度RR
按FCFS把就绪任务排成队列,然后让就绪队列上每个进程每次只运行一个时间片。
银行家算法
当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全性算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。
例题:https://blog.csdn.net/qq_41541801/article/details/93765001
存储器管理
连续分配
动态分区分配
顺序搜索
首次适应FF
first fit从链首开始寻找,直到找到一个大小能满足要求的空闲分区。
循环首次适应NF
next fit从上次找到的空闲分区的下一个空闲分区开始查找。
最佳适应BF
best fit找出能满足要求,又是最小的空闲分区。
最坏适应WF
worse fit和BF相反,找满足要求又最大的空闲分区。
索引搜索
分页存储
页面结构
把进程的地址空间分成若干个页,对页加以编号。地址结构:
页号 | 位移量(页内地址) |
---|
页表
允许进程的各个页离散的存储在内存的任意物理块,所以需要页表来实现页号到物理块号的映射。
逻辑地址转物理地址:以页号为索引请求页表,得到该页的物理块号。拼接页内地址,形成完整的物理地址。
如果页表中不存在,则发生缺页中断,从外存找到对应页装载入内存并更新页表,可能涉及页表项的淘汰,此处根据规定的策略执行。缺页中断完成后要重新查页表。
快表TLB
放在cache里的页表,会先查TLB,未命中再去内存查页表,查到后会放进cache。
二级页表
将页表再次分页,逻辑地址被分为:
外层页号 | 外层页内地址 | 页内地址 |
---|
在逻辑地址转物理地址时,先根据外层页号去找第一级页表中映射的二级页表,然后在二级页表中根据外层页内地址找到对应页表项,得到物理块号,再拼接页内地址,形成物理地址。
页面置换算法
先进先出FIFO
最近最久未使用LRU
按最近访问时间排序
最近最少使用LFU
记录每页的访问次数,并按此排序
Clock/最近未用NRU
给每页设置一个访问位A。
当某页被访问时,访问位置1。
在选择要淘汰的页时,根据FIFO顺序对页表进行检查,如果走到尾就回到队首继续。对于一个页表项,如果访问位为0,则选择这页换出;如果是1,则置为0,继续向后找。
改进型Clock
算法和Clock一样,但增加了一个修改位M,用来标记装入后是否被修改。(考虑修改后写回成本)
淘汰优先级:
- A=0,M=0
- A=0,M=1
- A=1,M=0
- A=1,M=1
磁盘调度算法
磁盘调度算法的目标是是磁盘的平均寻道时间最小
先来先服务FCFS
根据进程请求访问磁盘的先后次序进行调度
最短寻道时间优先SSTF
找最近的
要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短
假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道
扫描调度SCAN
往返扫描
当磁头正在由里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样由里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向,由外向里移动。
循环扫描C-SCAN
磁头单向移动
变种
look就是如果后面没有请求,就直接回头。(电梯调度)
clook就是走到头后如果后面没有请求,不从头开始,从下个请求的位置开始。
在题目中给SCAN算法时默认按Look来(?)
文件存储空间管理
空闲区表法
与内存管理中的动态分区分配很类似,为一个文件分配连续的存储空间。同样可采用首次适应、最佳适应、最坏适应等算法来决定要为文件分配哪个区间。
构造一张空闲盘块表:
序号 | 第一空闲盘块号 | 空闲盘块数 |
---|---|---|
1 | 2 | 4 |
2 | 7 | 6 |
空闲链表法
空闲盘块链
把所有空闲盘块拉成一条链,每个盘块都有指向后继空闲盘块的指针。分配空间时就从链首摘下适当数目空闲盘块分配给用户,释放时就加在末尾。
空闲盘区链
一个盘区可以包含若干个盘块,也就是把盘块链再压缩。每个盘区除了包含指向下一个空闲盘区的指针,还有当前盘区所含盘块数的记录。分配时按首次适应算法,回收时也要注意合并。
位图法
用一块连续的空间的二进制位来记录盘块是否被使用。
成组链接法
空闲区表和空闲链表的组合