操作系统也谈"算法"
前言:
近来在准备校招的笔试面试,复习到操作系统时感觉概念性的东西比较多,不过对于以下的几类算法还是有必要做个小小总结。
【作业调度算法】
先来先服务(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!
操作系统也谈"算法"的更多相关文章
- 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树
http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...
- 【操作系统】银行家算法实现(C语言)
[操作系统]银行家算法实现(C语言) 注意:本人编码水平很菜.算是自己的一个总结.可能会有我还没有发现的bug.如果有人发现后可以指出,不胜感激. 1.银行家算法: 我们可以把操作系统看作是银行家,操 ...
- 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...
- 操作系统页面置换算法(opt,lru,fifo,clock)实现
选择调出页面的算法就称为页面置换算法.好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出. 常见的置换算法有以下四种(以下来自操作系统课本). ...
- 转 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...
- 操作系统,银行家算法模拟实现(Windows 环境 C++)
计算机操作系统课设需要,写了两个下午的银行家算法(陷在bug里出不来耽误了很多时间),参考计算机操作系统(汤子瀛) 实现过程中不涉及难度较大的算法,仅根据银行家算法的思想和步骤进行实现.以下为详细步骤 ...
- 操作系统 页面置换算法LRU和FIFO
LRU(Least Recently Used)最少使用页面置换算法,顾名思义,就是替换掉最少使用的页面. FIFO(first in first out,先进先出)页面置换算法,这是的最早出现的置换 ...
- 操作系统,时间片轮转算法的C语言实现Round Robin
#include "windows.h" #include <conio.h> #include <stdlib.h> #include <fstre ...
- 浅谈算法——AC自动机
在学习AC自动机之前,你需要两个前置知识:Trie树,KMP 首先我们需要明白,AC自动机是干什么的(用来自动AC的) 大家都知道KMP算法是求单字符串对单字符串的匹配问题的,那么多字符在单字符上匹配 ...
随机推荐
- 备战NOIP每周写题记录(一)···不间断更新
※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday ...
- python日期格式化与绘图
画一个量随着时间变化的曲线是经常会遇到的需求,比如画软件用户数的变化曲线.画随时间变化的曲线主要用到的函数是matplotlib.pyplot.plot_date(date,num).由于其第一个变量 ...
- 实现PD控制
尝试为场加入PD控制 在之前的模拟中,需要最小化一个能量函数H. 这样做的原因是,由理想约束的特性(约束反力垂直于虚位移),对于不含体积蒙皮的情况,可以推出 对于表面点,有 J^T * Σfs = 0 ...
- wk_02
Python 序列 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.序列都可以进行的操作包括索引,切片,加,乘,检 ...
- 2795: [Poi2012]A Horrible Poem
2795: [Poi2012]A Horrible Poem Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 484 Solved: 235[Subm ...
- caffe的python接口学习(3):训练模型(training)
如果不进行可视化,只想得到一个最终的训练model, 那么代码非常简单,如下 : import caffe caffe.set_device(0) caffe.set_mode_gpu() solve ...
- nios II--实验7——数码管IP软件部分
软件开发 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分:打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进 ...
- factor graph model
主实验 文慧:用户,商品,评分,review,ranking. 数据集:数据规模,论文源代码
- LeetCode Weekly Contest 8
LeetCode Weekly Contest 8 415. Add Strings User Accepted: 765 User Tried: 822 Total Accepted: 789 To ...
- ajax post(copy part)
srcpage var q=new XMLHttpRequest(); var data='usr=weidiao&pwd=haha'; data=encodeURI(data); var u ...