第一范文网 - 专业文章范例文档资料分享平台

操作系统实验六 - 虚拟存储器实验报告

来源:用户分享 时间:2025/5/25 16:38:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

请输入指令的页号、单元号,以及是否为存指令: 5 023 N out 1 in 5

请输入指令的页号、单元号,以及是否为存指令: 2 15 N 绝对地址=1167

请输入指令的页号、单元号,以及是否为存指令: 1 037 y out 2 in 1

请输入指令的页号、单元号,以及是否为存指令: 3 21 Y 绝对地址=149

请输入指令的页号、单元号,以及是否为存指令: 2 078 N out 3 in 2

请输入指令的页号、单元号,以及是否为存指令: 0 56 N out 4 in 0

请输入指令的页号、单元号,以及是否为存指令: 4 001 N out 5 in 4

请输入指令的页号、单元号,以及是否为存指令: 6 40 N out 1 in 6

请输入指令的页号、单元号,以及是否为存指令: 6 084 Y 绝对地址=1236

请输入指令的页号、单元号,以及是否为存指令: exit

数组P 的值为: P[0]=0

P[1]=4 P[2]=6 P[3]=2

五、系统不足与经验体会

系统的不足包括健壮性尚不够好,界面比较简单,对页表的 初始化需要修改程序。

经验体会:注意体会算法的精神,程序前后逻辑要一致。注 意测试时数据的全面性。 六、附录:源代码(带注释) #include #include #define SizeOfPage 100 #define SizeOfBlock 128 #define M 4 struct info//页表 {

bool flag; //标志 long block;//块号

long disk;//在磁盘上的位置 bool dirty;//修改标志 }pagelist[SizeOfPage]; long po;//队列标记 long P[M]; void init_ex1() {

memset(pagelist,0,sizeof(pagelist)); pagelist[0].flag=1; pagelist[0].block=5; pagelist[0].disk=011; pagelist[1].flag=1; pagelist[1].block=8; pagelist[1].disk=012; pagelist[2].flag=1; pagelist[2].block=9; pagelist[2].disk=013; pagelist[3].flag=1;

pagelist[3].block=1; pagelist[3].disk=021; }

void work_ex1() {

bool stop=0; long p,q; char s[128]; do {

printf(\请输入指令的页号和单元号:\\n\if (scanf(\{

scanf(\if (strcmp(s,\{ stop=1; } } else {

if (pagelist[p].flag) {

printf(\绝对地址=%ld\\n\} else {

printf(\} }

}while (!stop); }

void init_ex2() { po=0;

P[0]=0;P[1]=1;P[2]=2;P[3]=3; memset(pagelist,0,sizeof(pagelist));

pagelist[0].flag=1; pagelist[0].block=5; pagelist[0].disk=011; pagelist[1].flag=1; pagelist[1].block=8; pagelist[1].disk=012; pagelist[2].flag=1; pagelist[2].block=9; pagelist[2].disk=013; pagelist[3].flag=1; pagelist[3].block=1; pagelist[3].disk=021; }

void work_ex2() { long p,q,i; char s[100]; bool stop=0; do {

printf(\请输入指令的页号、单元号,以及是否为存指令:\\n\if (scanf(\{

scanf(\if (strcmp(s,\{ stop=1; } } else {

scanf(\if (pagelist[p].flag) {

printf(\绝对地址=%ld\\n\if (s[0]=='Y' || s[0]=='y') {

操作系统实验六 - 虚拟存储器实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8jlcn9bjex3fre38i3t3_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top