栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧

软考系统架构设计师考这样的题,大家可能觉得有问题?

我对这个题的看法,

1. 首先作为一个架构师,需要了解操作系统的基础知识吧,这个绝对是没争议的,作为程序员必须要熟悉的基础,要了一定的层次,如果还不懂操作系统的知识,那还算是合格的架构师?

2. 这个题同样考察了一定的思维逻辑在里面,属于比较综合的题型,包括对一维数组、二维数组的理解,操作系统缺页中断的理解,高级语言嵌套循环的写法,等等,涉及到的知识比较广,又比较基础,所以是对一个人IT的基础知识的考察。

如果基础都不懂?架构师? 别闹了,后面还有排队的,你先靠后...

某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间,其中一个页面用来存放程序。现有某作业的
程序如下:
Var A: Array[1..100,1..100] OF integer;
i,j: integer;
FOR i:=1 to 100 DO
FOR j:=1 to 100 DO
A[i,j]:=0;
设每个页面可存放200个整数变量,变量i、j存放在程序页中。初始时,程序及i、j均已在内存,其余3页为空。若矩阵A按行序存放,那么当程序执行完后共产
生( )次缺页中断;若矩阵A按列序存放,那么当程序执行完后共产生( )次缺页中断。
A.50
B.100
C.5000
D.10000
 

A.50
B.100
C.5000
D.10000
 

若矩阵A按行序存放,什么意思呢?

什么是行序、什么是列序?由题意中描述的每个页面存放200个遍历,行序的意思就是,2行(100*100矩阵)的数据由一个页面存储,同理列序意思就是2列的数据由一个页面存储。

一图胜千言,我们看下绘解的过程吧!!!

矩阵为 100*100,我这里更喜欢叫它二维数组,那么存放了10000个数据,每200个数据可以存放到内存的一个页面中。

按行序存放的二维数组,每2行就可以占用一个内存页面,初始状态内存中的3个页面都是空的,那么访问第0和1行时,发生一次却也中断,访问2和3、4和5行的时候也会发生缺页中断。

 因为内存中只有3个页面空闲了,那么访问6和7行的时候,会按一定的算法淘汰掉之前用过的页面,也会发生缺页中断。

总结:对于二维数组,每2行发生一次缺页中断,总共100行,也就是总共发生了50次缺页中断。

按列序存储就不一样了, 二维数组中的第0列和第1列,存放在内存中的一个页面,第2和3列存放在内存中的一个页面,以此类推...

题目中的嵌套循环,是按行为单位遍历二维数组,所以访问Array[0,0]、Array[0,1]发生一次缺页中断,访问Array[0,2]、Array[0,3]时候又发生一次缺页中断,那么二维数组的一行就需要发生50次缺页中断,这就是所谓的系统“抖动现象”。一共需要访问100行数据,每行50次缺页中断,因此列序存储的缺页中断次数为5000次。

如何想深入了解操作系统存储管理、缺页中断问题,可以参考以下文章:

http://www.ylaihui.com/blog/article/9276?rootCategoryId=16

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908438.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号