基本分页存储管理的模拟实现.doc

基本分页存储管理的模拟实现.doc

ID:58513636

大小:491.00 KB

页数:11页

时间:2020-05-18

基本分页存储管理的模拟实现.doc_第1页
基本分页存储管理的模拟实现.doc_第2页
基本分页存储管理的模拟实现.doc_第3页
基本分页存储管理的模拟实现.doc_第4页
基本分页存储管理的模拟实现.doc_第5页
资源描述:

《基本分页存储管理的模拟实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基本分页存储管理的模拟实现学院专业学号学生姓名指导教师姓名2014年03月18日目录一、设计目的与内容二、各个功能模块三、主要功能模块流程图四、系统测试五、结论六、源程序及系统文件使用说明一、设计目的与内容设计的目的:操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。1.进一步巩固和复习操作系统的基础知识。2.培养学生结构化程序、模块化程序设计的方法和能力。3.提高学生调试程序的技巧和软件设计的能力。4.提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。设计内容:根据设计要求实现对

2、基本分页存储管理的模拟设计要求:1.选择恰当的数据结构表示页表2.进程名,进程所需页数,进程进行的操作(装入/退出)等操作可有键盘输入,也可从文件读出。3.每进行一次进程的装入或者退出操作,就显示出操作执行后内存中各页的分配情况。所采用的数据结构:typedefstructLNode{intf;//进程号charname[8];//进程名intsize;//进程大小intn;//进程页数intye[100];//页表,下标表示页号,内容表示进程各页所在物理块structLNodenext;}LNode,LinkList;二、各个功能模块基本分页存储管理的模拟实现退出程序添加进程回收进程内存

3、使用情况三、主要功能模块流程图开始输入进程名判断是否存在是删除该进程结束否该进程不存在四、系统测试主界面:(显示程序的各个功能块)1、选择1,运行界面如下:(选择1,输入进程名,显示内存物理块分配情况)2、选择2,运行界面如下:(显示2回收进程,若进程名输入错误,则显示进程不存在,)3、选择3,运行界面如下:(显示进程r的内存使用情况,0表示未用)五、结论在这次课程设计中,我清楚的认识理论到到实践的重要性,经过实际的动手操作不仅提高了我的动手能力还提高了我把理论转化成实践的能力。实验中对页表的定义如下(采用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号):如ye[1

4、00]六、源程序及系统文件使用说明#include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#include//#include//#definey0;charA[100];//内存物理块,0:未使用,intmax=99;//记录内存的物理块数,值为A[100]最大下标intcount=100;//记录内存未使用物理块数typedefstructLNode{charname;//进程名intn;//进程页数intye[100];/进程各页所在物理块,页表实验中对页表的定义如下(采

5、用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号):/structLNodenext;}LNode,LinkList;//内存初始化voidCreatA(){inti=0;for(i=0;i<=max;i++)A[i]=0;}//建立新进程voidNewNode(LinkList&L){charch;inti;intm;LinkListp;LinkListnew_node;printf("输入进程名称:");ch=getche();p=L;while(p!=NULL)//查找进程名是否重复{if(p->name!=ch)p=p->next;else{printf

6、("进程名%c已存在,请重新输入:",ch);ch=getche();p=L;//p重新指向头结点}}printf("输入进程%c的页数:",ch);scanf("%d",&i);while(i<1){printf("请重新输入进程%c的页数:",ch);scanf("%d",&i);}if(i>count){printf("内存物理块不足,新建进程%c失败!!!",ch);getch();}else{new_node=(LinkList)malloc(sizeof(LNode));new_node->name=ch;new_node->n=i;new_node->

7、next=NULL;count-=i;m=0;for(i=0;i<=max;i++)if(A[i]==0&&mn){A[i]=new_node->name;new_node->ye[m]=i;m++;}if(L==NULL)L=new_node;else{p=L;//查找最后一个节点while(p->next!=NULL){p=p->next;}p->next=new_node;}}}//回收进程,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。