文件管理概述
广义上的I/O操作是指不经过CPU的操作,侠义的是指对磁盘的访问
文件是在逻辑上具有完整意义的信息集合,它有一个名字以供标识,文件名是以字母开头的字母数字串。
构成文件的基本单位:信息项(单个字符或者字节)、记录
(3) 文件的其他描述
①文件是具有符号名的信息(数据)项的集合
②文件是具有符号名的记录的集合
(4) 文件分类
①按文件的性质和用途分类
系统文件(只能通过系统调用) 、程序库文件(允许用户调用,不允许修改) 、用户文件
②按文件保护级别分类
不保护文件、 执行文件、 只读文件、 读写文件
③分类按文件流向分类
输入文件、 输出文件、 输入输出文件
(5) 文件名与属性
①文件名
每个文件有一个给定的名字,这个名字是由串描述且由文件内容来表示,包括文件符号名和内部标识符。
用户使用文件符号名进行文件操作
系统使用文件内部标识符管理文件
②文件扩展
文件扩展表示文件的使用特征,如:.c .obj .lib 等。
③文件属性
文件的属性字,表示文件类别、保护级等信息。
文件系统
文件系统是操作系统中负责管理和存取文件信息的软件机构。
文件系统的组成
①管理文件所需的数据结构
如目录表、文件控制块、存储分配表
②管理程序
③一组操作
文件系统的功能
①从用户角度看——文件系统实现了“按名存取”的功能。
②从系统角度看——辅存空间管理、构造文件结构、提供文件共享功能、提供存取文件的方法、文件保护、提供一组文件操作命令
文件系统的特点
①使用简单
使用文件名、一组文件操作命令。
②安全可靠
提供防护措施,在文件遭受破坏时,能及时复。全量备份、增量备份、动态备份、远程备份
③既能共享,又能保密
身份验证、存取权限验证。
存储数据的文件存储器具有固定的物理特性,数据在辅存设备上的排序、分布构成了文件的物理结构
文件系统负责实现逻辑特性到物理特性的转换
文件组织的两种结构
逻辑结构
从用户角度看到的文件面貌。即用户对信息进行逻辑组织形成的文件结构。
研究文件逻辑结构的目的:
i 为用户提供一种逻辑结构清晰、使用简便的逻辑文件形式。
ii 用户按文件的逻辑结构形式去存储、检索和加工文件中的信息
物理结构
文件的物理结构是信息在物理存储器上的存储方式,是数据的物理表示和组织。
研究文件物理结构的目的
i选择工作性能良好、设备利用率高的物理文件形式。
ii 系统按照文件的物理结构形式和外部设备打交道,控制信息的传输。
逻辑记录与物理记录
①逻辑记录
文件中按信息在逻辑上的独立含义来划分的信息单位,逻辑记录是对文件进行存取操作的基本单位。
②物理记录
在存储介质上,由连续信息所组成的一个区域称为块,也叫物理记录。
③逻辑记录与物理记录的区别与联系
i 一个是逻辑的概念,一个是物理的概念。
ii 逻辑记录最终要存放到物理记录上。
文件的逻辑结构与存取方法
流式文件
流式文件是相关的有序字符的集合,是无结构的。
流式文件是按信息的个数或以特殊字符为界进行存取的。
简单来说就是没有格式的文件
UNIX系统为了方便会将流式文件按照512B的大小划分为若干个逻辑记录,将流式文件转变为记录式文件。
记录式文件
记录式文件是一种有结构的文件。这种文件在逻辑上总是被看成一组连续顺序的记录的集合。
如果文件中所有记录的长度都相同,就称这种文件为定长记录文件。其长度由记录的数量来决定。
如果文件中记录的长度不相同,就称这种文件为变长记录文件。其长度由各个记录长度相加得到。
文件存取方法
(1) 顺序存取
后一次存取总是在前一次存取的基础上进行的。顺序存取时不必给出具体的存取位置。
(2) 随机存取
用户以任意次序请求某个记录。随机存取时要指出起始存取位置(例如记录号)。
文件的物理结构
连续文件
连续文件结构是由一组分配在磁盘连续区域的物理块组成的。
如果连续文件的逻辑记录和磁盘的物理块一样大,就如下图所示:
连续文件的第一个逻辑记录所在的磁盘块号记录在文件目录项中,同时文件目录还记录了磁盘块的数量。8
连续文件的特点
①连续存取时速度较快
②文件长度一经固定便不易改变
③文件的增生和扩充不易
但是当文件不断创建或者删除的时候,将会造成存储空间的浪费(因为文件长度是固定的,多次创建就是占着茅坑不拉屎)
串联文件
串联文件结构是按顺序由串联的块组成的,即文件的信息存于若干块物理块中,每个物理块的最末一个字作为链接字,它指出后继块的物理地址。文件的最后一块的链接字为结束标记“^”,它表示文件至本块结束。
串联文件的特点
①能较好地利用辅存空间
②易于对文件进行增生和扩充
③连续存取时速度较快
串联文件的特点也决定了它适合的是顺序存取方式,不适用于随机存取方式。(就像链表一样,找中间元素得遍历链表,不方便)
索引文件
索引文件将逻辑文件顺序地划分与物理存储块长度相同的逻辑块。(不一定)
系统为每个文件建立逻辑块号与物理块号的对照表。这张表称为该文件的索引表。文件由数据文件和索引表构成。这种文件称为索引文件。
注意:物理块号可以是不连续的。但是逻辑块号一般是连续的。
①索引文件在存储区中占两个区
i 索引区:存放索引表
ii 数据区:存放数据文件
②访问索引文件的操作
i 查文件索引,由逻辑块号查得物理块号
ii 由此磁盘物理块号而获得所要求的信息
索引文件的特点
①易于文件的增删
②直接读写任意记录
有点像页表。每次对文件进行修改,索引表都可能会发生改动。
直接索引
文件目录项中有一组表项用于索引。每一个表项登记的是逻辑记录所在的磁盘块号。
一级间接索引
需要注意:间接索引表磁盘块号和磁盘块号不是一回事
文件目录项中有一组表项,其内容登记的是第一级索引表块的块号。第一级索引表块中的索引表项登记的是文件逻辑记录所在的磁盘块号。
二级间接索引
文件目录项中有一组表项,其内容登记的是第二级索引表块的块号。第二级索引表块中的索引表项登记的第一级索引表块的块号,第一级索引表项中登记的是文件逻辑记录所在的磁盘块号。
套娃下去可以是可以,但是检索的时间就变长了。
文件存储空间的管理
就是为了管理怎么分配文件存储空间的。
文件目录及其结构
文件目录是记录文件的名字、存放地址及其他有关文件的说明信息和控制信息的数据结构
文件目录项的内容
①文件名
②文件逻辑结构
说明该文件的记录是否定长、记录长度及记录个数等。
③文件物理结构:记录文件的物理结构形式
连续文件——指出文件第一块的物理地址、文件所占块数
串联文件——指出该文件第一块的物理地址
索引文件——指出索引表地址
④存取控制信息
文件主具有的存取权限、核准的其他用户及其相应的存取权限
⑤管理信息
文件建立日期、时间,上一次存取时间、要求文件保留的时间等
⑥文件类型
文件的类型,例如可分为数据文件、目录文件、块存储设备文件、字符设备文件
一级文件目录
系统将已建立的所有文件的文件名、存放地址及有关的说明信息放在一张表中,这张表称为一级文件目录。
一级文件目录的特点
- 实现了按名存取的功能,比较简单;
- 要求文件名和文件之间有一一对应的关系,即:不允许两个文件有相同的名字。
重名问题
所谓“重名”,是指不同用户对不同文件起了相同的名字,即两个或多个文件只有一个相同的符号名。又称为命名冲突。
为了解决命名冲突、获得更灵活的命名能力,文件系统必须采用多级目录结构
树型文件目录
在多级目录系统中(除最末一级外),任何一级目录的目录项可以描述一个目录文件,也可以描述一个非目录文件(数据文件),而数据文件一定在树叶上。这样,就构成了一个树形层次结构。
文件路径名
多级目录中,文件的路径名是由根目录到该文件的通路上所有目录文件符号名和该文件的符号名组成的字符串,相互之间用分隔符分隔。
文件共享与安全
文件共享是指某一个或某一部分文件可以让事先规定的某些用户共同使用。
所谓文件安全,就是文件的保护问题。文件的保护是指文件本身不得被未经文件主授权的任何用户存取,而对于授权用户也只能在允许的存取权限内使用文件。
②如何进文件的保护
需要对用户的权限进行验证。所谓存取权限的验证,是指用户存取文件之前,需要检查用户的存取权限是否符合规定,符合者允许使用,否则拒绝。
③验证用户存取权限的方法
i 访问控制矩阵
ii 存取控制表
iii 用户权限表
iv 口令
v 密码
用文件路径名加快文件的查找
当前目录是当前用户正在使用的文件所在的目录。当指定当前目录后,用户对文件的所有访问都是相对于“当前目录”进行的。这时,文件路径名是由“当前目录”到信息文件的通路上所有各级目录的符号名加上该信息文件的符号名组成。用“*”表示当前目录的父节点。
链接技术
所谓“链接”,就是在相应目录表目之间进行链接,即一个目录中的表目直接指向另一个目录表目所在的物理位置。
注意,这种链接不是直接指向文件,而是指向相应的目录表目。这种办法也称为连访,被共享的文件称为连访文件。
相当于添加共享文件中间的链接
在当前目录下新键一个子目录用于链接其共享文件
UNIX/Linux下的链接文件有两种,硬连接(Hard Link) 和软连接。
软连接又称符号链接(Symbolic link)。符号链接文件中并不包括实际的文件数据,而只是包括了它指向文件的路径。它可以链接到任意的文件和目录,包括处于不同文件系统的文件以及目录。当用户对链接文件操作时,系统会自动的转到对源文件的操作,但是删除链接文件时,并不会删除源文件。
硬连接是指通过索引节点对文件的链接。保存在系统中的每一个文件都会有一个索引节点。每当有文件链接文件A时,文件A的索引节点的引用计数+1(因为文件自身对自己索引节点会链接,所以索引节点的初始值为1.)当文件系统进行删除文件的时候,对应的文件索引节点的引用计数-1。只要引用计数不等于0,文件就不会真正删除。
文件操作和文件备份
常用的文件操作命令
1 | create://创建一个新文件 |
①打开文件操作
所谓打开文件就是把该文件的有关目录表目复制到主存中约定的区域,建立文件控制块,建立用户和这个文件的联系。
②关闭文件操作
所谓关闭文件就是用户宣布这个文件当前不再使用,系统将其在主存中的文件控制块删去,因而也就切断了用户同这个文件的联系。
文件备份
为了能在软、硬件失效的意外情况下恢复文件,保证文件的完整性、数据的连续可利用性,文件系统提供适当的机构,以便复制备份。
文件备份的方法
①周期性转储
按固定的时间周期把存储器中所有文件的内容转存到某种介质上,通常是磁带或磁盘。在系统失效时,使用这些转存磁盘或磁带,将所有文件重新建立并恢复到最后一次转存时的状态。(全部)
②增量性转储
这种技术转储的只是从上次转储以后已经改变过的信息;增量转储的信息量较小,故转储可在更短的时间周期内进行(部分)
问题
1.何谓数据项、记录和文件?
答:①数据项分为基本数据项和组合数据项。基本数据项描述一个对象某种属性的字符集,具有数据名、数据类型及数据值三个特性。组合数据项由若干数据项构成。
②记录是一组相关数据项的集合,用于描述一个对象某方面的属性。
③文件是具有文件名的一组相关信息的集合。
4.何谓逻辑文件?何谓物理文件?
答:逻辑文件是物理文件中存储的数据的一种视图方式,不包含具体数据,仅包含物理文件中数据的索引。物理文件又称文件存储结构,是指文件在外存上的存储组织形式。
8.试说明顺序文件的结构及其优点。
答:第一种是串结构:各记录之间的顺序与关键字无关。第二种是顺序结构:指文件中的所有记录按关键字(词)排列。可以按关键词长短排序或英文字母顺序排序。
顺序文件的最佳应用场合是对诸记录进行批量存取时,存取效率最高;只有顺序文件才能存储在磁带上并有效工作。
15.什么是索引文件?为什么要引入多级索引?
答:索引文件是指当记录为可变长度时,通常为之建立一张索引表,并为每个记录设置一个表项构成的文件。通常将索引非顺序文件简称为索引文件。索引是为了是用户的访问速度更快,多级索引结构可以有效的管理索引文件,可根据用户的访问情况多级处理。
17.对目录管理的主要要求是什么?
答:实现按名存取、提高检索目录的速度、文件共享、允许文件重名。
18.采用单级目录能否满足对目录管理的主要要求?为什么?
答:不能。单级目录在整个文件系统中只建立一张目录表,每个文件占一个目录项,其中含文件名、文件扩展名、文件长度、文件类型、文件物理地址、状态位等其它文件属性。
单级只能实现目录管理的基本功能,不能满足查找速度、允许重名和文件共享的要求。
19.目前广泛应用的目录结构有哪些?它有什么优点?
答:现代操作系统都采用多级目录结构。基本特点是查询速度快、层次结构清晰、文件管理和保护易于实现。
9-6 设文件B按串联文件构造,并由四个逻辑记录组成 (其大小与磁盘块大小相等,均为512B)。这四个逻辑记录分别存放在第100、157、66、67号磁盘块上,回答如下问题。
(1) 画出此串联文件文件的结构,
(2) 若要读文件B第1560字节处的信息,问要访问哪一个磁盘块? 为什么?
(3) 读文件B第1560字节处的信息需要进行多少次I/O操作? 为什么?
(1) 答:此串联文件结构如下图所示。
(2) 答:1560/512=3余24,因此文件第1560逻辑字节在r3逻辑块上,该逻辑块被分配在67号磁盘块上。
(3) 答:要访问67号磁盘块,需要先找到文件目录,然后依次访问100、157和66号磁盘块,最后读取67号磁盘块。因此若文件已打开 (文件目录信息已在内存中) 需要4次I/O操作,文件未打开需要5次I/O操作。
9-16什么是“重名”问题 ? 二级文件目录结构如何解决这一问题?
答:重名是指不同用户对不同文件起了相同的名字。在二级文件目录结构中,每个用户建立用户文件目录,系统建立主目录,登记所有用户目录的信息,用目录名加文件名唯一标识每个文件解决重名问题。
9-18 假设两个用户共享一个文件系统,用户甲要用到文件a、b、c、e,用户乙要用到文件a、d、e、f。已知:用户甲的文件a与用户乙的文件a实际上不是同一文件;用户甲的文件c与用户乙的文件f实际上是同一文件;甲、乙两用户的文件e是同一文件。试拟定一个文件组织方案,使得甲、乙两用户能共享该文件系统而不致造成混乱。
答:如下图所示。用户甲的主目录名为jia,有四个文件,文件名为a、b、c、e。
用户乙的主目录名为yi,有四个文件,文件名为a、d、e、f。