zoukankan      html  css  js  c++  java
  • 操作系统也谈"算法"

    前言:
      近来在准备校招的笔试面试,复习到操作系统时感觉概念性的东西比较多,不过对于以下的几类算法还是有必要做个小小总结。

    【作业调度算法】

    先来先服务(FCFS, First Come First Serve)是最简单的调度算法,按先后顺序进行调度。

    短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。

    优先级算法(Priority Scheduling)是多级队列算法的改进,平衡各进程对响应时间的要求。

    时间片轮转法(Round Robin)是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。

    场景模拟:
    甲乙丙丁4人先后到银行办理业务,此时银行只有开放一个业务办理窗口,且工作人员尚未上班。
    1)FCFS:即谁排前面谁先办理业务,不管他业务需要花费多长时间。所以此时的办理顺序自然是:甲->乙->丙->丁
    2)SJF:假如甲乙丙丁办理业务的时间分别是:10,2,3,5。则按照SJF乙办理的业务时间比较短,故最先办理,最后办理的顺序为:乙->丙->丁->甲
    3)PS:不知道甲乙丙丁的具体办理业务时间,不过此时因为银行有规定办理对象优先权为:白金会员(丁) >青铜会员(丙) >普通会员(乙)> 非会员(甲)。所以此时,虽然丁最后才到达,不过他将是第一个办理的人,此时新的办理顺序为:丁->丙->乙->甲;
    4)RR:假设同(2),此时假设时间片为1,则甲乙丙丁依次办理且每次办理时间“1”之后必须轮到下一位业务办理者。此情况下虽然也是甲最先办理,不过只能办理“1”,可知最后完成业务的顺序为:乙->丙->丁->甲。

    【页面调度算法】

    1)最佳置换算法(OPT)
    2)先进先出置换算法(FIFO)
    3)最近最久未使用算法(LRU)
    4)时钟置换算法(CLOCK)

    情景模拟:
    系统为某进程分配了3个物理块,页面的走向为:7 0 1 2 0 3 0 4 2 3 .则各算法的缺页次数:
    1)6
    2)9
    3)8
    4)7

    【磁盘调度算法】

    1)先来先服务算法(FCFS)
    2)最短寻道时间优先算法(SSTF)
    3)扫描算法(SCAN)
    4)循环扫描算法(CSCAN)


    情景模拟:
    有一架智能电梯(可通过设置以上4种算法中的任一种进行操控)处于第50层,此时有10人同时进入。他们先后分别按了:12,34,7,19,81,23,52,88,92,1.依据以上 不同的算法电梯应该怎么运行?
    1)->12-34-7-19-81-23-52-88-92-1
    2)->52-34-23-19-12-7-1-81-88-92
    3)->52-81-88-92-34-23-19-12-7-1
    4)->52-81-88-92-1-7-12-19-23-34

    End!

  • 相关阅读:
    Linux 文件权限
    spak数据倾斜解决方案
    逻辑时钟
    kafka入门
    深入学习MySQL事务:ACID特性的实现原理
    程序员的诗
    java技术突破要点
    一个请求过来都经历了什么
    如何保持长时间高效学习
    你的系统如何支撑高并发
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/4750943.html
Copyright © 2011-2022 走看看