2022年西安石油大学操作系统实验三文件管理 .pdf
《2022年西安石油大学操作系统实验三文件管理 .pdf》由会员分享,可在线阅读,更多相关《2022年西安石油大学操作系统实验三文件管理 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一实验题目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、 - 第 1 页,共 11 页 - - - - - - - - - (2)空白块链法进行空间分配时,需要建立链表数据结构,将空闲块按顺序加以组织,分配和回收时在链首完成,同时建立文件目录,记录文件占用空间情况。二程序中所用的数据结构及说明(1)typedef struct _Black int Bnum; int Bfirst; int Bleng; int Blast; Black; (当前的空文件目录结构体)Black black=0,0,100,99; (结构体初始化)(2)typedef struct _Use char Ufile8; int Ufirst; int Uleng; i
4、nt Ulast; int Uflg; Use; (当前已使用文件目录初始化)Use use100=0; (结构体初始化)三源程序并附上必要的说明#include #include using namespace std; 文件标识首块号备注beta 0 Alpha 6 Toyota 12 Sony 30 Ford 50 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - int B= 1; /空白序号int U= 100; /文
5、件标示序号typedef struct _Black int Bnum; int Bfirst; int Bleng; int Blast; Black; typedef struct _Use char Ufile8; int Ufirst; int Uleng; int Ulast; int Uflg; Use; Black black=0,0,100,99; /初始化Use use100=0; void bubbleSort(Black a,int m) / 为了实现再次新建文件时提高分配利用率( 将空白块按空白个数由从小到排序) for (int i = 0; i m - 1; i+)
6、 for (int j = 0; j aj+1.Bfirst ) Black temp = aj; aj = aj+1; aj+1 = temp; void PrintBlack() int num=1; cout 当前的空文件目录表 endl; cout 序号首块号空白块个数末块号 endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - for(int i=0;iB;i+) coutnumsetw(10)blacki.B
7、firstsetw(10)blacki.Bleng setw(10)blacki.Blastendl; num+; coutendl; void PrintUse() cout 当前的已使用文件目录 endl; cout 文件名首块号空白块个数末块号 endl; for(int i=0;iU;i+) if(usei.Uflg =1) coutusei.Ufilesetw(10)usei.Ufirstsetw(10)usei.Uleng setw(10)usei.Ulastendl; coutendl; void Distribute() cout 输入文件名和块数 fnamem; for(in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年西安石油大学操作系统实验三文件管理 2022 西安石油 大学 操作系统 实验 文件 管理
限制150内