操作系统原理与实践教程(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章文件管理三两草上传§6.1文件的概念6.1.1文件及其分类1.文件的定义文件是计算机系统中信息存放的一种组织形式,目前尚无严格的定义,下面给出两种有代表性的解释:(1)文件是具有标识符的相关字符流的集合。(2)文件是具有标识符的相关记录(一个有意义的信息单位)的集合。这两种解释定义了两种文件形式:前者说明文件是由字节组成,这是一种无结构的文件,或称流式文件。后者说明文件是由记录组成。而记录则是由一组相关信息项组成。§6.1文件的概念2.文件命名一般情况下,一个文件是一组逻辑上具有完整意义的信息集合,并赋以一个文件名。文件名由用户给定,它是由字母或数字组成的一个字符串,用来标识文件。文件名是文件存在的标识,操作系统根据文件名来对其进行控制和管理。各个操作系统的文件命名规则略有不同,即文件名的格式和长度因系统而异。一般来说,文件名由文件名和扩展名两部分组成,中间用“·”隔开。它们都是字母或数字组成的字母数字串。扩展名也称为文件后缀,利用扩展名可以区分文件的属性。§6.1文件的概念3.文件的分类(1)以文件的用途分类系统文件:由操作系统及其他系统程序和数据组成的文件。这种文件不对用户开放,仅供系统使用,用户只能通过操作系统提供的系统调用来使用它们。库文件:是指系统为用户提供的各种标准函数,标准过程和实用程序等。用户只能使用这些文件,而无权对其进行修改。用户文件:由用户的信息组成的文件,如源程序文件,数据文件等。这种文件的使用和修改权均属于用户。§6.1文件的概念(2)按文件的操作保护分类只读文件:只允许进行读操作,不能进行写操作的文件。读写文件:允许文件主和授权用户对其进行读或写操作的文件。只执行文件:该类文件只允许授权的用户调用执行,而不允许其修改或读出文件的内容。(3)按文件的性质分类普通文件:指一般的用户文件和系统文件。目录文件:管理和实现文件系统的文件目录项组成的系统文件,对目录文件可以进行与普通文件一样的各种文件操作。特别文件:有的系统把设备作为文件统一管理和使用,并为区别起见,把设备称为特别文件。§6.1文件的概念6.1.2文件的属性为了对文件进行控制和管理,大多数操作系统都用一组信息来指定文件的类型、操作特性和存取保护等,这组信息称为文件的属性。文件的属性虽然不是文件的信息内容,但对于文件的管理和控制是十分重要的。这组属性包括:文件基本属性文件的类型属性文件的保护属性文件的管理属性文件的控制属性§6.1文件的概念6.1.3文件的组织1.有结构的文件有结构文件又称记录式文件。它在逻辑上可被看成一组连续记录的集合,即文件是由若干相关记录组成,且对每个记录编上号码,依次为记录1、记录2、…、记录n。每个记录是一组相关的数据集合,用于描述一个对象某个方面的属性,如年龄、姓名、职务、工资等。记录式文件按照记录长度是否相同,又可分为定长记录文件和不定长记录文件两种。(1)定长记录:文件中所有记录的长度相等。(2)变长记录:文件中记录的长度不相等。§6.1文件的概念R0R1R2…Ri…L0R0L1R1…记录0记录1§6.1文件的概念2.无结构的文件无结构文件是指文件内部不再划分记录,是由一组相关信息组成的有序字符流,即流式文件。其长度直接按字节来计算。大量的源程序、可执行程序、库函数等均采用无结构的文件形式。在UNIX和Windows系统中,所有的文件都被看成流式文件。事实上操作系统不知道或不关心文件中存放的内容是什么,它所见到的都是一个一个的字节。文件中任何信息的含义都由用户级程序解释。§6.1文件的概念6.1.4文件的访问方式1.顺序访问:顺序存取是最简单的方法。它严格按照文件信息单位排列的顺序依次存取,后一次存取总是在前一次存取的基础上进行,所以不必给出具体的存取位置。当打开文件时,文件的存取指针指向第一个信息单位,如第一个字节或第一个记录,每存取一个信息单位存取指针加1指向下一个信息单位,如此类推。§6.1文件的概念2.随机访问:随机访问也称直接存取,每次存取操作时必须先确定存取的位置。直接访问是基于文件的磁盘模型,这是因为磁盘允许对任意文件块进行随机读和写。对直接访问,文件可作为块或记录的编号序列。直接访问文件允许对任意块进行读或写,读写顺序是没有限制的。直接访问文件可立即访问大量的数据信息,因此,随机访问方式主要对大批信息的立即访问,如大型数据库的访问。当接到访问请求时,系统计算出信息所在块的位置,然后直接读取其中的信息。§6.1文件的概念3.其他访问方式-----索引方式PCSIndex123456i234567k……667788j……Index=j…Index=i…Index=k§6.2目录结构6.2.1文件控制块和文件目录1.文件控制块从文件管理的角度看,一个文件包括两部分:文件说明和文件体。文件体指文件本身的信息,它可能是记录式文件或字符流文件。而文件说明有时也叫文件控制块(filecontrolblock,FCB),它是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文件属性)。文件控制块是文件存在的标志,它通常由文件属性信息组成。§6.2目录结构2.文件目录为了对众多的文件进行分门别类的管理,提高文件检索的效率,现代操作系统往往将文件的文件控制块集中在一起进行管理。这种FCB的有序集合就称为文件目录,文件控制块就是其中的目录项(构成文件目录的项目)。另外,为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件。文件目录具有将文件名转换成该文件在外存的物理位置的功能。当用户要求存取某个文件时,系统首先查找目录文件,先找到对应的文件目录,然后比较文件名就可以找到所查找文件的文件控制块,再通过FCB指出的文件信息就能存取文件的内容。§6.2目录结构不同的系统,文件目录的组织也不完全相同。MS-DOS的目录结构UNIX/Linux采用了一种比较特殊的目录建立方法,它把文件目录项中的文件名和其他的管理信息分开,后者单独组成一个定长的数据结构,成为索引节点(i_node),该索引节点的编号称为索引号,记为i_node。于是,文件目录项中仅剩下14个字节的文件名和两个字节的i_node。§6.2目录结构6.2.2单级目录单级目录是最简单的目录结构。在这种组织方式下,全部文件都登记在同一目录中。其特点是简单、易于理解和实现,但那也存在以下的缺陷:查找速度慢、允许重名和不便于文件的共享。§6.2目录结构6.2.3两级目录每个用户使用一个相对独立的目录,在所有用户的目录上层再建一层目录来管理各个用户目录。二级目录结构把文件目录分成二级,第一级称为主目录,第二级称为子目录或次目录。系统允许每个用户有一个子目录。也称为用户目录。二级目录结构有效地解决文件重名的问题,不同用户的文件,使用相同名字也不会导致混乱。§6.2目录结构§6.2目录结构6.2.4树型目录又称为多级目录结构,它是二级目录结构的扩充。这种多层次的目录结构如同一棵倒置的树,主目录就是树根,称为根目录每一个树枝结点就是一个子目录,每一片树叶描述的一个文件。§6.2目录结构§6.2目录结构在树形目录结构中,一个文件的全名将包括从根目录开始到文件为止的通路上遇到的所有子目录路径。各子目录名之间用正斜线“/”或反斜线“\”隔开,其中,子目录名组成的部分又称为路径名。系统内的每个文件都有惟一的路径名。路径名是从根经过所有子目录再到指定文件的路径。路径名有两种形式:绝对路径名和相对路径名。绝对路径名从根目录开始并给出路径上的目录名直到指定的文件,而相对路径名从当前目录开始定义一个路径。§6.2目录结构6.2.5目录的实现1.线性表目录文件由目录项构成一个线性表,每个目录项包括文件名和指向数据块的指针。当需要创建一个新文件时,系统必须首先搜索目录文件以确定有没有同名文件的存在,然后把新文件的目录项添加到目录的末尾。删除一个文件时,系统根据给定的文件名来搜索文件目录。找到该文件所在目录项后,释放分配给该文件的磁盘空间,并将相应的目录项删除。§6.2目录结构§6.2目录结构2.哈希表用于实现文件目录的另一种数据结构是哈希表。采用这种方法时,除了使用线性列表来存放目录项以外,还使用了哈希表。哈希表根据文件名计算出一个哈希值,并返回一个指向线性列表中元素的指针。因此,它大大降低了目录搜索时间,插入和删除也很方便,不过需要一些措施来避免冲突(collision)(两个不同的文件名哈希到同一位置)。哈希表的最大困难在于其大小通常是固定的,而且哈希函数也依赖于哈希表的大小。§6.3文件和目录操作6.3.1文件操作创建文件:写文件:读文件:文件定位:删除文件:截短文件:§6.3文件和目录操作大多数文件操作都涉及到为给定文件搜索相关目录条目的操作。为了避免这种不断的搜索操作,提高文件操作的效率,许多系统要求在首次使用文件时,必须使用系统调用open来显式地打开文件。操作系统维护着一个包含所有打开文件的信息表(打开文件表,openfiletable)。当需要进行一个文件操作时,可通过打开文件表的一个索引来指定文件,而不需要搜索整个文件目录。当文件不再使用时,进程可以关闭它,操作系统从打开文件表中删除这一条目。有的系统在首次使用文件时,会隐式地打开它,在打开文件的作业或程序终止时会自动关闭它。然而,绝大多数操作系统要求程序员在使用文件之前,显式地打开它。§6.3文件和目录操作6.3.2目录操作创建目录:被创建的新目录除了目录项“·”(表示该目录本身)和“··”(表示父目录)以外,其内容为空。目录项“·”和“··”是系统自动放在该目录中的。创建目录时,系统首先根据调用者提供的路径名来进行目录检索。如果存在同名的目录文件,则返回出错信息,创建失败。否则,为新目分配磁盘空间和控制结构,并进行初始化,将新目录文件对应的目录项添加到父目录中。删除目录:§6.4文件系统的实现6.4.1文件系统的结构获得结果用户存取要求用户接口符号文件系统存取控制验证逻辑文件系统物理文件系统设备和分配策略模块I/O控制系统物理介质基本文件系统§6.4文件系统的实现6.4.2文件系统的实现文件系统以文件的形式保存在计算机的磁盘上,磁盘和内存之间以块为单位进行数据I/O转移。每块为一个或多个扇区,扇区的大小通常为512B。因此,实现文件系统需要使用磁盘和内存结构。文件系统在使用之前必须安装。安装通常比较简单,操作系统需要知道磁盘设备的名称以及在哪里安装文件系统。通常,一个磁盘设备可以分为不同的分区,每个分区可以安装不同的操作系统。每个分区的格式在不同的操作系统下有很大的差别,一般由引导块、管理块和数据块三部分组成。§6.4文件系统的实现6.4.3文件存储空间的分配1.连续分配连续分配(Contiguousallocation)方法要求每个文件在磁盘上占用一组连续的块。文件的连续分配可以用第一块的磁盘地址和连续块的数量来定义。如果文件有n块长并从位置b开始,那么该文件将占有块b、b+1、b+2、…、b+n-1。一个文件目录项包括开始块的地址和该文件所分配区域的长度。采用连续分配方法可把逻辑文件中的信息顺序地存放到一组邻接的物理盘块中,这样形成的物理文件称为连续文件(或顺序文件)。§6.4文件系统的实现文件FileA的起始地址为盘块2,长度为3,它占用了盘块2、3和4。文件FileB的起始地址为盘块9,长度为5,其占用的连续块为9、10、11、12和13。§6.4文件系统的实现2.链接分配链接分配(linkedallocation)克服了连续分配的所有缺点。采用链接分配,每个文件是磁盘块的链表。链接分配采用非连续的物理块来存放文件信息,这些非连续的物理块分布在磁盘的任何地方,它们之间没有顺序关系,其中每个物理块设有一个指针,指向其后续连接的另一个物理块,从而使得存放同一文件的物理块链接成一个串联队列。采用链接分配形成的物理文件

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功