分页存储管理实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实验三报告 一.实验名称: 分页存储管理 二.实验目的: 了解分页存储管理在内存空间分配的作用 三.实验内容: 分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页, 并为各页加以编号, 相应的, 也把内存空间分成与页面相同大小的若干个存储块, 称为物理 块或页框, 同样加以编号, 在为进程分配内存时, 以块为单位将进程的若干个也分别装入到 多个可以不相邻的物理块中。 系统为每个进程建立了一张页面映像表, 简称页表。 位示图是 利用二进制的一位来表示磁盘中的一个盘块的使用情况,这里用位示图来表示内存分配情 况。 四.实验代码 #include stdafx.h r-next=NULL; #include stdlib.h return head; #include stdio.h } typedef int datatype; void print(linklist head) typedef struct node { { linklist p; datatype pageNum,blockNum; p=head-next; struct node *next; printf(\n 该页表为 :); }linknode; printf(\n 页号 块号 \n); typedef linknode *linklist; while(p) linklist creatlinklist(int n) { { linklist head,r,s; printf(%d%7d\n,p-pageNum,p-blockNum int x,y,i=0; ); p=p-next; head=r=(linklist)malloc(sizeof(linknode)); } printf( 开始创建页表 \n); printf(\n); printf( 请分别输入页表的页号及块号 } (-1 表示空):\n); /* 初始化位示图,将值全置为零, 0 表示空 printf(\n 页号 块号 \n); 闲状态 */ while (in) void init(int g[100][100],int N) { { scanf(%d %d,x,y); int i,j; s=(linklist)malloc(sizeof(linknode)); for(i=0;i100;i++) s-pageNum=x; { s-blockNum=y; for(j=0;j100;j++) r-next=s; { r=s; g[i][j]=0; i++; } } } 1 g[N+1][0]=N*N; if(p) } { /* 对作业的每一个页进行分配对应位示图 i=p-blockNum/N; 里的块 */ j=p-blockNum%N; linklist Dis(linklist head,int g[100][100],int g[i][j]=0; n,int N) g[N+1][0]++; { p-blockNum=-1; linklist p; } int i,j; return head; p=head-next; } if(n=g[N+1][0]) /* 打印位示图 */ { void printStr(int g[100][100],int N) while(p) { { int i,j; for(i=0;iN;i++) printf( 此时位示图为: \n ); { for(i=0;iN;i++) for(j=0;jN;j++) { { printf( ); if(g[i][j]==0) printf(%d,i); { } p-blockNum=N*i+j; printf(\n); g[i][j]=1; for(i=0;iN;i++) g[N+1][0]--; { break; printf(%d,i); } for(j=0;jN;j++) } { break; printf( ); } printf(%d,g[i][j]); p=p-next; } } printf(\n); return head; } } } } void main() /* 回收已经完成的页 */ { linklist Recy(linklist head,int g[100][100],int int n,N,x,y; n,int N) int graph[100][100]; { linklist head; int i,j; printf( 输入位示图的字长: ); linklist p; scanf(%d,N); p=head-next; printf( 输入作业的页数: ); while(pp-pageNum!=n) scanf(%d,

文档评论(0)

bcll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档