考研操作系统常用算法归纳

进程管理

处理器调度

作业调度
  • 先来先服务:按照进入就绪队列的先后顺序分配处理机
  • 短作业优先:就绪队列中最快完成的作业获得处理机
  • 优先级调度:就绪队列中优先级最高的作业获得处理机(分抢占式和非抢占式)
  • 高响应比优先:考虑作业的等待时间和运行时间,高响应比作业获得处理机。响应比=(作业等待时间+估计运行时间)/估计运行时间
进程调度
  • 先来先服务:同上
  • 短作业优先:同上
  • 优先级调度:同上
  • 时间片轮转调度:适用于分时系统,就绪队列的所有进程依次获得处理机并执行相等的时间(时间片)后进入就绪队列队尾
  • 多级反馈队列调度:综合时间片轮转调度和优先级调度,设置多个就绪队列,优先级依次降低。新进程先进入第一队列队尾,如果在一个时间片内未完成,则进入第二个就绪队列队尾,依次向下。(就绪队列优先级越高时间片越短

死锁

死锁的避免
  • 银行家算法:根据已有的表格数据和资源确定是否可以找到一个安全序列,如果进程P获得资源后能够运行完,则将P所占有的资源回收到可用资源中。

内存管理

基础内存管理

连续分配管理方式
  • 单一连续分配
    原理:将内存分为两个区域,一个分配给操作系统。另一个分配给用户作业。
    缺点:只适用于单用户、单任务的操作系统,内存中只装入一道作业,会产生内部碎片

  • 固定分区分配
    原理:将内存分为多个固定大小的分区(大小可不等,但大小事先确定,运行时不可改变),采用静态重定位方式将程序装入内存。
    缺点:不能实现多个进程共享一个内存区,会产生内部碎片

  • 动态分区分配

    • 首次适应(First Fit,FF):每次为进程分配内存时都从队首开始找,顺着链表找到足够大的空闲分区。
    • 下次适应(Next Fit,NF):又称循环首次适应,将队列改成循环队列,在FF的基础上每次从上次找到的空闲分区的下一个分区开始找。
    • 最佳适应(Best Fit,BF):将空闲分区按容量递增的顺序排列,每次将满足空间大小的最小的空闲分区分配给作业,会产生很多碎片空间。
    • 最差适应(Worst Fit,WF):将空闲分区按容量递减的顺序排列,每次将满足空间大小的最大的空闲分区分配给作业
非连续分配管理方式(离散)
  • 分页存储
    原理:将作业地址空间分为多个大小相等的区域,成为页。主存的存储空间也分为大小相等的存储区域,成为块。将程序的页放到任意的块中,并构建页表(由页号和块号组成,反映页号和块号的一一对应关系)。
    注意事项:页号P=(int)(A/L)页内位移W=A%L (页面大小L,页表长度M,逻辑地址A,物理地址E)
    常规情况下存取一个数据需要访问两次内存,引入块表机构(TLB)后在命中的情况下只访问一次内存。分页存储不会产生外部碎片

  • 分段存储
    原理:将作业的地址空间分为若干个逻辑段,每个分段都有自己的名字,都从0开始编址。每一个进程都有一个段表(由段号,段长,该段内存起始地址组成)。分段存储不会产生内部碎片

  • 段页式存储
    原理:在分段存储的基础上,将每一段又分为若干个页。不会产生外部碎片但会产生内部碎片。

虚拟内存管理

页面置换算法
  • 最佳置换(Optimal,OPT):每次都淘汰以后不会再使用或以后最迟使用的页面。由于无法实现,只能作为衡量置换算法优劣的标准
  • 先进先出(First Input First Output,FIFO):每次淘汰最先进入内存的页面。
  • 最近最少使用(Least Recently Used,LRU):每次淘汰最长时间没有被使用过的页面。需要借助寄存器组和栈且效率最接近OPT。
  • 时钟置换(CLOCK):又称最近未使用(NRU),为每个页面设置一个访问位,当访问链中存在所请求的页时,该页访问位置为1,指针不变,否则,指针从上次被淘汰的页面的下一个位置开始循环遍历,当指针指向的页面访问位为1时,则将其清零,如果访问位为0,则淘汰此页面。
  • 改进型时钟置换:为每个页面添加记录其是否被更改的修改位,淘汰顺序:① 访问位=0 修改位=0, ② 访问位=1 修改位=0,③ 访问位=0 修改位=1,④ 访问位=1 修改位=1。
  • 最不常用置换(Least Frequently Used,LFU):每次淘汰到当前时间为止访问次数最少的页面。
  • 页面缓冲算法(Page Buffering Algorithm,PBA):空闲页面和已修改的页面会在内存中停留一段时间,为了减少IO次数,当修改页达到一定数目后再一起写入磁盘。

文件管理

磁盘调度算法

  • 先来先服务(First Come First Service):按进程请求访问磁盘的先后顺序进行调度。

  • 最短寻道时间优先(Shortest Seek Time First,SST F):选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。

  • 扫描/电梯调度(SCAN):服务在磁头当前移动方向上距离磁头最近的请求。

  • LOOK调度:在SCAN基础上,当磁头运动方向上无请求时立即改变运动方向。

  • 循环扫描(C-SCAN):磁头移动到最外侧磁道时立即返回到最里磁道,循环扫描。

  • C-LOOK调度:在C-SCAN基础上,当磁头运动方向上无请求时立即返回最里磁道。

    注:无特别说明的话,题目中的SCAN和C-SCAN指的就是LOOK和C-LOOK。

文章参考《2020王道操作系统》和《2020操作系统高分笔记-天勤》
原文地址:https://www.jhxblog.cn/article/?articleid=11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举个锤子²³³³

有钱的捧个钱场,没钱的借去

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值