操作系统算法&大题复习

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类似,但磁头只能单方向移动。当磁头移动到最外磁道并访问后,磁头立即返回到最里的预访问的磁道

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/syy0201/article/details/94299651