文件管理系统
文件-一组有意义的信息/数据集合
- 文件的属性
- 文件内部数据的组织形式
- 文件之间的组织形式
- OS应提供哪些功能使用文件?
- OS应该怎么将文件存放在磁盘上?
1.文件的属性有哪些?
文件名:主要为了方便用户找到文件,同一目录下不允许有重名文件
标识符:一个系统内各文件标识符唯一,对用户来说无可读性。
类型:文件的类型。设置默认打开程序。
位置:文件存放的路径(用户)、在外存中存放的路径(大小)。
大小、创建时间、上次修改时间、文件所有者信息、保护信息……
2.文件内部数据如何组织?
- 无结构文件(文本文件)又称流式文件
- 有结构文件(数据库表)
3.文件之间应该怎样组织?
- 树状组织形式,根目录、子目录。
- 目录也是一种特殊的有结构文件。
4.操作系统应该向上提供哪些功能?
- 创建文件(create系统调用)
- 读文件(read系统调用)将数据读入内存并显示
- 写文件(write系统调用)将数据从内存写回外存
- 删除文件(delete系统调用)
- 打开文件(open系统调用)读写文件之前
- 关闭文件(close系统调用)读写文件之后
5.从上往下看,文件应如何存放在外存?
磁盘块存储、管理、分类、回收
6.其他功能
文件共享、文件保护
文件的逻辑结构
有结构文件:又称“记录式文件”,也一般来说,每条记录有一个数据项可作为关键字。能根据各记录的长度是否相等,可分为定长记录和可变长记录。
有结构文件的逻辑结构:
顺序文件:逻辑上文件中的记录一个接一个的顺序排列,在物理上顺序存储或链式存储。
- 链式存储:无法实现随机存取,每次只能从第一个记录开始依次往后查找。
- 顺序存储:可变长记录无法实现随机存储。定长记录可实现随机存取,记录长度为L,则第i个记录存放的相对位置是i*L。采用顺序结构能快速找到某关键字对应的记录。缺点:增加或删除一个记录比较困难。
- 串结构:记录之间的顺序与关键字无关
- 顺序结构:记录之间的顺序按关键字排列
索引文件:索引表本身是定长记录的顺序文件,可以快速找到第i个记录的项。缺点:对存储空间的利用率低。
索引顺序文件:对记录进行分组,一组记录对应一个索引表项。为了进一步提高检索效率,可以为顺序表建立多级索引表。
文件目录
文件控制块:FCB,一个文件的目录项。包含文件的基本信息文件名、物理地址、逻辑结构等。
目录操作
- 搜索
- 创建文件
- 删除文件
- 显示目录
- 修改目录
目录结构
- 单级目录结构:整个系统只有一张目录表,不允许文件重名。不适用于多用户操作系统。
- 两级目录结构:分为主文件目录和用户文件目录,允许不同用户的文件重名。可以通过目录限制访问。缺点:不能对文件进行分类。
- 多级目录结构:又称树形目录结构。访问某个文件时要用文件路径名标示文件。从根目录出发的路径称为绝对路径。每次读入目录表需要一次IO操作。从当前目录出发的路径为相对路径。缺点:不便于实现文件的共享。
- 无环图目录结构:在树形目录结构的基础上,增加一些指向同一节点的有向边,使整个目录称为有向无环图。可以用不同的文件名指向同一个文件,可以共享同一个目录。对于删除,为每个共享节点设置一个共享计数器,用于记录此时有多少个地方在共享该节点,用户删除时只删除该用户的FCB,并使共享计数器减1,不会直接删除节点。共享文件的数据变化所有用户都可以查看。
索引节点(FCB的改进)
简化目录表,将其他信息放置索引节点中。减少文件目录的大小,使磁盘可以存放更多的目录项。
文件的物理结构(文件分配方式)
很多操作系统中,磁盘块的大小与内存块、页面的大小相等,方便换入换出。
文件的逻辑地址可以表示为(逻辑块号,块内地址)的形式。
连续分配
要求每个文件在磁盘上占有一组连续的块。目录表记录起始块号和长度。
物理块号 = 起始块号+逻辑块号
优点:
- 连续分配支持顺序访问和直接访问(随机访问)。
- 连续分配的文件在顺序读写时速度最快。
缺点:
- 物理上采用连续分配不方便拓展文件。
- 存储空间利用率低,会产生难以利用的磁盘碎片。可以用紧凑来处理碎片,但会花费大量时间。
链接分配 – 采用离散分配,为文件分配离散的磁盘块。
- 隐式连接:记录起始块号和结束块号。磁盘块中会保存指向下一块的指针。
- 缺点:只支持顺序访问,不支持随机访问。需要存放指针增加空间。
- 优点:方便文件拓展,且利用率很高。
- 显示连接:
- 把用于链接文件的物理块指针显式地存放在一张表中,即文件分配表FAT。一个磁盘仅设置一张FAT,开机时将FAT读入内存,并常驻内存。
- 目录中存储记录文件的起始块。
- 优点:逻辑块号转换为物理块号的过程不需要读磁盘操作。转换过程不访问磁盘,访问速度快。支持顺序访问,支持随机访问。
- 缺点:文件分配表需要占用一定的存储空间。
索引分配
系统为每个文件建立一张索引表,索引表中记录文件各个逻辑块对应的物理块。索引表存放的磁盘块称为索引块,文件数据存放的磁盘块称为数据块。
优点:支持随机访问和文件拓展。
缺点:索引表需要占用一定的存储空间。
连接方案:如果索引表太大,则用多个索引块链接起来存放。在最后一个中链接下一个索引表的块号。
多层索引:类似多级页表。
0 条评论