操作系统 文件存储空间管理(4)

时间:2026-01-14

操作系统 文件存储空间管理 c++代码

for(i=0;i<640;i++)

{

fread(&root[i],sizeof(struct dir),1,fp);

}

fclose(fp);

}

void callback(int length) //回收磁盘空间

{

int i,j,k,m,q=0;

for(i=length-1;i>=0;i--)

{

k=physic[i]; //需要提供要回收的文件的地址

m=49-super_block.n; //回收到栈中的哪个位置

if(super_block.n==50) //注意 当super_block.n==50时 m=-1;的值

{ //super_block.n==50的时候栈满了,要将这个栈中的所有地址信息写进下一个地址中

for(j=0;j<50;j++)

{

memory[k].free[j]=super_block.free[j];

}

super_block.n=0;

memory[k].n=50;

}

memory[k].a=0;

if(m==-1)

{

m=49; //将下一个文件地址中的盘块号回收到栈底中,这个地址中存放着刚才满栈的地址的信息

}

super_block.free[m]=physic[i]; //将下一个文件地址中的盘块号回收到栈中

super_block.n++;

}

}

void allot(int length) //分配空间

{

int i,j,k,m,p;

for(i=0;i<length;i++)

{

k=50-super_block.n; //超级块中表示空闲块的指针

m=super_block.free[k]; //栈中的相应盘块的地址

p=super_block.free[49]; //栈中的最后一个盘块指向的地址

if(m==-1||memory[p].a==1) //检测是否还有下一组盘块

{

操作系统 文件存储空间管理(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219