OS知识总结(2)

来源:互联网 发布:长城证券交易软件下载 编辑:程序博客网 时间:2024/06/05 13:23

2.虚拟内存管理

1.几个虚拟内存的基本概念

1.传统存储管理的方式特征:多进程同时保存在内存中用来实现多线程并发,所以有一次性:必须全部装入才运行;驻留性:一直存储在内存中,不会置换出去;
2.原理:快表、页面高速缓存、虚拟技术都属于高速缓存技术;都是依赖局部性原理:有时间+空间的局部性;
3.虚拟存储器:只是提供部分装入、请求调入、置换功能后,但是感觉好像存在一个比实际大的物理内存的存储器;
4.要用离散分配的内存的方式来存储;
5.实现:请求页面管理的方式

2.页面置换算法

最有意思也是最好玩的来了!
都以7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1举例
1.最佳置换算法(OPT)
不可预知进程后面需要哪个页面, 所以不可实现,但是作为评价标准,用来衡量其他算法!
简单计算:根据后面的页面先换出1.永不使用2.最长时间内不在访问的页面;
2.先进先出页面置换算法(FIFO)
用队列数据结构实现依次进入的页面,置换出队头元素;
问题:有时候会出现物理块增加,但是页面置换次数更多的现象,称为Belady异常;
3,最近最长时间未使用置换算法(LRU)
实现:为每个进来的页面设置一个访问字段,来记录自上次被访问以来所经历的时间,每次置换出去字段值最大的,也就是最长时间未使用的;
优缺点:性能好、用堆栈来实现,堆栈算法,实现起来困难;
4.时钟算法(Clock)(NRU最近未用算法) (折中的选择,介于LRU和FIFO之间)
思想:循环扫描每帧(就是存放页面的地方):给每帧加个使用位,
只要页面装入帧中,就设置为1,意思是使用了他,当后面访问到时,也设置为1;
替换算法:让指针指向集合的下一帧,,当要替换就开始扫描,总体是把使用为0的给替换掉,如果循环到某个为1的就重新设置为0,这样子全循环完毕,回到开始位置就把第一个换出去了;
5.升级版CLOCK算法:
就是给每帧额外加个修改位:这样子每帧就有4中情况:(按照顺序依次替换)
1)u = 0,m = 0;最近未被访问,也未被修改
2)u = 0,m = 1;最近未被访问,被修改
3)u = 1,m = 0;最近被访问,未被修改
4)u = 1,m = 1;最近被访问,也被修改
也是同理CLOCK算法,依次循环,依次取1,2,3,4的顺序执行,
期间也是循环不是想要的话 需要把使用位(u)置为0;
这样子最后总是把1,2给换出去了;
备注添加:晚自习回来的路上和舍友讨论这个问题,我自己在脑海中想了遍阐述了遍:大概得到的结果是:升级版的CLOCK,考虑这么一种情况:假如扫描的缓冲区都使用了,则需要循环遍历1整遍回到起点才替换掉, 但是 因为添加了修改位,就不需要遍历1整遍了,同是1的情况下,看下修改位就可以确定要不要替换掉了,所以升级了!

总结:原则:
尽可能保留曾经使用过的页面,淘汰未使用过的页面!

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 跑步机钥匙丢了怎么办 跑步机磁铁丢了怎么办 瑜伽拉筋拉伤了怎么办康复 大腿拉筋拉伤了怎么办 肚子饿的咕咕叫怎么办 手表折叠扣松了怎么办? 手表链扣松了怎么办? 原车挡泥板碎了怎么办 车检通不过的车怎么办 车子被轻微刮了怎么办 车龙门架弯了怎么办 材料合格工地非说不合格怎么办 汽车翼子板撞过弄好缝隙大怎么办 手表秒针摔掉了怎么办 元征升降机泄压怎么办 自拍杆的杆子往下下滑怎么办 小狗被车压了一下拉血怎么办 有鬼给你磕头让你不好怎么办 腿又粗又短怎么办 腿又短又粗怎么办 因跑步小腿变粗怎么办 健身后小腿变粗怎么办 打非洲鼓打的手疼怎么办 无塔供水压力小怎么办 家用增压水塔压力不稳定怎么办 蝴蝶耳堵比较紧怎么办 跑步机踏板坏了怎么办 遥控器电池没电了怎么办 空调遥控器电池没电了怎么办 想要自慰家里没有情趣用品怎么办 对政协提案的答复有意见怎么办 邻居在自建房养殖鳖怎么办 江桥全民健身卡怎么办 南翔全民健身卡怎么办 椭圆机皮带断了怎么办 不小心扭腰了怎么办 扭腰之后腿疼怎么办 扭腰怎么办吃什么补 湖州奥体中心怎么办卡 学车把教练投诉了怎么办 白球鞋鞋边发黄怎么办