缺页中断例题解答
- 格式:doc
- 大小:26.00 KB
- 文档页数:1


考研操作系统-内存与虚拟(三)(总分:212.00,做题时间:90分钟)一、判断题(总题数:11,分数:44.00)1.页式存储管理中,用户应将自己的程序划分成若干大小相等的页面。
A.正确B.错误√用户无需将程序划分为页面,这个工作由操作系统自动完成。
判断下面关于存储器管理功能的论述是否正确:(分数:8.00)(1).即使在多道程序设计环境下,用户也能设计用内存物理地址直接访问内存的程序。
A.正确√B.错误在多道编程时,用户可使用汇编指令或其他特殊指令来分配使用物理内存空间。
(2).为了提高内存保护的灵活性,内存保护通常由软件实现。
A.正确B.错误√内存保护通常由硬件实现,目的是提高内存访问的效率。
(3).交换技术已不是现代操作系统中常用的一种技术。
A.正确B.错误√现代的段式或段页式存储管理仍然使用交换技术。
(4).虚拟存储器能在物理上扩充内存容量。
A.正确B.错误√虚拟存储器并不增加物理上的内存容量,而是增加虚存容量。
2.按最先适应算法分配的分区,一定与作业要求的容量大小最接近。
A.正确B.错误√该算法是分配第一个能够容纳作业的分区,而这个分区并不一定与作业要求的容量大小最接近。
3.对于请求分页式存储管理系统,若把页面的大小增加一倍,则缺页中断次数会减少一半。
A.正确B.错误√页面大小的增加可导致缺页次数的减少,但它们之间的数量关系却并不清楚。
4.在一个分页系统中,根据需要,页面的大小可以不相等。
A.正确√B.错误页面确实可以依据需要进行调整,但一个系统同时使用几种页面尺寸容易导致管理复杂,因此并不常用。
判断以下有关可变分区管理的说法是否正确:(分数:8.00)(1).最差适应算法总是挑选最大的空闲区用于分割,使得剩下的分区仍可使用。
A.正确√B.错误(2).可变分区管理常采用的内存分配算法包括最先适应、最佳适应和最差适应算法。
A.正确√B.错误(3).最先适应算法实现简单,但碎片过多使内存空间利用率降低。
课程名称操作系统原理实验名称模拟请求页式存储管理中硬件的地址转换和缺页中断姓名学号专业班级实验日期成绩指导老师(①实验目的②实验原理③主要仪器设备④实验内容与步骤⑤实验数据记录与处理⑥实验结果分析⑦问题建议)一、实验目的模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断。
二、实验内容内容:模拟请求页式存储管理中硬件的地址转换和缺页中断处理思想:装入新页置换旧页时,若旧页在执行中没有被修改过,则不必将该页重写磁盘。
因此,页表中增加是否修改过的标志,执行“存”指令和“写”指令时将对应的修改标志置成模拟算法流程三、程序及截图程序:#include<iostream>#include<iomanip>#include<list>using namespace std;char useSign[12][5]={{'+'},{'-'},{'*'},{"存"},{"取"},{'-'},{"移位"},{'+'},{"存"},{"取"},{'+'},{"存"}};int PageAddress[12]={70,50,15,21,56,40,53,23,37,78,01,84};int PageNum[12]={0,1,2,3,0,6,4,5,1,2,4,6};int S_Station;int pPageNum[7];//页号pPageint pSign[7];int pStool[7];//页架号int pModify[7];//修改标志int pStation[7];//磁盘位置static int z=0;void Store(){for(int i=0;i<7;i++){if(i<4){pSign[i]=1;}elsepSign[i]=0;pPageNum[i]=i;pModify[i]=0;}int p1=1,p2=2,p3=3;for(i=0;i<7;i++){if(i<3){pStation[i]=p1;p1++;}elseif(i<6){pStation[i]=p2;p2++;}elsepStation[i]=p3;}pStool[0]=5;pStool[1]=8;pStool[2]=9;pStool[3]=1;}void CShow(){cout<<"操作";cout<<"页号";cout<<"页内地址";cout<<"标志";cout<<"绝对地址";cout<<"修改页号";cout<<"页架号";cout<<"绝对地址";cout<<endl;}void Find(){int m_Pagenum;int m_Station;int Y_Station;//绝对地址int m_Stool;cout<<"输入页号及页内地址查询操作:";cin>>m_Pagenum>>m_Station;CShow();int i,j=0;//string m_Modify;for(i=0;i<12;i++){if(PageAddress[i]==m_Station){break;}}Y_Station=pStool[m_Pagenum]*1024+m_Station;if(pSign[m_Pagenum]==1){if(strcpy(useSign[i],"存")!=0){pModify[m_Pagenum]=1;}}cout<<useSign[i]<<" ";cout<<m_Pagenum<<" ";cout<<m_Station<<" ";cout<<pSign[m_Pagenum]<<" ";if(Y_Station!=m_Station){cout<<Y_Station<<" ";cout<<" ";cout<<pStool[m_Pagenum]<<" ";cout<<Y_Station<<endl;}else{cout<<"*"<<m_Pagenum<<" ";for(j=z;j<7;j++){if(pSign[j]==1){z++;break;}}cout<<m_Pagenum<<"->"<<j<<" ";pStool[m_Pagenum]=pStool[j];pSign[j]=0;pStool[j]=0;cout<<pStool[m_Pagenum]<<" ";cout<<pStool[m_Pagenum]*1024+m_Station<<endl;}}int main(void){Store();char judge='Y';while(judge=='Y'){Find();cout<<"是否继续输入?Y = 是N=否"<<endl;cin>>judge;}return 0;}截图:五.心得体会在实验过程中,遇到了一些问题但是在调试的过程中,会出现很多错误,有的自己可以解决,也有一些在同学的帮助下,基本都解决了所有问题。
四、计算题1、某虚拟存储器的用户编程空间共32个页面,每页为1KB ,内存为16KB 。
假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:那么逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。
1.解:页式存储管理的逻辑地址分为两部分:页号和页内地址。
由条件“用户编程空间共32个页面〞,可知页号部分占5位;由“每页为1KB 〞,1K=210,可知内页地址占10位。
由“内存为16KB 〞,可知有16块,块号为4位。
逻辑地址0A5C 〔H 〕所对应的二进制表示形式是:000 1010 0101 1100,根据上面的分析,下划线部分为页内地址,编码 “000 10〞 为页号,表示该逻辑地址对应的页号为2。
查页表,得到物理块号是11〔十进制〕,即物理块地址为:10 11,拼接块内地址10 0101 1100,得10 1110 0101 1100,即2E5C 〔H 〕。
2、对于如下的页面访问序列:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5当内存块数量为3时,试问:使用FIFO 、LRU 置换算法产生的缺页中断是多少?写出依次产生缺页中断后应淘汰的页。
〔所有内存开场时都是空的,凡第一次用到的页面都产生一次缺页中断。
要求写出计算步骤。
〕2.解:采用先进先出〔FIFO 〕调度算法,页面调度过程如下:页面次序 1 2 3 4 1 2 5 1 2 3 4 5主存 页面 情况共产生缺页中断9次。
依次淘汰的页是1、2、3、4、1、2。
采用最近最少使用〔LRU 〕调度算法,页面调度过程如下:3、下表给出了某系统中的空闲分区表,系统采用可变式分区存储管理策略。
现有以下作业序列:96K 、20K 、200K 。
假设用首次适应算法和最正确适应算法来处理这些作业序列,试问哪一种算法可以满足该作业序列的恳求,为什么?空闲分区表页面次序 1 2 3 4 1 2 5 1 2 3 4 5 主存 页面 情况3.解:假设采用最正确适应算法,在申请96K 存储区时,选中的是5号分区,5号分区大小与申请空间大d,-致,应从空闲分区表中删去该表项;接着申请20K 时,选中1号分区,分配后1号分区还剩下12K ;最后申请200K ,选中4号分区,分配后剩下18K 。
考研操作系统-内存与虚拟(三)(总分:212.00,做题时间:90分钟)一、判断题(总题数:11,分数:44.00)1.页式存储管理中,用户应将自己的程序划分成若干大小相等的页面。
(分数:2.00)A.正确B.错误√解析:用户无需将程序划分为页面,这个工作由操作系统自动完成。
判断下面关于存储器管理功能的论述是否正确:(分数:8.00)(1).即使在多道程序设计环境下,用户也能设计用内存物理地址直接访问内存的程序。
(分数:2.00)A.正确√B.错误解析:在多道编程时,用户可使用汇编指令或其他特殊指令来分配使用物理内存空间。
(2).为了提高内存保护的灵活性,内存保护通常由软件实现。
(分数:2.00)A.正确B.错误√解析:内存保护通常由硬件实现,目的是提高内存访问的效率。
(3).交换技术已不是现代操作系统中常用的一种技术。
(分数:2.00)A.正确B.错误√解析:现代的段式或段页式存储管理仍然使用交换技术。
(4).虚拟存储器能在物理上扩充内存容量。
(分数:2.00)A.正确B.错误√解析:虚拟存储器并不增加物理上的内存容量,而是增加虚存容量。
2.按最先适应算法分配的分区,一定与作业要求的容量大小最接近。
(分数:2.00)A.正确B.错误√解析:该算法是分配第一个能够容纳作业的分区,而这个分区并不一定与作业要求的容量大小最接近。
3.对于请求分页式存储管理系统,若把页面的大小增加一倍,则缺页中断次数会减少一半。
(分数:2.00)A.正确B.错误√解析:页面大小的增加可导致缺页次数的减少,但它们之间的数量关系却并不清楚。
4.在一个分页系统中,根据需要,页面的大小可以不相等。
(分数:2.00)A.正确√B.错误解析:页面确实可以依据需要进行调整,但一个系统同时使用几种页面尺寸容易导致管理复杂,因此并不常用。
判断以下有关可变分区管理的说法是否正确:(分数:8.00)(1).最差适应算法总是挑选最大的空闲区用于分割,使得剩下的分区仍可使用。