目录
一、文件的概念
1、文件的定义
文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本、图片、程序等等。
在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。
2、文件的属性
- 文件名:同一目录下不允许有重名文件。
- 标识符:标识文件系统内文件的唯一标签,通常是数字,对人不可读的一种内部名称。
- 类型:文件的类型。
- 位置:文件存放的路径。
- 大小:指明文件大小。
- 创建时间,修改时间,文件所有者信息。
- 保护信息:对文件进行保护的访问控制信息。
3 、文件的基本操作
从下往上看,操作系统提供了哪些功能,才能方便用户、应用程序使用文件?
从下往上看,文件如何让存放在外存?
二、文件的逻辑结构(文件内部如何组织)
逻辑结构:指从用户看来,文件内部的数据应该时如何组织起来的。如数据结构中的线性,集合,树,图
物理结构:指在操作系统看来,文件的数据是如何存放在外存的。如数据结构中的顺序,链式,索引、散列存储结构
文件内部的数据应该怎么组织起来?
文件的逻辑结构,按文件是否有结构,可以分为无结构文件和有结构文件两种类型:
1、无结构文件(流式文件)
文件内部的数据就是一系列二进制流或字符流组成。又称流式文件。如.txt文件
2、有结构文件(记录式文件)
由一组相似记录组成,称"记录式文件"。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项作为关键字。根据各条记录的长度(占用的存储空间)是否相等,又分为定长记录和可变长记录。
根据有结构文件中的各条记录在逻辑上如何组织,可以分为三类:
- 顺序文件
- 索引文件
- 索引顺序文件
2.1、顺序文件
2.2、索引文件
2.3、索引顺序文件
由于为每个记录对应一个索引表项,对存储空间利用率低,所以我们让一组记录对应一个索引表项。
2.4 、多级索引顺序文件
三、目录结构(文件之间如何组织) --图
与进程管理一样(进程控制块),为了实现目录管理,操作系统中引入了文件控制块的数据结构。
FCB的有序集合称为 “文件目录”,一个FCB就是一个文件目录项。
创建一个新文件,系统将分配一个FCB并存放文件目录中,称为目录项。
FCB中主要包含了以下信息
- 基本信息:如文件名、物理地址、逻辑地址、物理结构等
- 存取控制信息:是否可读/可写、禁止访问的用户名等
- 使用信息:文件的建立时间,修改时间等
最基本的、最重要的还是文件名、文件存放的物理地址
1、单级目录
早期OS并不支持多级目录,整个系统中只建立一张目录表,每个文件占一个目录项
单级目录实现了 “按名存取”,但是不允许文件重名。显然不适合多用户操作系统
2、两级目录结构
早期的多用户操作系统,采用两级目录结构。分为主文件目录(MFD,Master File Directory)和用户文件目录(UFD)
3、多级目录结构(树形目录结构)
4、无环图目录结构
四、索引节点(FCB的改进)
当找到文件名对应的目录项时,才需要将索引节点调入内存,索引节点中记录了文件的各种信息,包括文件在外存中存放位置,根据位置即可找到文件。
存放在外存中的索引节点称为 “磁盘索引节点” ,当索引节点放入内存后称 “内存索引节点”。
相比之下内存索引节点需要增加一些信息,如:文件是否修改、此时几个进程正在访问该文件。
五、文件共享
硬链接:基于索引节点的共享方式。
软链接:基于符号链的共享方式。
注意:
多个用户共享同一个文件,意味着系统中只有 “一份” 文件数据。并且只有某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。如果是多个用户都 “复制” 了同一个文件,那么不用户之间的修改互不干扰。
六、文件保护
什么是文件? 什么是文件系统?
文件是以计算机硬件为载体存储在计算机上的信息集合,形式多样化,可以是文本、图片、程序等等
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。由三部分组成:与文件管理有关的软件、被管理
文件以及实施文件管理所需数据结构。