




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计报告 基本分页存储管理的模拟实现 学 院 计算机科学与技术 专 业 计算机科学与技术( 师范) 学 号 学 生 姓 名 指导教师姓名 2012年6月 20日一 、设计目的与内容 1、 课程设计的目的:操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑, 将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 进一步巩固和复习 作系统的基础知识。 培养学生结构化程序、模块化程序设计的方法和能力。 提高学生调试程序的技巧和软件设计的能力。 提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。2、 设计内容: 根据设计要求实现对基本分页存储管理的模拟 3、 设计要求: 选择恰当的数据结构表示页表 进程名,进程所需页数,进程进行的操作 (装入/退出)等操作可有键盘输入,也可从文件读出。 每进行一次进程的装入或者退出操作,就显示出操作执行后内存中各页的分配情况。二、算法的基本思想主要功能函数:Void creatA() /内存初始化函数void NewNode(LinkList &L) /建立新进程函数void FreeNode(LinkList &L) /回收进程函数void Printf(LinkList L) /显示所有进程信息void look(LinkList L) / 查看某个进程信息void showit() /显示内存块使用情况算法思想:通过creatA()函数将内存初始化,设置为未被占用,通过NewNode(LinkList &L)建立新进程,输入进程号、进程名、进程大小,并计算出该进程所需的页数,分配物理块。通过FreeNode(LinkList &L)删除你所要删除进程的一切信息,并空出内存。用Printf(LinkList L)显示以上两个函数产生的所有进程信息。look(LinkList L)可以查看某个进程信息。Showit()函数内存块使用情况。三、主要功能模块流程图 建立进程开 始p=L输入进程号new_node-f输入进程号次数j=0(j3,终止)p-f=new_node-f?Y进程存在,重新输入Np = p-next输入进程名称、大小进程页数n=size/1024若页内地址k!=0,n=n+1显示所需页数页数n物理块数? 内存物理块不足,新建进程失败YN分配内存物理块四、四、系统测试主要运行界面如下:建立进程:回收进程:内存使用情况:进程查看:五、结论 此基本分页存储管理模拟系统满足了基本要求,可以对进程进行内存块分配,并能对调用结束的进程回收内存块。用户界面设计为菜单模式,使用户能够容易使用。该程序不是通过页面映像表(即页表)显示。由于时间关系和知识储备不够,对文件读入程序无法实现。 六、源程序#include stdio.h#include stdlib.h#include string.hint A100; /内存物理块,0:未使用,非0:已使用int max = 99; /记录内存的物理块数,值为A100最大下标int count = 100;/记录内存未使用物理块数typedef struct LNodeint f; /进程号char name8;/进程名int size; /进程大小int n; /进程页数int ye100;/页表,下标表示页号,内容表示进程各页所在物理块struct LNode *next;LNode,*LinkList;/内存初始化void CreatA()int i = 0;for(i = 0;i f);j=0; while(p != NULL&jf!=new_node-f)p = p-next;elseprintf(n该进程已存在,重新输入:);scanf(%d,&new_node-f); p = L;/p重新指向头结点j+; if(jname);printf(n输入进程的大小:);scanf(%d,&new_node-size);new_node-n=new_node-size/1024;k=new_node-size%1024;if(k!=0)new_node-n=new_node-n+1;printf(所需要的页数为:);printf(%dn,new_node-n);if(new_node-n count)printf(n内存物理块不足,新建进程失败!nn);elsecount -=new_node-n;m = 0;for(i= 0; i= max; i+)if(Ai = 0 & m n) Ai=new_node-f;new_node-yem = i;m+;if(L = NULL)L = new_node;elsep = L;/查找最后一个节点while(p-next != NULL)p = p-next;p-next = new_node;new_node-next = NULL;else printf(n错误次数过多,返回主菜单:);/回收进程,释放内存void FreeNode(LinkList &L)LinkList p,q;int z;printf(请输入要删除的进程号:);scanf(%d,&z);p = L;/查找进程;用p记录q = p;while(p != NULL)if(p-f=z)printf(该进程已删除);break;elseq = p;p = p-next;if(p = NULL)printf(n该进程不存在!n);elsefor(int i = 0; i n; i+)Ap-yei = 0;count += p-n;if(p-f= q-f)/要删除的是头结点L = p-next;elseq-next = p-next;/显示所有进程占用的物理块void Printf(LinkList L)int i = 0;printf(n内存物理块分配情况:n);LinkList p = L;printf(n各进程信息:n);printf(进程号tt进程名称t进程页数t所用物理块n);while(p != NULL)printf(%dtt,p-f);printf(%stt,p-name);printf(%dtt,p-n);int i;for(i = 0;i n; i+)printf(%d,p-yei);printf(n);p = p-next;/ 查看进程void look(LinkList L)int z;printf(输入要查询的进程号);scanf(%d,&z);LinkList p = L;while (p!=NULL)if(p-f =z)printf(进程号tt进程名称t进程页数t所用物理块n);printf(%dtt,p-f); printf(%stt,p-name); printf(%dtt,p-n); int i; for(i = 0;i n; i+) printf(%d,p-yei); printf(n);break;else p=p-next; if(p=NULL)printf(要查询的进程不存在n);/显示内存块使用情况,不分进程void showit()int i = 0;printf(n*n);printf(| 内存物理块分配情况 |n);printf(*n);for(i = 0; i = max; i+)printf(%dt,Ai);if(i%10 = 9)printf(n);void main()CreatA();printf(n* 基本分页算法 *n); LinkList L = NULL;int i = 0; do printf(n*菜单*n);printf( 1 进程装入n);printf( 2 进程退出n);printf( 3 内存使用情况n);printf( 4 进程查看n);printf( 5 退出程序n);printf( *n);printf(请输入你的选择(select):);scanf(%d,&i);switch(i)case 1:NewNode(L);/建立新的进程 Printf(L);/输出内存物理块分配情况和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特殊句式和情景交际(讲义)-2024年高考英语一轮复习(新高考)
- 碳、硅及无机非金属材料(复习讲义)-2026年高考化学一轮复习(福建专用)原卷版
- 上海市杨浦区2024-2025学年七年级(下)期末语文试卷(五四学制)解析版
- 人教版八年级英语下册专练:单项选择专练100题(含答案)
- 人教版八年级英语下册重点语法过关:现在完成时(含答案)
- 2021年1月国开电大法学本科《国际法》期末纸质考试试题及答案
- 配镜专业科普知识培训内容课件
- 2025版铁投劳务分包合同实施标准
- 2025年森林资源培育与承包山林合作协议
- 2025年度兼职软件测试人员聘用合同示范
- 2025年芜湖市繁昌区卫健系统公开招聘编外工作人员6名考试参考试题及答案解析
- 2025河北保定市市直事业单位选调58人考试备考试题及答案解析
- 2025版机电安装监理服务合同
- 肩关节运动康复新策略-洞察及研究
- 新能源卡车修理知识培训课件
- 神奇的艾草教学课件
- 《耳念珠菌医院感染预防与控制专家共识(2025)》解读 2
- 2026届广州市高三年级阶段训练(8月市调研摸底) 语地理试卷(含答案)
- 2025-2026学年湘科版(2017)小学科学四年级上册教学计划及进度表
- 微量物证检验技术
- 2025-2026学年苏教版(2024)小学数学一年级上册教学计划及进度表
评论
0/150
提交评论