操作系统15:文件和文件目录

目录

1、文件和文件系统

(1)数据项、记录和文件

(2)文件名和类型

(3)文件的层次结构

(4)文件的操作

2、文件的逻辑结构

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

1.1 - 有结构文件和无结构文件

1.2 - 按文件的组织方式分类

(2)顺序文件(Sequential File)

(3)索引文件(lndex File)

3.1 - 根据关键字建立索引

3.2 - 具有多个索引表的索引文件

(4)索引顺序文件 (ndex Sequential File)

4.1 - 索引顺序文件的特征

4.2 - 一级索引顺序文件

4.3 - 两级索引顺序文件

(5)直接文件和哈希文件

5.1 - 直接文件

5.2 - 哈希(Hash)文件

3、文件目录

(1)文件控制块和索引结点

1.1 - 文件控制块 FCB(File Control Block)中的内容

1.2 - 为什么要引入索引结点?

(2)简单的目录文件

2.1 - 单级文件目录

2.2 - 两级文件目录

(3)树形结构目录(Tree-Structured Directory)

3.1 - 路径名和当前目录(相对路径和绝对路径)

(4)目录查询技术

4.1 - 线性检索法

4.2 - Hash 方法


1、文件和文件系统

        文件系统的管理功能是将其管理的程序和数据通过组织为一系列文件的方式实现的。

        文件是指具有文件名的若干相关元素的集合。元素通常是记录,而记录又是一组有意义的数据项的集合。

        基于文件系统的概念,可以把数据组成分为数据项记录文件三级。

(1)数据项、记录和文件

        数据项:在文件系统中,数据项是最低级的数据组织形式,可分为基本数据项(字段)和组合数据项,基本数据项除了数据名外,还对应有数据类型。//类似于数据库的字段

        记录:记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。通常使用关键字(key)唯一标识一个记录。//数据库中的主键,唯一标识一条记录

        文件:指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件无结构文件两种。

        有结构文件由若干条相关记录组成,无结构文件则是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。例如,可以将一个班的学生记录作为一个文件。//相当于数据库中的表,表就是一个文件

        文件属性可以包括:文件类型、文件长度、文件的物理位置、文件的建立时间等。

(2)文件名和类型

        文件名:用于标识不同的文件。

        扩展名:添加在文件名后面的若干个附加字符,又称为后缀名,用于指示文件的类型。例如,myprog.bin 中的扩展名 bin,表示该文件是一个可执行的二进制文件。

        文件的类型:按文件中数据的形式分类

  1. 源文件:这是指由源程序和数据构成的文件。通常,由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。它通常是由 ASCII 码或汉字所组成的。
  2. 目标文件:这是指把源程序经过编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。目标文件所使用的后缀名是“.obj”。
  3. 可执行文件:指把编译后所产生的目标代码经过链接程序链接后所形成的文件。其后缀名是 “.exe”。

        文件的类型还可以按用途、控制属性、组织形式和处理方式等进行分类。

(3)文件的层次结构

        文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。

        对象及其属性:文件管理系统管理的对象有:文件、目录、磁盘存储空间

        对对象操纵和管理的软件集合:其中包括文件存储空间的管理,文件目录的管理,文件的逻辑地址转换为物理地址的机制,文件的读写管理,文件的共享与保护等功能。//文件系统的核心

        一般地,把与文件系统有关的软件分为四个层次:

  • I/O 控制层,是文件系统的最低层,主要由磁盘驱动程序等组成,也可称为设备驱动程序层。
  • 基本文件系统层,主要用于处理内存与磁盘之间数据块的交换。
  • 基本 I/O 管理程序,该层用于完成与磁盘 I/O 有关的事务,如将文件逻辑块号转换为物理块号,管理磁盘中的空闲盘块,I/O 缓冲的指定等。
  • 逻辑文件系统,用于处理与记录和文件相关的操作,如允许用户和应用程序使用符号文件名访问文件及记录,实现对文件和记录的保护等。

        文件系统的接口:包括命令接口(使用命令直接交互)和程序接口(通过程序交互),主要是为了方便用户的使用。//为方便用户使用,产品一般都会提供两种方式的交互,即命令行式和程序方式

(4)文件的操作

        用户可以通过文件系统提供的系统调用实施对文件的操作。最基本的文件操作包括创建、删除、读、写和设置文件的读/写位置等

        此外,一般的 OS 都提供了更多对文件的操作,如打开和关闭一个文件改变文件名等操作。

        文件的打开和关闭

        “打开”是指系统将指名文件的属性(包括该文件在外存上的物理位置),从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(索引号)返回给用户。“打开”,就是在用户和指定文件之间建立起一个连接。用户可通过该连接直接得到文件信息,从而避免了再次通过目录检索文件。

        如果用户已不再需要对该文件实施相应的操作,可利用“关闭”(close)系统调用来关闭此文件,即断开此连接,OS 将会把该文件从打开文件表中的表目上删除掉。

//文件的打开和关闭就是建立连接和关闭连接的过程。

//对文件进行操作,一般都会使用到系统调用,文件系统以I/O系统和存储系统为基础

2、文件的逻辑结构

        在进行文件系统高层设计时,所涉及的是文件的逻辑结构,即如何将这些逻辑记录构成一个逻辑文件。在进行文件系统低层设计时,所涉及的是文件的物理结构,即如何将一个文件存储在外存上。

        因此,在系统中的所有文件都存在着以下两种形式的文件结构:

  • 文件的逻辑结构(File Logical Structure),文件是由一系列的逻辑记录组成,用户可以直接处理数据及其结构,它独立于文件的物理特性,又称为文件组织(FileOrganization)。//用户使用且可见,软件层
  • 文件的物理结构,又称为文件的存储结构。指系统将文件存储在外存上所形成的一种存储组织形式,用户不可见。文件的物理结构不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。//系统存储且用户不可见,硬件层

        无论是文件的逻辑结构,还是其物理结构,都会影响对文件的检索速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

swadian2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值