第六章文件管理6.1文件和文件系统6.2文件逻辑结构6.3存储介质6.4文件的物理结构6.5目录管理6.6文件存储空间的管理6.7文件共享和保护6.8数据一致性控制6.1.1概述信息是计算机系统中的重要资源。操作系统中的一个重要组成部分,文件系统,就负责信息的组织、存储和访问。文件系统的功能就是提供高效、快速和方便的信息存储和访问功能。本章的主要内容就是信息的组织。6.1.1概述所有的计算机应用程序都要存储信息和检索信息三个基本要求:能够存储大量的信息长期保存信息可以共享信息解决方法:把信息以一种单元,即文件的形式存储在磁盘或其他外部介质上。文件是通过操作系统来管理的,包括:文件的结构,命名,存取,使用,保护和实现方法。1.文件管理任务文件管理是软件(程序与数据集合)资源管理,涉及用户作业和内部硬件管理任务:把存储、检索、共享和保护文件的手段,提供给本身和用户,以方便用户及资源利用功能:分配与管理外存提供合适的存储方法文件共享,保护解决冲突2.文件管理功能分配与管理外部存储器,用户以文件形式存放信息,“按名存取”。提供合适的存储方法,包括文件的创建(Create)、打开(Open)、关闭(Close)、读写(Read/Write)、刪除(Delete,Erase)和重命名或改名(Rename)等。文件的共享与保护,解决文件命名中的冲突和存取权限的控制3.文件管理目的方便的文件访问和控制:以符号名称作为文件标识,便于用户使用;并发文件访问和控制:在多道程系统中支持对文件的并发访问和控制;统一的用户接口:在不同设备上提供同样的接口,方便用户操作和编程;多种文件访问权限:在多用户系统中的不同用户对同一文件会有不同的访问权限;优化性能:存储效率、检索性能、读写性能;差错恢复:能够验证文件的正确性,并具有一定的差错恢复能力;4.文件的概念具有符号名的一组相关元素的有序序列,是一段程序或数据的集合;一组赋名的相关联字符流的集合,或者是相关联记录。而记录是有意义的信息集合;信息项:构成文件内容的基本单位。文件的特性:包括文件说明、文件体。文件是一个抽象机制,它提供了一种把信息保存在存储介质上,而且便于以后存取的方法,用户不必关心实现细节.5.文件系统的概念是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。文件系统包含文件管理程序(文件与目录的集合)和所管理的全部文件是用户与外存的接口系统软件为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息文件系统=文件管理程序(文件和目录的集合)+它所管理的全部文件1)文件系统功能用户角度:实现“按名存取”系统角度:是对文件存储器的存储空间进行组织、分配、负责文件的存储并对存入的文件实施保护、检索的一组软件的集合。2)文件系统具体功能(1)统一管理文件的存储空间,实施存储空间的分配与回收(2)实现文件的按名存取名字空间映射存储空间(3)实现文件信息的共享,并提供文件的保护和保密措施(4)向用户提供一个方便使用的接口(提供对文件系统操作命令,以及提供对文件的操作命令:信息存取、加工等)(5)系统维护及向用户提供有关信息(6)文件系统的执行效率文件系统在操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果.(7)提供与I/O的统一接口3)文件系统的优点使用方便,灵活,用户按名存取安全可靠,保护系统和用户提供保密与共享4)文件系统必须解决的问题如何有效地分配文件存储器的存储空间提供合适的存取方法命名的冲突和文件的共享5)理想文件系统的特征有效地分配文件存储器的存储空间文件结构和存取的灵活性和多样性具有对用户来说尽可能是透明的机制尽可能达到文件存储装置的独立性存储在文件中的信息的安全能方便的共享公用的文件有效地实现各种文件操作的命令6.1.2文件分类1.文件分类原因文件的分类是为了更好地管理和使用,要科学地分门别类,对不同的文件进行不同的管理。这样,不仅提高了文件的存取速度,对文件的共享和保护也有利一般系统级与用户级要进行不同的管理,例如,一个系统文件工作时要读入内存,放在内存的某一固定区,有较高的保护级别,一般用户不允许进入。而一般用户的用户文件是在另外管辖的可用区有空闲时才能被调入指定的内存用户区1)按性质和用途分类系统文件由系统软件构成的文件,只允许用户通过系统调用或系统提供的专用命今来执行它们,不允许对其进行读写和修改主要有操作系统核心和各种系统应用程序或实用工具程序和数据组成例如:ibmbio.com,ibmdos.com,\comand.com库文件文件允许用户对其进行读取和执行,但不允许对其进行修改主要由各种标准子程序库组成例如:C语言、FORTRAN子程序库存放在子目录下*.LIB,/lib/,/usr/lib/用户文件是用户通过操作系统保存的用户文件,由文件的所有者或所有者授权的用户才能使用主要由用户的源程序源代码、可执行目标程序的文件和用户数据库数据等组成例如:*.c,*.for,*.f,*DBF,*.OBJ2)按操作保护分类只读文件:只允许文件主及被核准的用户去读文件,而不允许写文件。标记为:-r-----可读可写文件:允许文件主及被核准的用户去读和写文件。标记为:-rw----可执行文件:允许文件主及被核准的用户去调用执行该文件而不允许读和写文件,标记为:---x---各个操作系统的保护方法和级别有所不同DOS操作系统三种保护:系统、隐藏、可写UNIX或Linux操作系统有九个级别的保护3)按使用情况分类临时文件:用于系统在工作过程中产生的中间文件,一般有暂存的目录,正常工作情况下,工作完毕会自动删除,一旦有异常情况往往会残留不少临时文件永久文件:指一般受系统管理的各种系统和用户文件,经过安装或编辑、编译生成的文件,存放在软盘、硬盘或光盘等外存上档案文件:系统或一些实用工具软件包在工作过程中记录在案的文挡资料文件,以便查阅历史挡案4)按用户观点分类普通文件(常规文件)是指系统中最一般组织格式的文件,一般是字符流组成的无结构文件目录文件是由文件的目录信息构成的特殊文件,操作系统将目录也做成文件,便于统一管理特殊文件(设备驱动程序)在UNIX或Linux操作系统中,所有的输入输出外部设备都被看作特殊文件便于统一管理操作系统会把对特殊文件的操作转接指向相应的设备操作,真正的设备驱动程序不包含在这特殊文件中,而是指向与链接到操作系统核心中存放在内存高端部分5)按存取的物理结构分类顺序(连续)文件文件中的纪录,顺序地存储到连续的物理盘块中,顺序文件中所记录的次序,与它们存储在物理介质上存放的次序是一致的链接文件文件中的纪录可存储在并不相邻接的各个物理块中,通过物理块中的链接指针组成一个链表管理,形成一个完整的文件,又称指针串连文件或直接存取文件索引文件文件中的纪录可存储在并不相邻接的各个物理块中,纪录和物理块之间通过索引表项按关键字存取文件,通过物理块中的索引表管理,形成一个完整的文件6)按文件的逻辑存储结构分类有结构文件由若干个记录所构成的文件,故又称为记录式文件无结构文件这是直接由字符序列所构成的文件,故又祢为流式文件7)按文件中的数据形式分类源文件由源程序和数据构成的文件一般是由美国信息交换标准码(ASCII)、EBCD码或汉字编码组成目标文件由源程序经过相应的计算机语言编译程序编译,但尚未经过链接程序链接的目标代码所形成的文件后缀名为“.OBJ”(DOS系统)或“.o”(UNIX或Linux操作系统)文件组织的两种观点用户观点(逻辑结构):研究的是用户思维中的抽象文件,也叫逻辑文件。其目的是为用户提供一种结构清晰、使用简便的逻辑组织。用户按此去存储、检索和加工处理有关文件信息。实现观点(物理结构):研究的是存储在物理设备介质上的实际文件,即物理文件。其目的是选择一些性能良好、设备利用率高的物理结构。系统按此和外部设备打交道,控制信息的传输。6.2文件逻辑结构6.2.1文件逻辑结构的类型1.有结构文件(1)定长记录(2)变长记录其组织方式有:(1)顺序文件(2)索引文件(3)索引顺序文件•流式文件是相关信息的有序集合,或者说是有一定意义的字符流。•对大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。其长度以字节为单位。对流式文件的访问,则是采用读写指针来指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例。•在UNIX系统中,所有的文件都被看作是流式文件;即使是有结构文件,也被视为流式文件;系统不对文件进行格式处理。•好处:提供很大的灵活性2.无结构(流式)文件3.记录式文件记录式文件是由若干个记录组成,每个记录有一个键,可按键进行查找。记录式文件是有结构的文件。文件:一个固定长度记录的序列,每条记录有其内部结构组成记录按次序编号为record0,record1,...recordn。这种记录为逻辑记录,记录可以是定长或变长。6.2.2文件的存取方法1.顺序存取方法:定长记录:读指针rptr——指向下一次读出的记录地址;写指针wptr——指向下一次写入的记录地址。读完指针做相应修改:rptr+m=rptr写完指针做相应修改:wptr+m=wptr变长记录:每个记录长度存于记录前的单元中。读完rptr+mi+1=rptr2.对顺序文件的读/写操作定长和变长记录文件3.顺序文件的优缺点•顺序文件的最佳应用是对记录进行批量存取时,即每次要读或写一大批记录时,对顺序文件的存取效率是所有逻辑文件中最高的;此外,也只有顺序文件才能存储在磁带上,并能有效地工作。•在交互应用的场合,如果用户要求查找或修改单个记录,系统要逐个地查找诸记录。这时,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。•增加或删除一个记录较困难。6.2.3索引文件对于定长记录文件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:Ai=i×L对于可变长度记录的文件,要查找其第i个记录时,须首先计算出该记录的首地址。为此,须顺序地查找每个记录,从中获得相应记录的长度Li,然后才能按下式计算出第i个记录的首址。假定在每个记录前用一个字节指明该记录的长度,则索引文件的组织利用索引表检索变长记录6.2.4索引顺序文件索引顺序文件6.2.5直接文件和哈希文件1.直接文件对于直接文件,则可根据给定的记录键值,直接获得指定记录的物理地址。换言之,记录键值本身就决定了记录的物理地址。这种由记录键值到记录物理地址的转换被称为键值转换。组织直接文件的关键,在于用什么方法进行从记录值到物理地址的转换。2.哈希(Hash)文件Hash文件的逻辑结构物理块(块)在文件系统中,文件的存储设备常常划分为若干大小相等的物理块。同时也将文件信息划分成相同大小的逻辑块(块),所有块统一编号。以块为单位进行信息的存储、传输,分配存储介质:磁盘,磁带,光盘6.3物理块与存储介质1.磁带永久保存大容量数据顺序存取设备:前面的物理块被存取访问之后,才能存取后续的物理块的内容,存取速度较慢,主要用于后备存储,或存储不经常用的信息,或用于传递数据的介质直接(随机)存取设备:存取磁盘上任一物理块的时间不依赖于该物理块所处的位置2.磁盘磁道扇区柱面扇区磁臂磁头1)磁道与柱面信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头所有盘面中处于同一磁道号上的所有磁道组成一个柱面物理地址形式:磁头号(盘面号)磁道号(柱面号)扇区号2)磁盘系统与磁盘分类磁盘系统由磁盘本身和驱动控制设备组成,实际存取读写的动作过程是由磁盘驱动控制设备按照主机要求完成的硬盘又分为两种:固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度快但成本高移动头磁盘