《2022年分页存储管理实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年分页存储管理实验报告 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 操作系统实验三报告一实验名称:分页存储管理二实验目的:了解分页存储管理在内存空间分配的作用三实验内容:分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,相应的, 也把内存空间分成与页面相同大小的若干个存储块,称为物理块或页框, 同样加以编号, 在为进程分配内存时,以块为单位将进程的若干个也分别装入到多个可以不相邻的物理块中。系统为每个进程建立了一张页面映像表,简称页表。 位示图是利用二进制的一位来表示磁盘中的一个盘块的使用情况,这里用位示图来表示内存分配情况。四实验代码#include #include #include typedef int
2、datatype; typedef struct node datatype pageNum,blockNum; struct node *next; linknode; typedef linknode *linklist; linklist creatlinklist(int n) linklist head,r,s; int x,y,i=0; head=r=(linklist)malloc(sizeof(linknode); printf( 开始创建页表 n); printf( 请分别输入页表的页号及块号(-1 表示空):n); printf(n 页号块号 n); while (ipag
3、eNum=x; s-blockNum=y; r-next=s; r=s; i+; r-next=NULL; return head; void print(linklist head) linklist p; p=head-next; printf(n 该页表为 :); printf(n 页号块号n); while(p) printf(%d%7dn,p-pageNum,p-blockNum); p=p-next; printf(n); /*初始化位示图,将值全置为零,0 表示空闲状态 */ void init(int g100100,int N) int i,j; for(i=0;i100;i
4、+) for(j=0;jnext; if(n=gN+10) while(p) for(i=0;iN;i+) for(j=0;jblockNum=N*i+j; gij=1; gN+10-; break; break; p=p-next; return head; /*回收已经完成的页*/ linklist Recy(linklist head,int g100100,int n,int N) int i,j; linklist p; p=head-next; while(p&p-pageNum!=n) p=p-next; if(p) i=p-blockNum/N; j=p-blockNum%N;
5、 gij=0; gN+10+; p-blockNum=-1; return head; /*打印位示图 */ void printStr(int g100100,int N) int i,j; printf( 此时位示图为:n ); for(i=0;iN;i+) printf( ); printf(%d,i); printf(n); for(i=0;iN;i+) printf(%d,i); for(j=0;jN;j+) printf( ); printf(%d,gij); printf(n); void main() int n,N,x,y; int graph100100; linklist
6、 head; printf( 输入位示图的字长:); scanf(%d,&N); printf( 输入作业的页数:); scanf(%d,&n); head=creatlinklist(n); print(head); init(graph,N); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 3 printStr(graph,N); printf(n 现在进行作业分配:); head=Dis(head,graph,n,N);
7、 print(head); printStr(graph,N); printf( 是否回收已完成的页,“是” 1,“否” 0:); scanf(%d,&x); if(x) / 判断是否要回收 printf(n 请输入您要回收的页号:); scanf(%d,&y); head=Recy(head,graph,y,N); print(head); printStr(graph,N); 五实验截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 4 六实验心得:通过这次实验, 了解到分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片, 称为页面或页,并为各页加以编号,相应的,也把内存空间分成与页面相同大小的若干个存储块,称为物理块或页框,同样加以编号,在为进程分配内存时,以块为单位将进程的若干个也分别装入到多个可以不相邻的物理块中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -