版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实验报告课程名称 操作系统(co zu x tn)原理 实验(shyn)名称 文件(wnjin)管理 姓 名 学号 专业班级 实验日期 成 绩 指导教师 赵安科 ( = 1 * GB3 * MERGEFORMAT 实验目的 = 2 * GB3 * MERGEFORMAT 实验原理 = 3 * GB3 * MERGEFORMAT 主要仪器设备 = 4 * GB3 * MERGEFORMAT 实验内容与步骤 = 5 * GB3 * MERGEFORMAT 实验数据记录与处理 = 6 * GB3 * MERGEFORMAT 实验结果与分析 = 7 * GB3 * MERGEFORMAT 问题建议)
2、实验三 文件管理模拟文件存储空间管理1内容:模拟文件存储空间的管理,采用空白文件目录法和空白块链法实施空间分配。2思想:文件存储空间管理是文件系统的重要内容。常用的管理思想有空白文件目录法、空白块链法和位示图法。本实验采用前两种方法进行空间分配。(1)空白文件目录法进行空间分配时,需要建立相关的数据结构,记录目前空白区域和已使用区域,假设开始时全部区域空闲。当有文件需要存储时,先检查空白文件目录,找到适合区域立即分配,并修改空白文件目录表和已使用区域分配表。为此需建立两张表格,分别记录相关数据。空白文件目录表(初始)序号首空白块号空白快个数物理块号备注101000,1,2,98,99空白文件目
3、录(中间)序号首空白块号空白块个数物理块号标志1242,3,4,5未分配2939,10,11未分配325525,26,27,28,29未分配439239,40未分配5未分配文件标识首块号文件块个数状态备注beta02占用Alpha63占用Toyota1213占用Sony309占用Ford504占用已使用区域(qy)表(中间)上述(shngsh)两张表的数据在系统(xtng)运行中是发生变化的。文件空闲区分配和释放算法如下图所示:图一 文件空闲(kngxin)区分配算法图二 文件(wnjin)空闲区回收(hushu)算法(sun f)(2)空白块链法进行空间(kngjin)分配时,需要建立链表数
4、据结构,将空闲块按顺序加以组织,分配和回收时在链首完成,同时建立文件目录,记录文件占用空间情况。文件标识首块号备注Beta0Alpha6Toyota12Sony30Ford503要求(yoqi):(1)自拟模拟数据演示运行(ynxng)结果(假定系统可用空闲块数为100)。为便于检查,建立和删除文件顺序如下:分配文件:F1,3分配文件:F2,5分配文件:F3,3分配文件:F4,8分配文件:F5,4分配文件:F6,2删除文件:F1删除文件:F2分配文件:F7,6删除文件:F3分配文件:F8,4删除文件:F5分配文件:F9,4每完成一个文件的分配和删除后,显示空白文件目录当前内容。(2)空白文件目
5、录法必须完成,空白块链法选做。4书写(shxi)实验报告: 实验(shyn)题目; 程序中所用(su yn)的数据结构及说明; 源程序并附上必要的说明; 按照文件的创建和删除顺序,打印输出结果。代码:#include #include using namespace std;int B= 1; /空白序号int U= 100; /文件标示序号typedef struct _Black int Bnum; int Bfirst; int Bleng; int Blast;Black;typedef struct _Usechar Ufile8; int Ufirst; int Uleng; in
6、t Ulast; int Uflg;Use;Black black=0,0,100,99; /初始化Use use100=;void bubbleSort(Black a,int m) /为了实现再次新建文件时提高分配利用率(将空白块按空白个数由从小到排序) for (int i = 0; i m - 1; i+) for (int j = 0; j aj+1.Bfirst ) Black temp = aj; aj = aj+1; aj+1 = temp; void PrintBlack()int num=1;cout#当前(dngqin)的空文件目录表#endl;cout序号 首块号 空白
7、(kngbi)块个数 末块号endl;for(int i=0;iB;i+)coutnumsetw(10)blacki.Bfirstsetw(10)blacki.Blengsetw(10)blacki.Blastendl;num+;coutendl;void PrintUse()cout#当前(dngqin)的已使用文件目录#endl;cout文件名 首块号 空白块个数 末块号endl;for(int i=0;iU;i+) if(usei.Uflg =1) coutusei.Ufilesetw(10)usei.Ufirstsetw(10)usei.Ulengsetw(10)usei.Ulaste
8、ndl; coutendl;void Distribute()cout输入(shr)文件名和块数fnamem;for(int i= 0;iB;i+)t+;for(int j=0; jU; j+)if(!strcmp(fname,usej.Ufile)cout!此文件名已经存在!请换文件名!=m)temp=blacki.Bfirst;if(blacki.Bleng=m) /删除(shnch)空白区for(;iB-1;i+) blacki.Bfirst= blacki+1.Bfirst; blacki.Bleng=blacki+1.Bleng; blacki.Blast=blacki+1.Blas
9、t; B-;else /修改(xigi)空白区blacki.Bleng -=m;blacki.Bfirst +=m;strcpy(useU.Ufile ,fname);useU.Ufirst=temp;useU.Uleng=m;useU.Ulast=useU.Ufirst+useU.Uleng-1;useU.Uflg=1;U+;break;else if(t=B) /当遍历完整个空白(kngbi)表而且不存在小于m的空白区 cout由于m块数大于空闲区无法分配endl;bubbleSort(black,B); PrintBlack(); PrintUse();void Release()int
10、 flag=0 ; /标记输入的文件名是否(sh fu)存在int ufirst; /首块号int uleng; /文件(wnjin)快数int ulast; /文件(wnjin)末块 char fname8; cout输入删除文件的文件名fname; for(int i=0;iU;i+) if(!strcmp(fname,usei.Ufile) flag =1; int fT=0; /上邻标记 int Tnum=0; int fB=0; /下邻标记 int Bnum=0; ulast=usei.Ulast; ufirst=usei.Ufirst; uleng=usei.Uleng; usei
11、.Uflg =-1; for(int j=0;jB;j+) /遍历判断上下邻 if(blackj.Blast+1)=ufirst) fT=1; /存在(cnzi)上邻 Tnum=j; if(blackj.Bfirst-1)=ulast) fB=1; /存在(cnzi)下邻 Bnum=j; if(fT&(!fB) /有上邻,无下(w xi)邻 blackTnum.Bleng+=uleng; blackTnum.Blast=ulast; if(fT&fB) /有上邻,有下邻 blackTnum.Bleng+=(uleng+blackBnum.Bleng); blackTnum.Blast=blac
12、kBnum.Blast; for(;BnumB;Bnum+) blackBnum=blackBnum+1; blackBnum.Bnum=Bnum+1; B-; if(!fT)&(!fB) /无上邻,无下邻 blackB.Bnum=B; blackB.Bfirst=ufirst; blackB.Bleng=uleng; blackB.Blast=ulast; B+; if(!fT)&fB) /无上(wshng)邻,有下邻 blackBnum.Bleng+=uleng; blackBnum.Bfirst=ufirst; if(flag=0) cout!输入文件(wnjin)不存在!endl; bubbleSort(black,B); PrintBlack(); PrintUse();void main()cout*模拟文件存储(cn ch)空白文件目录*endlendl; PrintBlack(); PrintUse(); int n; while(1) cout*endlendl; coutn;system( cls ); if(n=1) Distri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地热能源打井施工合同模板
- 宾馆餐饮部炊事人员招聘协议
- 铁路给水设施改造施工协议
- 消防队电工设施保障招聘合同
- 学校卫生维护合同
- 商场喷淋管道施工协议
- 住宅小区散水施工合同
- 企业信息安全风险管理协议
- 高校交通运输采购合同规范
- 主题公园花园施工合同样本
- 2023年初中英语听课心得体会 初中英语听课心得体会阅读(优质)相关范文多篇集锦
- 山东师范大学《计算机基础》期末考试复习题及参考答案
- 2023年内蒙古自治区乡村医生招聘笔试模拟试题及答案解析
- 年产1000万件日用陶瓷陶瓷厂工艺设计
- 新能源汽车概论试题库及答案
- 城管部门廉洁教育PPT廉洁清风进城管精华心灵促发展PPTPPT课件(带内容)
- 年会小品剧本 搞笑年会小品剧本;过年
- 小学廉政教育读本校本教材
- 2022专精特新小巨人企业发展报告
- GB/T 14361.1-1993船用纤维索滑车木壳滑车
- GB/T 10801.2-2002绝热用挤塑聚苯乙烯泡沫塑料(XPS)
评论
0/150
提交评论