操作系统第08章课件.ppt
第八章 文件系统,概 述,所有的计算机应用程序都要存储信息和检索信息三个基本要求:能够存储大量的信息 长期保存信息 可以共享信息解决方法:把信息以一种单元,即文件的形式存储在磁盘或其他外部介质上。文件是通过操作系统来管理的,包括:文件的结构,命名,存取,使用,保护和实现方法。,1.文件管理任务,文件管理是软件(程序与数据集合)资源管理,是涉及用户作业和相关硬件的管理任务:把存储、检索、共享和保护文件的手段,提供给本身和用户,以方便用户及资源利用功能:分配与管理外存提供合适的存储方法文件共享,保护解决冲突,2.文件管理功能,分配与管理外部存储器,用户以文件形式存放信息,“按名存取”,文件的机内码与磁盘、光盘等外存的地址建立起相对应的表格联系提供合适的存储方法,为系统和用户使用文件提供良好的接口。例如,鍵盘命令以及程序中使用系统调用控制。包括文件的创建(Create)、打开(Open)、关闭(Close)、读写(Read/Write)、刪除(Delete,Erase)和重命名或改名(Rename)等文件的共享与保护,解决文件命名中的冲突和存取权限的控制,8.1 文件和文件系统,文件文件是软件机构,软件资源的管理方式文件是一个抽象机制,它提供了一种把信息保存在存储介质上,而且便于以后存取的方法,用户不必关心实现细节.,文件系统的概念,是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。文件系统包含文件管理程序(文件与目录的集合)和所管理的全部文件是用户与外存的接口系统软件为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息文件系统=文件管理程序(文件和目录的集合)+它所管理的全部文件文件系统是指文件和对文件进行操纵和管理的软件集合。,8.1.1 文件、记录和数据项,基于文件系统的概念,把数据的组成分为数据项、记录和文件三级。一、数据项基本数据项:用于描述一个对象的某种属性的字符集,是数据组织中可命名的最小逻辑数据单位,又称为原子数据、数据元素或字段。基本数据项拥有数据名以及数据类型。组合数据项:由若干基本数据项组成,简称组项。二、记录记录是一组相关数据项的集合,用于描述一个对象某方面的属性。记录必须有能唯一标识该记录的关键字,是具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。具有符号名的一组相关元素的有序序列,是一段程序或数据的集合一组赋名的相关联字符流的集合,或者是相关联记录的集合。而记录是有意义的信息集合文件的属性包括:文件类型;长度;物理位置;存取控制;建立时间,三、文件的概念,文件命名规则,一个文件必须要有一个文件名。长度,数字和字符,大小写区分,支持文件扩展名(一个或多个)例子:.bak.gif.doc.ppt.hlp.html.mpg.jpg.exe.tex.txt.zip,8.1.2 文件分类,1.文件分类原因文件的分类是为了更好地管理和使用,要科学地分门别类,对不同的文件进行不同的管理。这样,不仅提高了文件的存取速度,对文件的共享和保护也有利一般系统级与用户级要进行不同的管理,例如,一个系统文件工作时要读入内存,放在内存的某一固定区,有较高的保护级别,一般用户不允许进入。而一般用户的用户文件是在另外管辖的可用区有空闲时才能被调入指定的内存用户区,2.文件分类,按文件性质与用途分类按存取控制属性分类按使用情况分类按用户观点分类按存取的物理结构分类按文件中的数据形式分类按文件的逻辑结构分类,1)按性质和用途分类,系统文件由系统软件构成的文件,只允许用户通过系统调用或系统提供的专用命今来执行它们,不允许对其进行读写和修改主要有操作系统核心和各种系统应用程序或实用工具程序和数据组成例如:,/unix 库文件文件允许用户对其进行读取和执行,但不允许对其进行修改主要由各种标准子程序库组成例如:C语言、FORTRAN子程序库存放在子目录下*.LIB,/lib/,/usr/lib/用户文件是用户通过操作系统保存的用户文件,由文件的所有者或所有者授权的用户才能使用主要由用户的源程序源代码、可执行目标程序的文件和用户数据库数据等组成例如:*.c,*.for,*DBF,*.OBJ,2)按存取控制属性分类,只读文件:只允许文件主及被核准的用户去读文件,而不允许写文件。可读可写文件:允许文件主及被核准的用户去读和写文件。可执行文件:允许文件主及被核准的用户去调用执行该文件而不允许读和写文件。各个操作系统的保护方法和级别有所不同DOS操作系统三种保护:系统、隐藏、可写UNIX或Linux操作系统有九个级别的保护,3)按使用情况分类,临时文件:用于系统在工作过程中产生的中间文件,一般有暂存的目录,正常工作情况下,工作完毕会自动删除,一旦有异常情况往往会残留不少临时文件永久文件:指一般受系统管理的各种系统和用户文件,经过安装或编辑、编译生成的文件,存放在软盘、硬盘或光盘等外存上档案文件:系统或一些实用工具软件包在工作过程中记录在案的文挡资料文件,以便查阅历史挡案,4)按用户观点分类,普通文件(常规文件)是指系统中最一般组织格式的文件,一般是字符流组成的无结构文件目录文件是由文件的目录信息构成的特殊文件,操作系统将目录也做成文件,便于统一管理特殊文件(设备驱动程序)在UNIX或Linux操作系统中,所有的输入输出外部设备都被看作特殊文件便于统一管理操作系统会把对特殊文件的操作转接指向相应的设备操作,真正的设备驱动程序不包含在这特殊文件中,而是指向与链接到操作系统核心中存放在内存高端部分,5)按存取的物理结构分类,顺序(连续)文件文件中的纪录,顺序地存储到连续的物理盘块中,顺序文件中所记录的次序,与它们存储在物理介质上存放的次序是一致的链接文件文件中的纪录可存储在并不相邻接的各个物理块中,通过物理块中的链接指针组成一个链表管理,形成一个完整的文件,又称指针串连文件或直接存取文件索引文件文件中的纪录可存储在并不相邻接的各个物理块中,纪录和物理块之间通过索引表项按关键字存取文件,通过物理块中的索引表管理,形成一个完整的文件,6)按文件中的数据形式分类,源文件由源程序和数据构成的文件,一般是由美国信息交换标准码(ASCII)、EBCD码或汉字编码组成目标文件由源程序经过相应的计算机语言编译程序编译,但尚未经过链接程序链接的目标代码所形成的文件,后缀名为“.OBJ”(DOS系统)或“.o”(UNIX或Linux操作系统)可执行文件经编译后所产生的目标代码,再由链接程序链接后所形成的文件。,7)按文件的逻辑结构分类,有结构文件 由若干个记录所构成的文件,故又称为记录式文件无结构文件 这是直接由字符序列所构成的文件,故又称为流式文件,3.UNIX系统的文件分类,UNIX将文件分为普通文件;目录文件;特殊文件(设备文件)三类普通文件:包含的是用户的信息,一般为ASCII或二进制文件目录文件:管理文件系统的系统文件特殊文件:字符设备文件:和输入输出有关,用于模仿串行I/O设备,例如终端,打印机,网络等 块设备文件:模仿磁盘分类的目的:对不同文件进行管理,提高系统效率;提高用户界面友好性,8.1.3 文件系统模型,文件系统是指含有大量的文件及其属性的说明,对文件进行操纵和管理的软件,以及向用户提供的使用文件的接口等的集合。文件系统的模型分为三个层次:对象及其属性说明对对象进行操纵和管理的软件集合文件系统的接口,对象及其属性说明,文件目录磁盘(磁带)存储空间,对对象进行操纵和管理的软件集合,I/O控制层:是文件系统的最低层,主要由磁盘驱动程序和磁带驱动程序组成。也称为设备驱动程序层。基本文件系统:又称为物理I/O层。主要用于处理内存与磁盘或磁带机系统之间的数据交换。基本I/O管理程序:又称为文件组织模块。完成与磁盘I/O有关的事务,如:选择文件所在的磁盘;进行文件逻辑块号与物理块号的转换;空闲块的管理;I/O缓冲的指定。逻辑文件系统:完成的事务有:实现对文件的按名存取;实现对文件及记录的保护;建立目录及修改目录等。,文件系统的接口,命令接口是用户与文件系统之间交互的接口。用户可以通过键盘终端键入命令,取得文件系统的服务。程序接口是用户程序与文件系统的接口。通过系统调用实现。,文件系统功能,用户角度:实现“按名存取”系统角度:是对文件存储器的存储空间进行组织、分配、负责文件的存储并对存入的文件实施保护、检索的一组软件的集合。,文件系统具体功能,统一管理文件的存储空间,实施存储空间的分配与回收对文件目录的管理实现文件的按名存取(地址映射)名字空间 映射 存储空间文件的读、写管理。实现文件信息的共享,并提供文件的保护和保密措施,文件系统具体功能(续),向用户提供一个方便使用的接口(提供对文件系统操作命令,以及提供对文件的操作命令:信息存取、加工等)系统维护及向用户提供有关信息文件系统的执行效率 文件系统在操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果.提供与I/O的统一接口,文件系统的优点,使用方便,灵活,用户按名存取安全可靠,保护系统和用户提供保密与共享UNIX文件系统特点分层“倒树”型文件系统每一用户可以是树的一个分支,分支独立,可以与别的“叶”重名“树根”是所有用户有用的工具性程序,文件系统必须解决的问题,如何有效地分配文件存储器的存储空间提供合适的存取方法命名的冲突和文件的共享,理想文件系统的特征,有效地分配文件存储器的存储空间文件结构和存取的灵活性和多样性具有对用户来说尽可能是透明的机制尽可能达到文件存储装置的独立性存储在文件中的信息的安全能方便的共享公用的文件有效地实现各种文件操作的命令,8.1.4 文件操作,对记录的操作检索所有记录检索单个记录插入一个记录修改一个记录删除一个记录对文件的操作创建文件删除文件读文件写文件截断文件设置文件的读/写位置,82 文件逻辑结构,文件组织的两种观点用户观点(逻辑结构):研究的是用户思维中的抽象文件,也叫逻辑文件。其目的是为用户提供一种结构清晰、使用简便的逻辑组织。用户按此去存储、检索和加工处理有关文件信息。实现观点(物理结构):研究的是存储在物理设备介质上的实际文件,即物理文件。其目的是选择一些性能良好、设备利用率高的物理结构。系统按此和外部设备打交道,控制信息的传输。,8.2.1 文件逻辑结构的类型,1.有结构文件(记录式文件)定长记录 变长记录 有结构文件的记录组织方式:顺序文件:按记录生成先后次序(串结构)或按关键字的某种顺序(顺序结构)将记录排列形成文件。记录通常是定长记录。索引文件:建立索引表标记记录组成文件的方式。索引顺序文件:上述两种方式的结合。,2.无结构(流式)文件,流式文件是相关信息的有序集合,或者说是有一定意义的字符流。对大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。其长度以字节为单位。对流式文件的访问,则是采用读写指针来指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例。在UNIX系统中,所有的文件都被看作是流式文件;即使是有结构文件,也被视为流式文件;系统不对文件进行格式处理。好处:提供很大的灵活性,3.记录式文件,记录式文件是由若干个记录组成,每个记录有一个键,可按键进行查找。记录式文件是有结构的文件。文件:一个记录序列,这个序列由一组长度固定的记录组成,每条记录有其内部结构组成记录按次序编号为record0,record1,.recordn。这种记录为逻辑记录,记录可以是定长或变长。,定长记录与变长记录,定长记录:所有记录长度相等变长记录:记录长度不固定(不相等)。,(a)固定长度记录(b)可变长度记录,8.2.2 顺序文件,对顺序文件的读/写操作:定长记录:读指针rptr指向下一次读出的记录地址;写指针wptr指向下一次写入的记录地址。读完指针做相应修改:rptr+m=rptr 写完指针做相应修改:wptr+m=wptr变长记录:每个记录长度存于记录前的单元中。读完rptr+mi=rptr,顺序文件的优缺点,顺序文件的最佳应用是对记录进行批量存取时,即每次要读或写一大批记录时,对顺序文件的存取效率是所有逻辑文件中最高的;此外,也只有顺序文件才能存储在磁带上,并能有效地工作。(对于定长记录易于实现顺序存取和直接存取)在交互应用的场合,如果用户要求查找或修改单个记录,系统要逐个地查找诸记录。这时,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。增加或删除一个记录较困难。,8.2.3 索引文件,对于定长记录文件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:Ai=iL对于可变长度记录的文件,要查找其第i个记录时,须首先计算出该记录的首地址。为此,须顺序地查找每个记录,从中获得相应记录的长度Li,然后才能按下式计算出第i个记录的首址。假定在每个记录前用一个字节指明该记录的长度,则,索引文件的组织,索引文件的优缺点,检索速度快;易于增加、修改和删除一个记录索引文件除了有主文件外,还需配置一张索引表,提高了存储费用。,8.2.4 索引顺序文件,将顺序文件中的所有记录分为若干个组,为文件建立一张索引表,在该表中为每组的第一个记录建立一个表项。检索时,先查索引表,再利用顺序查找法在文件中查找记录。,索引顺序文件,8.3 目录管理,对目录管理的要求如下:(1)实现“按名存取”(2)提高对目录的检索速度(3)文件共享(4)允许文件重名,文件目录,文件目录:是文件系统中主要数据结构之一,文件存储后用户通过用户文件逻辑结构的索引链接找到对应的物理结构按文件符号名把文件信息的逻辑结构映象设备介质的物理结构,由文件目录实现把文件操作命令转换相应I/O指令。需要文件目录,8.3.1 文件控制块和索引结点,为了能对一个文件进行正确地存取,从文件管理的角度来看,文件是由文件控制块和文件体两部分组成。文件控制块简称FCB,其中存放着控制和管理文件所需的所有信息。把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合目录项:构成文件目录的项目(目录项就是FCB)目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件,一、文件控制块,文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息。文件控制块是文件存在的标志,1.文件控制块的内容,(1)基本信息类 文件名;文件物理位置;文件逻辑结构;文件的物理结构(2)存取控制信息类(3)使用信息类,MS-DOS的文件控制块,文件控制块包括的内容,FCB的创建过程,用户进程请求创建文件;文件系统读出有关目录信息;如有误,返回状态信息;生成新的FCB;在FCB中设置有关信息;更新目录信息;将FCB挂到调用进程的PCB上;向用户进程返回状态信息。,文件控制块的创建过程(续),二、索引结点,1)索引结点的引入由于文件检索时只需使用文件名,并不用到FCB中的其它信息。因此,在UNIX等操作系统中将文件描述信息单独形成一个称为索引结点的数据结构,简称i结点。,UNIX的文件目录,2)磁盘索引结点,文件主标识符文件类型 文件存取权限 文件物理地址 文件长度 文件连接计数 文件存取时间,3)内存索引结点,(1)索引结点编号。用于标识内存索引结点。(2)状态。指示i结点是否上锁或被修改。(3)访问计数。每当有一进程要访问此i结点时,将该访问计数加1,访问完再减1。(4)文件所属文件系统的逻辑设备号。(5)链接指针。设置有分别指向空闲链表和散列队列的指针。,8.3.2 单级目录结构,为所有文件建立一个目录文件。单级目录的优点是简单且能实现目录管理的基本功能按名存取。缺点:(1)查找速度慢;(2)不允许重名(3)不便于实现文件共享,8.3.3 二级目录结构,为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:一级称为主文件目录,给出用户名,用户子目录所在的物理位置;二级称为用户文件目录,给出该用户所有文件的FCB产生于多用户分时系统,DOS2.0版本以上采用,文件主目录(MFD)的表目按用户分,每个用户有一个用户文件目录(UFD)优点:解决了文件的重名问题和文件共享问题,提高搜索速度,查找时间降低缺点:缺点是不太适合大量用户和大量文件的大系统,增加了系统开销,,两级目录结构,8.3.4 树型(多级)目录结构,树型目录结构也称多级目录产生于UNIX操作系统,巳被现代操作系统广泛采用。目录与文件在一起,目录也做成文件优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制 缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度,1)多级目录结构,多级目录结构,2)路径名,在树形目录结构中,从根目录到任何数据文件,都只有一条惟一的通路。在该路径上从树的根(即主目录)开始,把全部目录文件名与数据文件名,依次地用“/”连接起来,即构成该数据文件的路径名。系统中的每一个文件都有惟一的路径名。例如,在上图中用户B为访问文件J,应使用其路径名/B/F/J来访问。,3)当前目录,为了提高文件检索速度,文件系统向用户提供了一个当前正在使用的目录,称为当前目录(也称工作目录或值班目录)。查找一个文件可从当前目录开始,使用部分路径名当前目录可根据需要任意改变。当前目录一般存放在内存,4.增加和删除目录,(1)不删除非空目录。当目录(文件)不空时,不能将其删除,而为了删除一个非空目录,必须先删除目录中的所有文件,使之先成为空目录,后再予以删除。如果目录中还包含有子目录,还必须采取递归调用方式来将其删除,在MS-DOS中就是采用这种删除方式。(2)可删除非空目录。当要删除一目录时,如果在该目录中还包含有文件,则目录中的所有文件和子目录也同时被删除。,8.3.5 目录查询技术,1.线性检索法;2.Hash方法,线性检索法查找/usr/ast/mbox的步骤,8.4 文件共享,早期实现文件共享的方法绕弯路法连访法基于索引结点的共享方式利用符号链实现文件共享,8.5 文件保护,文件保护用于提供安全性的特定的操作系统机制。对拥有权限的用户,应该让其进行相应操作,否则,应禁止防止其他用户冒充对文件进行操作实现:*用户验证*存取控制,