• 大小: 5KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: C/C++
  • 标签: 操作系统  

资源简介

给出一个磁盘块序列:1、2、3、……、500,初始状态所有块为空的,每块的大小为2k。选择使用位表、链式空闲区、索引和空闲块列表四种算法之一来管理空闲块。对于基于块的索引分配执行以下步骤:  随机生成2k-10k的文件50个,文件名为1.txt、2.txt、……、50.txt,按照上述算法存储到模拟磁盘中。  删除奇数.txt(1.txt、3.txt、……、49.txt)文件  新创建5个文件(A.txt、B.txt、C.txt、D.txt、E.txt),大小为:7k、5k、2k、9k、3.5k,按照与(1)相同的算法存储到模拟磁盘中。  给出文件A.txt、B.txt、C.txt、D

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include

#define N 500
#define BlockSize 2

typedef struct Block
{
int index;
int state;
int fileNumber;
}Block;
Block block[N];

typedef struct file
{
int number;
char * name;
int length;
int startBlockIndex;
int blockNeeded;
}file;
file f[50];                        //创建50个文件结构体对象
char fileName[50][7];
int randSize[50];

typedef struct FAT
{
char* fileName;
int indexBlock;
}FAT;
FAT fat[5];


void initial()
{
int i;
srand(time(NULL));               //使每次运行产生的随机数列不一样
for(i=0;i<50;i++)
{
sprintf(fileName[i] “%d“ i+1);            //写字符串到fileName
strcat(fileName[i]“.txt“);
randSize[i]=rand()%9+2;                     //随机生成文件大小
// printf(“%s

评论

共有 条评论