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

【作业调度算法】

先来先服务(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!

操作系统也谈"算法"的更多相关文章

  1. 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树

    http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...

  2. 【操作系统】银行家算法实现(C语言)

    [操作系统]银行家算法实现(C语言) 注意:本人编码水平很菜.算是自己的一个总结.可能会有我还没有发现的bug.如果有人发现后可以指出,不胜感激. 1.银行家算法: 我们可以把操作系统看作是银行家,操 ...

  3. 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...

  4. 操作系统页面置换算法(opt,lru,fifo,clock)实现

    选择调出页面的算法就称为页面置换算法.好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出. 常见的置换算法有以下四种(以下来自操作系统课本). ...

  5. 转 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...

  6. 操作系统,银行家算法模拟实现(Windows 环境 C++)

    计算机操作系统课设需要,写了两个下午的银行家算法(陷在bug里出不来耽误了很多时间),参考计算机操作系统(汤子瀛) 实现过程中不涉及难度较大的算法,仅根据银行家算法的思想和步骤进行实现.以下为详细步骤 ...

  7. 操作系统 页面置换算法LRU和FIFO

    LRU(Least Recently Used)最少使用页面置换算法,顾名思义,就是替换掉最少使用的页面. FIFO(first in first out,先进先出)页面置换算法,这是的最早出现的置换 ...

  8. 操作系统,时间片轮转算法的C语言实现Round Robin

    #include "windows.h" #include <conio.h> #include <stdlib.h> #include <fstre ...

  9. 浅谈算法——AC自动机

    在学习AC自动机之前,你需要两个前置知识:Trie树,KMP 首先我们需要明白,AC自动机是干什么的(用来自动AC的) 大家都知道KMP算法是求单字符串对单字符串的匹配问题的,那么多字符在单字符上匹配 ...

随机推荐

  1. stl学习(三)crope的用法

    转载自http://blog.csdn.net/iamzky/article/details/38348653 曾经我不会写平衡树……于是在STL中乱翻……学到了pb_ds库中的SXBK的斐波那契堆. ...

  2. gnuplot 的安装

    需要同时安装gnuplot和gnuplot-x11才能画出图 sudo apt-get install gnuplot gnuplot-x11 gnuplot not showing the grap ...

  3. Java—Servlet开发

    Servlet API中有4个java包: javax.servlet:包含定义Servlet与Servlet容器之间契约的类与接口. javax.servlet.http:包含定义HTTPServl ...

  4. IE8以下不支持getElementsByClassName方法

    function getElementsByClassName(classStr,tagName,element){ tagName = (tagName || '*'); element = (el ...

  5. 全球首发免费的MySql for Entity Framework Core

    from:http://www.1234.sh/post/pomelo-data-mysql?utm_source=tuicool&utm_medium=referral Source 源代码 ...

  6. mysql下mysqladmin日常管理命令总结

    mysqladmin 工具的使用格式:mysqladmin [option] command [command option] command ......参数选项:-c number 自动运行次数统 ...

  7. @OBJC 和 DYNAMIC

    原文转载自:@OBJC 和 DYNAMIC 虽然说 Swift 语言的初衷是希望能摆脱 Objective-C 的沉重的历史包袱和约束,但是不可否认的是经过了二十多年的洗礼,Cocoa 框架早就烙上了 ...

  8. (原创)mybatis学习四,利用mybatis自动创建代码

    在使用mybatis的过程中,我们可以直接利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件,然后copy到工程中即可 需要的jar包如下 下载路径如下:下载jar包 其中的g ...

  9. VFS分析(二)基本数据结构(持续更新)

    nameidata /mnt/dir1/dir2/ nameidata结构体是一个临时的结构体, 目标是为了找到最后的dentry.

  10. mssql 2008 复制订阅

    广域网的复制订阅 准备工作: 1.a.b服务器创建相同的系统用户密码 2.在a服务器 sql server 配置管理器 创建别名 ip填写b服务器的ip, b服务器端口号 3.在b服务器  sql s ...