0x00 进程
生产者/消费者问题
(1)多生产者消费者, 多缓冲区
由于多缓冲区, 多生产者移动in指针, 多消费者移动out指针,所以需要临界区互斥(in,out为临界资源)
(2)单生产者单消费者,多缓冲区
由于单生产者和单消费者, 不会同时修改in和out指针, 所以不用临界区的互斥
(3)多或单生产者消费者, 单缓冲区
由于只有一个缓冲区, 不需要移动指针, 所以不用临界区的互斥
银行家算法
题型:判断状态是否安全,求安全序列,判断Pn进程是否能申请xx资源。
0x01 内存
1. 动态分区分配算法
- 首次适应:按照
地址从低到高
的顺序从空闲分区链/表的首地址开始寻找。 - 下次适应:按照
地址从低到高
的顺序从上一个分区的地址开始寻找。 - 最佳适应:按照空闲分区链/表的容量大小
从低到高
选择。 - 最坏适应:按照空闲分区链/表的容量大小
从高到低
选择。
题目如下
2. 页面置换算法
- OPT:淘汰
未来最久未被使用
的页面。 - LRU:淘汰
在驻留集停留时间最长
的页面。 - FIFO:淘汰
最先进来
的页面。 Clock
:
题目如下:
0x02 调度
处理器调度算法
- FIFO:把处理机分配给
最先进入
就绪队列的进程。 - 最短进程优先:选出
运行时间最短
的 - 最短剩余时间:
- 轮转:
- 最高响应比:选择
响应比最大
的
关于调度算法计算的一些公式:
周转时间 = 完成时间 - 提交时间 =服务时间 + 等待时间
等待时间 = 开始时间 - 提交时间
带权周转时间 = 周转时间 / 服务时间
响应比 = 周转时间 / 运行时间
计算例题:
答案如下:
0x03 磁盘调度
磁盘调度算法
- FCFS:按访问磁盘的
先后次序
进行调度 - SSTF:选择与当前磁道
距离最近
的。 - SCAN:选择与当前磁头
运动方向相同且距离最近
的,若当前方向无磁道需要访问,则磁头反向
运动。 - CSCAN:与SCAN类似,但磁头只能
单方向移动
。当磁头移动到最外磁道并访问后,磁头立即返回到最里的预访问的磁道
。