为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

江苏大学操作系统实验虚拟存储器 缺页中断 C#.txt

2017-12-22 6页 doc 18KB 29阅读

用户头像

is_212655

暂无简介

举报
江苏大学操作系统实验虚拟存储器 缺页中断 C#.txt江苏大学操作系统实验虚拟存储器 缺页中断 C#.txt using System; namespace ConsoleApplication1 { class array1 { //页表;页号、标志、主存块号、修改标志位、在磁盘上的位置 public static int[,] yb; public array1() { //页表数组 yb = new int[,] { { 0, 1, 5, 0, 011 }, { 1, 1, 8, 0, 012 }, { 2, 1, 9, 0, 013 }, { 3, ...
江苏大学操作系统实验虚拟存储器 缺页中断 C#.txt
江苏大学操作系统实验虚拟存储器 缺页中断 C#.txt using System; namespace ConsoleApplication1 { class array1 { //页;页号、标志、主存块号、修改标志位、在磁盘上的位置 public static int[,] yb; public array1() { //页表数组 yb = new int[,] { { 0, 1, 5, 0, 011 }, { 1, 1, 8, 0, 012 }, { 2, 1, 9, 0, 013 }, { 3, 1, 1, 0, 21 }, { 4, 0, -1, 0, 022 }, { 5, 0, -1, 0, 023 }, { 6, 0, -1, 0, 121 } }; } //初始化页表 //是否产生缺页中断 public bool qy(string[] a) { for (int i = 0; i < 4; i++) { //标识号为1 if (yb[i, 1] == 1) { if (yb[i, 0] == Int32.Parse(a[1])) return false; continue; } i++; } Console.WriteLine("产生缺页中断"); return true; } //输出页表情况 public void displayyb() { Console.WriteLine("页号" + " "+"主存块号" +" "+ "单元号" +" "+ "绝对地址"); for (int i = 0; i < 7; i++) { for (int j = 0; j < 5; j++) { Console.Write(yb[i, j] + " "); } Console.WriteLine(); } } //正常执行页表 public void exe(string[] a) { int k = 0;//记录页表执行页号下标 int addr = 0;//绝对地址 for (int i = 0; i < 4; i++) { if (yb[i, 0] == Int32.Parse(a[1])) { yb[i, 4] = Int32.Parse(a[2].ToString()); addr = (yb[i, 2] * 128 + yb[i,4]); k = i; } } char check = '0'; if (a[0] == "存" || a[0] == "取") check = '0';//不改变 else check = '1';//改变 switch (check) { case '0': Console.WriteLine(a[1] + "页号所形成的绝对地址为:" + addr); break; case '1': yb[k, 3] = 1; Console.WriteLine(a[1] + "页号所形成的绝对地址为:" + addr); break; } } public static void Main(String[] args) { int kk=0;//被替换的页表号 //执行表;操作符、页号、单元号 string [,]zxb=new string[,]{{"+","0","70"},{"+","1","50"},{"*","2","15"},{"存","3","21"},{"取","0","56"},{"-","6","40"},{"移位","4","053"},{"+","5","023"},{"存","1","037"},{"取","2","078"},{"+","4","001"},{"存","6","084"}}; array1 a1=new array1(); string[]a=new string[4]{null,null,null,null},b=new string[4]{null,null,null,null}; Console.WriteLine("当前页表情况:"); a1.displayyb(); for(int j=0;j<12;j++) { Console.WriteLine(); Console.WriteLine(); for(int i=0;i<3;i++) { a[i]=zxb[j,i]; } Console.WriteLine("当前访问情况操作符:"+a[0]+" 页号:"+a[1]+" 访问单元号:"+a[2]); //缺页中断 b=a; while((a1.qy(a)==true)) { for(int ii=0;ii<7;ii++) { if(yb[ii,0]==Int32.Parse(a[1].ToString())) { yb[ii,0]=yb[kk,0]; yb[ii,2]=yb[kk,2]; yb[ii,3]=yb[kk,3]; yb[ii,4]=yb[kk,4]; } continue; } yb[kk,0]=Int32.Parse(b[1].ToString()); yb[kk, 4] = Int32.Parse(b[2].ToString()); kk++;kk=kk-kk/4;//记录替换页表 } a1.exe(a); Console.WriteLine("更新后的内存表:"); a1.displayyb(); } } } }
/
本文档为【江苏大学操作系统实验虚拟存储器 缺页中断 C#&#46;txt】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索