文件与磁盘空间管理

目录

 

文件与磁盘空间管理

1、文件和文件系统

(1)基本概念

(2)文件类型​

(3)文件系统模型

(4)文件操作

2、文件的逻辑结构

(1)文件的逻辑结构类型

3、外存分配方式

(1)连续分配

(2)链接分配

(3)索引分配​

4、存储空间的管理

(1)空闲表法和空闲链表法

(2)位示图法——位示图

(3)成组链接法​

文件控制块——FCB

5、目录管理

(1)FCB内容

(2)索引结点​

(3)目录结构​

(4)目录查询技术

6、文件共享与保护

(1)文件共享​

(2)磁盘容错


文件与磁盘空间管理

1、文件和文件系统

(1)基本概念

  • 数据项:描述对象某种属性的字符集;是数据组织中可以命名的最小逻辑数据单位
  • 记录:一组相关数据项集合,描述对象某方面的属性
  • 关键字:一个记录中的一个或几个数据项的集合,用于唯一的标识一个记录
  • 文件:由创建者定义的、具有文件名的一组相关元素的集合

(2)文件类型

(3)文件系统模型

(4)文件操作

最基本操作:

还需要:

2、文件的逻辑结构

(1)文件的逻辑结构类型

顺序文件:

优缺点:

索引文件:

特点:

索引顺序文件:

3、外存分配方式

目标:有效利用外存空间,提高文件访问速度

常用三种方式:

  • 联系分配
  • 链接分配
  • 索引分配

一个系统通常只采用一种方式

(1)连续分配

特点:

  • 为每一个文件分配一组相邻的盘块
  • 逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致
  • 适用于变化不大顺序访问的文件,在流行的UNIX系统中仍保留了连续文件结构。如对换区

优点:顺序访问容易,读写速度快

缺点:

  • 会产生外存碎片。可紧凑法弥补,但需要额外的空间,和内存紧凑相比更花时间
  • 创建文件时要给出文件大小;存储空间利用率不高,不利于文件的动态增加和修改

(2)链接分配

优点:

  • 离散分配,消除外部碎片,提高利用率
  • 同时适用于文件的动态增长;修改容易

链接分配有两种形式:

①隐式链接

②显示链接

(3)索引分配

①单级索引分配

  • 索引形式适合大文件
  • 中、小型文件,只需若干链接即可。若用索引分配方式,用一个盘块存放少量索引信息反而不适用​​​​​​​

②多级索引

③混合组织索引

4、存储空间的管理

(1)空闲表法和空闲链表法

空闲表法

空闲链表法

(2)位示图法——位示图

(3)成组链接法

特点:

文件控制块——FCB

5、目录管理

(1)FCB内容

(2)索引结点

(3)目录结构

①单级目录结构

942

优点:简单、能实现目录管理的基本功能——按名存取

缺点:

  1. 文件检索时需搜遍整个目录文件,范围大速度慢
  2. 不允许重名。名字过多难于记忆,对于多用户环境重名难以避免
  3. 不便于实现文件共享(因为不能重名,不同用户使用的共享文件必须不同名字,标识哪些用户共享文件也不方便),一般只适用单机环境

②两级目录结构

特点:

③多级目录结构

(4)目录查询技术

6、文件共享与保护

(1)文件共享

①索引结点法

②符号链法

(2)磁盘容错

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验二 UNIX磁盘空间管理 (一) 实验目的 掌握UNIX外存空间管理中的分组链接算。 (二) 实验内容 编写C语言程序,模拟UNIX磁盘空间管理中使用的分组链接。 1.定义一个记录磁盘号的堆栈S—free[10],以及记录栈中现有磁盘数的变量S—nfree。 2.定义一个由40个元素构成的结构数组block[40]用作磁盘存放。 struct size { int blocl[10]; } struct blocd { struct size a[10]; //用于在空闲磁盘号链中存放磁盘号 }block[40]; 3. 假设系统中文件的最大容量为100个磁盘,且最多只有5个文件,定义一个由5个元素构成的结构数组file[5]用于记录各个文件占用的磁盘,。 struct File { int fileblocd[100]; //用于记录分别分配文件的磁盘号 }file[5]; 4. 编写函数init( )完成空闲磁盘号堆栈、空闲磁盘号队列及记录文件占用磁盘状态的file结构数组。 5. 编写函数alloc(fileno,blockd),完成磁盘分配操作。其中的参数fileno为文件序号,用于指定需要分配文件。 6. 编写函数free(fileno),完成文件占用磁盘的释放操作。其中的参数fileno为文件序号,用于指定需要释放磁盘文件。 7. 编写main( )函数完成下列操作: 调用init( )函数完成初始设置。 从终端输入命令,控制磁盘分配与回收操作。 (三) 实验要求 1. 在程序运行的结果中应包含磁盘分配与回收操作。 2. 可根据输入的文件名、文件大小进行模拟磁盘分配,并在每次分配与回收后显示分配与回收是否成功,以及分配、回收的磁盘号。 3. 在程序执行过程中,至少应包含分配不成功一次的信息。 4. 可以查看当前磁盘的使用情况:哪些空闲,哪些被哪些文件占用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值