- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本分页存储管理的模拟实现 学 院 专 业 学 号 学 生 姓 名 指导教师姓名 2014年03月 18日 目 录 一、设计目的与内容 二、各个功能模块 三、主要功能模块流程图 四、系统测试 五、结论 六、源程序及系统文件使用说明 一、设计目的与内容 C 语言进行程序设计的能力。 设计内容: 根据设计要求实现对基本分页存储管理的模拟 设计要求: 1. 选择恰当的数据结构表示页表 2. 进程名,进程所需页数,进程进行的操作(装入/退出)等操作可有键盘输入,也 可从文件读出。 3. 每进行一次进程的装入或者退出操作,就显示出操作执行后内存中各页的分配情 况。 所采用的数据结构: typedef struct LNode{ int f; //进程号 char name[8]; //进程名 int size; //进程大小 int n; //进程页数 int ye[100]; //页表,下标表示页号,内容表示进程各页所在物理块 struct LNode *next; }LNode,*LinkList; 二、各个功能模块 主要功能模块流程图 四、系统测试 主界面: (显示程序的各个功能块) 1、选择1,运行界面如下: (选择1,输入进程名,显示内存物理块分配情况) 2、选择2,运行界面如下: (显示2回收进程,若进程名输入错误,则显示进程不存在,) 3、选择3,运行界面如下: (显示进程r的内存使用情况,0表示未用) 五、结论 在这次课程设计中,我清楚的认识理论到到实践的重要性,经过实际的动手操作不仅提高了我的动手能力还提高了我把理论转化成实践的能力。 实验中对页表的定义如下(采用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号):如ye [100] 六、源程序及系统文件使用说明 #include stdio.h #include stdlib.h #include string.h #include conio.h #include ctime //#include string //#define y 0; char A[100]; //内存物理块,0:未使用, int max = 99; //记录内存的物理块数,值为A[100]最大下标 int count = 100; //记录内存未使用物理块数 typedef struct LNode{ char name; //进程名 int n; //进程页数 int ye[100]; /*进程各页所在物理块,页表实验中对页表的定义如下(采用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号): */ struct LNode *next; }LNode,*LinkList; //内存初始化 void CreatA() { int i = 0; for(i = 0;i = max; i++) A[i] = 0; } //建立新进程 void NewNode(LinkList L) { char ch; int i; int m; LinkList p; LinkList new_node; printf(\n *****输入进程名称:***** ); ch = getche(); p = L; while(p != NULL) //查找进程名是否重复 { if(p-name != ch) p = p-next; else { printf(\n*****进程名 %c 已存在,请重新输入:*****,ch); ch = getche(); p = L;//p重新指向头结点 } } printf(\n*****输入进程 %c 的页数:*****,ch); scanf(%d,i); while(i 1) { printf(\n*****请重新输入进程 %c 的页数:*****,ch); scanf(%d,i); } if(i count) { printf(\n*****内存物理块不足,新建进程 %c 失败!!!*****\n\
文档评论(0)