电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实验六文件存储空间管理模拟--位示图

实验六文件存储空间管理模拟--位示图_第1页
1/7
实验六文件存储空间管理模拟--位示图_第2页
2/7
实验六文件存储空间管理模拟--位示图_第3页
3/7
实验六文件存储空间管理模拟--位示图[实验目的]通过一个简单的基于位示图的文件存储空间管理模拟算法的设计,加深理解文件系统的外存分配管理原理[实验学时]4学时[实验类型]综合性[实验内容] 设计一个 m 行 n 列(自定)二维数组表示位示图结构,利用初始化操作模拟给出位示图的原始状态或者某一时刻的当前状态,设计算法:1)完成给某文件分配几个盘块的过程(返回分配的盘块号并修改位示图);2)完成某磁盘块的回收过程(根据要回收的盘块号求解出对应位示图位置并修改位示图。注意:1 可以以某文件为单位分配、回收,或者以某个磁盘块为单位分配、回收2. 可以自行选择实行连续分配或者离散分配方式,3. 要求程序对不合法的条件或输入能给予恰当的处理。[实验参考代码]略 (这么简单,自己写吧)/** *@author:飞小飞* *@date:2025 年 11 月 23 日 10:33* *@目的:1 配与回收,在本程序中位示图 i = 0, j = 0, b = 0;开始* 采纳连续存储分配方式* *功能实现:1.分配空间给文件 2.回收文件的空间 3.查看所有文件存储信息* *联系作者:1511225190@qq.com*/#include #include #include #include using namespace std;int map[100][100];typedef struct file{charfileName[30]; /* 文件名字 */intlength; /* 文件长度 */intstart; /* 文件存储时 的初始位置 */}file;fileFile[60];intline, column; /* 行 列 */intfileTotalNum = 0; /* 总文件数 *//** *函数名:mapInit()* *描述: 对位示图进行初始化* *参数: 无* *返回值: 无**/void mapInit(){int i, j;printf( "请输入行和列:" );scanf( "%d%d", &line, &column );for ( i = 0; i < line; i++ ){for ( j = 0; j < column; j++ ){map[i][j] = 0;printf( "%3d", map[i][j] );}printf( "\n" );}}/** *函数名:allocation(int fileNum)* *描述: 分配空间给文件,采纳连续分配方式* *参数: fileNum 第几个文件* *返回值: 无**/void allocation( int fileNum ){intlength = File[fileNum].length;intb[60];inti, j;intx = 0;for ( i = 0; i < line; i++ ){for ( j = 0; j < column; j++ ){if ( map[i][j] == 0 ){b[x] = i * line + j;x++;if ( x == length )break; /* 这个 break ,跳...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实验六文件存储空间管理模拟--位示图

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部