ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:846.50KB ,
资源ID:7145631      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7145631.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验三 文件系统空白空间管理-空白目录.doc)为本站会员(hwpkd79526)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

实验三 文件系统空白空间管理-空白目录.doc

1、操作系统原理实验三 文件存储空间管理模拟学 号 班 级 姓 名 指导老师 实验时间 2014.6.5 实验三 文件存储空间管理模拟1内容:模拟文件存储空间的管理,采用空白文件目录法和空白块链法实施空间分配。2思想:文件存储空间管理是文件系统的重要内容。常用的管理思想有空白文件目录法、空白块链法和位示图法。本实验采用前两种方法进行空间分配。(1)空白文件目录法进行空间分配时,需要建立相关的数据结构,记录目前空白区域和已使用区域,假设开始时全部区域空闲。当有文件需要存储时,先检查空白文件目录,找到适合区域立即分配,并修改空白文件目录表和已使用区域分配表。为此需建立两张表格,分别记录相关数据。空白文

2、件目录表(初始)空白文件目录(中间)序号 首空白块号 空白快个数 物理块号 备注1 0 100 0,1,2,98,99序号 首空白块号 空白块个数 物理块号 标志1 2 4 2,3,4,5 未分配2 9 3 9,10,11 未分配3 25 5 25,26,27,28,29 未分配4 39 2 39,40 未分配5 未分配文件标识 首块号 文件块个数 状态 备注beta 0 2 占用Alpha 6 3 占用Toyota 12 13 占用Sony 30 9 占用Ford 50 4 占用 已使用区域表(中间)上述两张表的数据在系统运行中是发生变化的。文件空闲区分配和释放算法如下图所示:图一 文件空闲

3、区分配算法图二 文件空闲区回收算法(2)空白块链法进行空间分配时,需要建立链表数据结构,将空闲块按顺序加以组织,分配和回收 时在链首完成,同时建 立文件目录,记录文件占 用空间情况。源代码#include#include#includeint maxid=4; /空白表数目int maxnum=4;/文件个数/ 空白文件typedef structint id;int firstblock;int blocknum;int lastblock;Space;/ 分配文件typedef struct char flag10;int firstnum;文件标识 首块号 备注beta 0Alpha 6

4、Toyota 12Sony 30Ford 50 int fullnum;int lastnum;Full;/初始化分配Full full20=“Bete“,0,2,1,“Aple“,6,3,8,“Toyo“,12,13,24,“Ford“,30,9,38;Space file20=1,2,4,5,2,9,3,11,3,25,5,29,4,39,62,100;/分配打印void fullprint()printf(“文件名t 首块号 t 文件块个数 末块号n“);for(int i=0;i=maxid)printf(“本次无法分配“);return ;if(filef.blocknum=M)te

5、mp=filef.firstblock;printf(“空白分区可用n“);if(filef.blocknum=M)for(;fmaxid-1;f+)filef.firstblock=filef+1.firstblock;filef.blocknum=filef+1.blocknum;filef.lastblock=filef+1.lastblock;maxid-;elsefilef.blocknum-=M;filef.firstblock+=M;strcpy(fullmaxnum.flag,S_File);fullmaxnum.firstnum=temp;fullmaxnum.fullnum

6、=M;fullmaxnum.lastnum=fullmaxnum.firstnum+fullmaxnum.fullnum-1;maxnum+=1;break;fileprint();fullprint();void release() /释放函数printf(“删除一个文件,释放空间n“);int F;/删除文件首块号int B;/删除文件快数int L;/删除文件末块char s_file10;printf(“输入删除文件的文件名=“);scanf(“%s“,s_file);int isrelease=0;for(int i=0;imaxnum;i+)if(!strcmp(s_file,fu

7、lli.flag) isrelease=1;int flag1=0;/上邻标记int page1=0;int flag2=0; /下邻标记int page2=0;L=fulli.lastnum;F=fulli.firstnum;B=fulli.fullnum;for(;imaxnum-1;i+)fulli=fulli+1;maxnum-;for(int i=0;imaxid;+i)if(filei.lastblock+1)=F)flag1=1;page1=i;if(filei.firstblock-1)=L)flag2=1;page2=i;if(flag1filepage1.lastblock

8、=L;if(flag1filepage1.lastblock=filepage2.lastblock;for(;page2maxid;page2+)filepage2=filepage2+1;filepage2.id=page2+1;maxid-;if(!flag1)filemaxid.firstblock=F;filemaxid.blocknum=B;filemaxid.lastblock=L;maxid+;if(!flag1)filepage2.firstblock=F;if(isrelease=0)printf(“输入文件有误n“);fileprint();fullprint();int main()fileprint();fullprint();while(1) printf(“请选择 A:分配,B:释放,C:退出n“);char s;scanf(“%c“,switch(s)case A:distribute();break;case B:release();break;case C:exit(-1);default:printf(“输入有误,重新输入n“);getchar();return 0;实验结果打印图(0)初始化图(1)分配的块数小于当前块数图(2)分配的块数等于当前空白块数图(3)无上邻,有下邻图(4)有上邻,有下邻图(5)有上邻,无下邻图(6)无上邻,无下邻

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报