某虚拟存储系统采用最近最少使用(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
某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧相关推荐
- 在一个请求分页系统中,分别采用 FIFO、LRU和 OPT页面置换算法时,假如一个作业的页面走向为 4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为 3、4时,
页面置换算法 题目: 在一个请求分页系统中,分别采用 FIFO.LRU和 OPT页面置换算法时,假如一个作业的页面走向为 4.3.2.1.4.3.5.4.3.2.1.5,当分配给该作业的物理块数M分别 ...
- 【软考学习13】图解页面淘汰算法,先进先出算法、最近最少使用算法
本文讲解了操作系统中进程读内存时,维护高速缓存的页面淘汰算法,其中重点讲解了先进先出算法和最近最少使用算法,学习高速缓存 Cache 提高程序执行效率的原理. 一.为什么要用页面淘汰算法 在计算机的存 ...
- 看动画轻松理解「链表」实现「LRU缓存淘汰算法」
作者 | 程序员小吴,哈工大学渣,目前正在学算法,开源项目 「 LeetCodeAnimation 」5500star,GitHub Trending 榜连续一月第一. 本文为 AI科技大本营投稿文章 ...
- 算法必知 --- LRU缓存淘汰算法
作者:_code_x 链接:https://www.jianshu.com/p/b7fed77324b9 写在前 就是一种缓存淘汰策略. 计算机的缓存容量有限,如果缓存满了就要删除一些内容,给新内容腾 ...
- 数据结构与算法 / LRU 缓存淘汰算法
一.诞生原因 缓存是一种提供数据读取性能的技术,在硬件设计.软件开发中有广泛的应用,比如常见的 CPU 缓存,DB 缓存和浏览器缓存等.但是缓存的大小是有限的,需要一定的机制判断哪些数据需要淘汰,即: ...
- 06 | 链表(上):如何实现LRU缓存淘汰算法?
缓存 作用 缓存是一种提高数据读取性能的技术,在硬件设计.软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存.数据库缓存.浏览器缓存等等. 淘汰策略 常见的策略有三种:先进先出策略 FIFO(F ...
- 看动画轻松理解「链表」实现「 LRU 缓存淘汰算法」
作者 | 吴至波 责编 | 胡巍巍 快速挑战Python全栈工程师: https://edu.csdn.net/topic/python115?utm_source=csdn_bw 前几节学习了「链表 ...
- 看动画理解「链表」实现LRU缓存淘汰算法
前几节学习了「链表」.「时间与空间复杂度」的概念,本节将结合「循环链表」.「双向链表」与 「用空间换时间的设计思想」来设计一个很有意思的缓存淘汰策略:LRU缓存淘汰算法. 循环链表的概念 如上图所示: ...
- 操作系统——页面淘汰算法
地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断.当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间.而 ...
- leetcode刷题:LRU缓存淘汰算法
题目: 分析: 计算机的缓存容量有限,如果缓存满了就要删除一些内容,给新内容腾位置.但问题是,删除哪些内容呢?我们肯定希望删掉哪些没什么用的缓存,而把有用的数据继续留在缓存里,方便之后继续使用.那么, ...
最新文章
- Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...
- 【Python】20个小技巧,让数据可视化图表更专业!
- 20165230 2017-2018-2 《Java程序设计》第9周学习总结
- 我在美国与“狼”共舞的日子(7)
- r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识
- 【总结】C++逻辑与或
- 手机连接WIFI后无法上网,是怎么回事?
- 双向链表中基本函数的实现
- linux在当前目录下打开终端,linux - 终端:在窗口中打开当前路径? - Ubuntu问答...
- fedora yum无法正常运行问题的解决
- Hadoop - 任务调度系统比较
- Java并发编程之ReentrantReadWriteLock详解
- 谭浩强版本C语言课后习题第二章
- OA 系统中的流程管理
- 在ourdev上看的一个帖子
- 他称向导师下跪,仍被强制退学,5年博士白读,双方各执一词,同门师兄也有回应!...
- 思维导图带你了解22个职场学习网站!亲测好用
- Comparable
- EditPlus格式化xml文档
- FPGA数字时钟(可暂停调数,含代码)