文档详情

模拟请求页式存储管理中硬件的地址转换和缺页中断.doc

发布:2017-06-15约3.46千字共6页下载文档
文本预览下载声明
课程名称 操作系统原理 实验名称 模拟请求页式存储管理中硬件的地址转换和缺页中断 姓 名 学 号 专业班级 实验日期 成 绩 指导老师 (①实验目的②实验原理③主要仪器设备④实验内容与步骤⑤实验数据记录与处理⑥实验结果分析⑦问题建议) 实验目的 模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断。 实验内容 内容:模拟请求页式存储管理中硬件的地址转换和缺页中断处理 思想:装入新页置换旧页时,若旧页在执行中没有被修改过,则不必将该页重写磁盘。因此,页表中增加是否修改过的标志,执行“存”指令和“写”指令时将对应的修改标志置成“1”表示修改过,否则为“0”表示未修改过。页表格式如下: 页号 标志 页架号 修改标志 在磁盘上位置 模拟算法流程 程序及截图 程序: #includeiostream #includeiomanip #includelist 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];//页号pPage int pSign[7]; int pStool[7];//页架号 int pModify[7];//修改标志 int pStation[7];//磁盘位置 static int z=0; void Store() { for(int i=0;i7;i++) { if(i4) { pSign[i]=1; } else pSign[i]=0; pPageNum[i]=i; pModify[i]=0; } int p1=1,p2=2,p3=3; for(i=0;i7;i++) { if(i3) { pStation[i]=p1; p1++; } else if(i6) { pStation[i]=p2; p2++; } else pStation[i]=p3; } pStool[0]=5; pStool[1]=8; pStool[2]=9; pStool[3]=1; } void CShow() { cout操作 ; cout页号 ; cout页内地址 ; cout标志 ; cout绝对地址 ; cout修改页号 ; cout页架号 ; cout绝对地址; coutendl; } void Find() { int m_Pagenum; int m_Station; int Y_Station;//绝对地址 int m_Stool; cout输入页号及页内地址查询操作:; cinm_Pagenumm_Station; CShow(); int i,j=0; //string m_Modify; for(i=0;i12;i++) { if(PageAddress[i]==m_Station) { break; } } Y_Station=pStool[m_Pa
显示全部
相似文档