资源描述:
《实验三固定分区存储管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程名称:操作系统实验三固定分区存储管理时间:2010年5月10日星期二,第3-4节地点:理工楼学号105072008117姓名lrtwilly班级:一班一、实验目的通过编写固定分区存储管理的模拟程序,加深对操作系统存储管理功能中的固定分区管理方式、主存分配表等相应知识的理解。二、实验内容1、实现固定分区存储管理方式下存储空间的分配和去配。2、已知当前内存分配表如下:3、有若个作业申请或释放内存空间,请求如下:(1)作业J3请求资源,申请5K大小的内存空间;(2)作业J4申请33K大小的内存空间;(3)作业J1执行完毕,释放空间4、编写程序实现相应存储空间的分配和去配,若请求成功,修改主存分配
2、表,并输出该表,若请求不能满足,输出“分配失败”。(其中不考虑空闲分区的移动)。三、实验环境软件环境:VC++硬件环境:微机四、实验步骤2.建立结构体存储进程情况。3.编写算法对进程请求资源进行判断。4、编写代码调试运行,运用数据对算法进行检测。五、实验代码和结果#include"stdio.h"#definemax10000typedefstructzone{intZnumber[6];intaddress[6];intsize[6];intflag[6];}zone;intfenqu(zone&Z,intwork,ints){intk=-1,min=max;for(inti=0;i<6;i
3、++){if(Z.size[i]>=s){if(Z.size[i]-s4、志");for(inti=0;i<6;i++){scanf("%d,%d,%d,%d",&z.Znumber[i],&z.address[i],&z.size[i],&z.flag[i]);getchar();}printf("请输入作业申请");scanf("%c%d,%d",&J,&w,&s);getchar();fenqu(z,w,s);if(fenqu(z,w,s)){printf("分区号起始地址长度占用标志");for(inti=0;i<6;i++){printf("%d%d%d",z.Znumber[i],z.address[i],z.size[i]);if(z.fl
5、ag[i]!=0){printf("J%d",z.flag[i]);}else{printf("%d",z.flag[i]);}}}printf("请输入作业申请");scanf("%c%d,%d",&J,&w,&s);getchar();if(fenqu(z,w,s)){printf("分区号起始地址长度占用标志");for(i=0;i<6;i++){printf("%d%d%d",z.Znumber[i],z.address[i],z.size[i]);if(z.flag[i]!=0){printf("J%d",z.flag[i]);}else{printf("%d
6、",z.flag[i]);}}}printf("请输入释放作业申请");scanf("%c%d",&J,&w);shifang(z,w);printf("分区号起始地址长度占用标志");for(i=0;i<6;i++){printf("%d%d%d",z.Znumber[i],z.address[i],z.size[i]);if(z.flag[i]!=0){printf("J%d",z.flag[i]);}else{printf("%d",z.flag[i]);}}getchar();getchar();}