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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/asdfjklingok/article/details/119088805

智能推荐

matlab中fliter函数,用C语言实现MATLAB中Filter()函数-程序员宅基地

文章浏览阅读445次。#include#define Width 3 //滤波器门宽#define Inputlength 20//输入信号的个数void myfilter(int, float *, float *, int, float *, float *);int main() {int j,k;float a[3] = { 1,-1.5,0.25 };//分母系数向量,可自行设置float b[3] = { ..._用之前的乘积和减去分母系数与过去输出函数的乘积差

编程书籍分享(持续更新....)-程序员宅基地

文章浏览阅读665次,点赞4次,收藏7次。本页面分享IT技术书籍,所有的书籍均是完整的pdf,所有书籍都有看过(大部分没看完),都是我认为非常不错的书籍,分享给大家,放在csdn下载。下载积分都设置为1(csdn现在没办法设置成不用积分下载),但如果下载人数太多,csdn会自动把积分调高,如果没有积分的可以在下方留email,我会尽快发给你。课程书籍编程开发C++Linux编程Windows编程汇编PythonJa...

Linux内核笔记(驱动篇)之 【MMC里的轮询机制】_linux mmc驱动-程序员宅基地

文章浏览阅读208次。最近遇到客户提的一个问题,大概意思是他们的SDIO Wi-Fi在卸载Wi-Fi驱动后再加载就检测不到Wi-Fi设备了。从他的问题看大概是热插拔有问题。_linux mmc驱动

android入门之Activity Recents screen-程序员宅基地

文章浏览阅读252次。文档:https://developer.android.com/guide/components/activities/recents1.简介最近的屏幕是一个系统级 UI,也称为概览屏幕、最近的任务列表或最近的应用程序列出了最近访问的活动和任务。用户可以在列表中导航并选择恢复任务,或者从列表中移除。最近屏幕使用以文档为中心的模型(在 Android 5.0 中引入)其中包含不同文档的同一活动的多个实例可能在最近屏幕中显示为任务。Google Drive 可能对每一个文档都有_recents screen

ERROR: cannot launch node of type [map_server/map_server]: map_server_[error] [1688396936.736257295]: map_server excepti-程序员宅基地

文章浏览阅读2.2k次。如上图所示,版本号为:noetic根据ros版本号,进行安装:sudo apt-get install ros-noetic-map-server 将noetic换成你的版本号_[error] [1688396936.736257295]: map_server exception: operator[] call on a s

mariadb用户群体mysql_mysql(mariadb)新建用户及用户授权管理-程序员宅基地

文章浏览阅读54次。仅新建一个newuser用户方法一:MariaDB [(none)]> create user newuser@localhost identified by ‘123456’;Query OK, 0 rows affected (0.22 sec)MariaDB [(none)]> select user from mysql.user;+———+| user |+———+| ..._mariadb [(none)]> grant all privileges on *.* to root@'%' identified by '123

随便推点

外网电脑访问内网linux服务器(设置路由端口映射)_校外如何访问linux服务器-程序员宅基地

文章浏览阅读1.6w次。在日常工作中,我们往往遇到这种情况:我们在外网的一个客户端需要远程控制一个内网的linux服务器。要实现合格功能很简单。1,局域网内客户端登陆linux服务器 只需在客户端下载一个putty软件,打开putty后,在Host Name(or IP Address)处输入服务器的名字或者局域网内为服务器分配的IP地址即可(端口号为22,连接类型为SSH)。_校外如何访问linux服务器

地震信号分析与处理系统设计(matlab/simulink/labview)_地震信号检测与处理-程序员宅基地

文章浏览阅读1.3k次。地震信号分析总体方案设计;查阅资料,分析地震勘探原始地震信号的特点,绘制出其时域波形并加以分析;地震信号的频谱分析:查阅资料,分析不同类型的地震信号的频域特征,对地震信号做谱分析,绘制频域波形图;设计相应的滤波器去除地震信号的噪声:根据地震信号的频域特征,设计相应滤波器去除噪声;地震信号处理系统的时频分析:采用短时傅里叶变换对地震信号进行时频分析;地震信号处理系统GUI用户界面设计:针对设计的地震信号分析系统,利用GUI设计图形用户界面,实现系统的相关功能;基于LabView仿真。_地震信号检测与处理

第07课:动手实战基于 ML 的中文短文本聚类-程序员宅基地

文章浏览阅读1k次。关于文本聚类,我曾在 Chat《NLP 中文文本聚类之无监督学习》中介绍过,文本聚类是将一个个文档由原有的自然语言文字信息转化成数学信息,以高维空间点的形式展现出来,通过计算哪些点距离比较近,从而将那些点聚成一个簇,簇的中心叫做簇心。一个好的聚类要保证簇内点的距离尽量的近,但簇与簇之间的点要尽量的远。如下图,以 K、M、N 三个点分别为聚类的簇心,将结果聚为三类,使得簇内点的距离尽量的近,但簇与...

Spring中的BeanFactory与FactoryBean_beanfactory添加bean-程序员宅基地

文章浏览阅读315次。Spring中的BeanFactory与FactoryBean_beanfactory添加bean

android开发边框阴影,Android 卡片边框模糊阴影效果实现-程序员宅基地

文章浏览阅读785次。1. 使用标签内写多个套标签实现android:bottom="2dp"android:left="2dp"android:right="2dp"android:top="0dp" />android:bottom="2dp"android:left="2dp"android:right="2dp"android:top="0dp" />android:bottom="2dp"andr..._android 卡片阴影效果

SQL语句中单引号、双引号和反引号的区分_sql中区分引号吗-程序员宅基地

文章浏览阅读850次。单引号 ’ 和双引号 “在标准 SQL 中,字符串使用的是单引号。如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。MySQL对 SQL 的扩展,允许使用单引号和双引号两种。反引号 `反引号一般在Esc键的下方,和~在一起。它是为了区分MySQL的保留字与普通字符而引入的符号。 create table desc 报错 create t..._sql中区分引号吗

推荐文章

热门文章

相关标签