计算机操作系统第七章-文件管理_第1页
计算机操作系统第七章-文件管理_第2页
计算机操作系统第七章-文件管理_第3页
计算机操作系统第七章-文件管理_第4页
计算机操作系统第七章-文件管理_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 文件管理第一节 文件和文件系统一、文件系统的引入1、用户在使用计算机的过程中遇到的有关软件资源的两个基本问题:l 产生了新的资源时:怎样长期存放;l 使用系统中现有资源时:怎样检索,如何使用;解决的方法:把信息以一种单元-文件-的形式存储在磁盘或其他外部存储介质上。文件由操作系统来统一管理,包括:文件的结构,命名,存取,使用,保护,以及实现方法。2、现代OS中引入文件系统的目的l 管理系统和用户的软件资源,让用户实现对信息的“按名存取”;l 提供信息的存储、检索、更新、共享和文件保护等一系列文件操作,使用户能方便有效地使用和操作文件;l 文件系统给用户带来的好处是:使用方便、数据安全、

2、接口统一3、文件系统的功能l 统一管理文件的存储空间(外存空间),实施存储空间的分配与回收l 实现文件的按名存取:名字空间 映射 存储空间l 实现文件信息的共享,并提供文件的保护和保密措施l 向用户提供一个方便使用的接口l 系统维护及向用户提供有关信息l 提供与I/O的统一接口文件系统在操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果。二、文件系统中的相关概念1、数据项:构成文件内容的基本单位l 基本数据项。这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位, 即原子数据,又称为数据元素或字段。它的命名往往与其属性一致。l 组

3、合数据项。它是由若干个基本数据项组成的,简称组项。2、记录:是一组相关数据项的集合,用于描述一个对象在某方面的一组属性。3、关键字:是能唯一标识一个记录的数据项。记录的关键字可以不止一个;关键字可以是一个基本数据项,也可以是一个组合数据项。4、文件:是指由创建者所定义的、 具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。 在有结构的文件中,文件由若干个相关记录组成(是记录的序列);而无结构文件则被看成是一个字符(字节)流。文件是文件系统中一个最大的数据单位,它描述了一个对象集。图7-1文件、记录和数据项之间的层次关系5、文件的属性:文件具有描述自己各方面特质的-属性,文件的属

4、性主要包括:P7l 文件类型。(可以从不同的角度对文件进行分类)l 文件长度。l 文件在外存上的物理位置。l 文件的建立(修改)时间。6、文件分类(1) 文件分类的目的文件的分类是为了更好地管理和使用,要科学地分门别类,对不同的文件进行不同的管理。这样,不仅提高了文件的存取速度,对文件的共享和保护也有利。(2) 文件的分类方法-P10-14l 按性质和用途分类l 按文件中数据的形式分类l 按存取控制属性分类l 按组织形式和处理方式分类u 用户在OS界面之上看到的文件分类-P9,还有在图形界面上看到的不同形状的文件图标。² 按逻辑结构分类² 按物理结构分类7、文件系统l 是操

5、作系统中统一管理信息资源(软件)的子系统,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。l 文件系统包含文件管理程序和被管理的全部文件l 是用户与外存的接口。系统软件为用户提供统一方法,访问存储在物理介质上的信息三、文件系统的层次模型OS的文件系统可以分为三个层次:P16-19l 最底层:被管理的对象及其属性;l 中间层:对对象进行管理和操作的软件的集合;l 最顶层:文件系统的用户接口四、文件操作1、最基本的文件操作(命令): P20-22l 创建文件l 删除文件l 读文件l 写文件l 截断文件l 设置文件的读/写位置2、为了方便用户使用文件,通常,OS都提供了数

6、条有关文件操作的系统调用,可将这些调用分成若干类:l 有关对文件属性进行操作的l 有关目录的l 用于对文件进行操作的l 用于实现文件共享和保护的3、关于文件的打开和关闭: P24第二节 文件的逻辑结构和内部数据访问方式一、文件组织的两种观点1、用户观点(逻辑结构):研究的是用户思维中的抽象文件,其目的是为用户提供一种结构清晰、使用简便的信息的数据结构。用户按此结构去存储、检索和加工处理文件内信息。它独立于文件的物理特性,又称文件组织。2、实现观点(物理结构):研究的是存储在物理设备介质上的实际文件,即文件在外存上的实际存放形式。它不仅与存储介质的性能有关,还与采用的外存分配方式有关。系统按此和

7、外部设备打交道,进行信息的存取。二、文件逻辑结构的类型1、有结构的(记录式)文件: P27-28记录可以是定长的、可以是变长的。记录式文件可以组织成:l 顺序文件。l 索引文件。l 索引顺序文件。l 直接文件数据文件通常用这种类型来组织。2、无结构的(流式)文件l 流式文件是有一定意义的字符(字节)流。l 信息单元的长度以字节为单位。对流式文件的访问,采用读写指针来指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例。l 大量的源程序、 可执行文件、 库函数等,所采用的就是无结构的文件形式,即流式文件。l 在UNIX系统中,所有的文件都被看作是流式文件;即使是有结构文件,也被视为流

8、式文件;文件系统本身不对文件进行内部结构处理。三、顺序文件1、记录被顺序排列在文件中。这种顺序可以是记录生成时的先后顺序(串结构,连续结构),也可以是按照某个关键字值的大小,递增或递减排列的顺序(顺序结构)。顺序文件的记录可以是定长的,也可以是变长的。图 7-3 定长和变长记录文件2、对顺序文件(Sequential File)的读/写操作顺序读写(顺序访问)l 定长记录:读指针rptr-指向下一次读出的记录地址;写指针wptr-指向下一次写入的记录地址。读完指针做相应修改:rptr+L=>rptr写完指针做相应修改:wptr+L=>wptrl 变长记录:每个记录长度存于记录前的单

9、元中。访问完, rptr+Li=>rptr; wptr+Li=>wptr3、顺序文件的优缺点l 顺序文件的最佳应用是对连续的记录进行批量存取时,即每次要读或写一大批记录时,对顺序文件的存取效率是所有逻辑文件中最高的;l 此外,也只有顺序文件才能存储在磁带上,并能有效地工作。u 在交互应用的场合,如果用户要求查找或修改单个记录,系统要逐个地查找诸记录。这时,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。u 插入或删除一个记录较困难。四、索引文件1、对于定长记录的顺序文件,如果要查找第i个记录, 可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:Ai

10、=i×L算出地址后可以对该记录进行直接访问;另外,如果记录按关键字值大小顺序存放,还可以对记录进行按键访问。2、对于可变长度记录的顺序文件,要查找其第i个记录时,须首先顺序访问前面的每个记录,从中获得相应记录的长度Li,然后才能按下式计算出第i个记录的首址。假定在每个记录前用一个字节指明该记录的长度,则 ,这样,变长记录式文件只能顺序访问。3、索引文件 为了对所有的记录式文件都能进行直接访问,给记录式文件建立一张索引表,文件中每个记录,在索引表中有一个表项,存放记录的关键字和地址。索引表本身是一个定长记录的顺序文件,记录按关键字值的大小顺序存放。通过查找索引表,找到一个记录的起始地址

11、,来完成对记录的直接访问和按键访问。关键字图 7-4 索引文件的组织五、索引顺序文件为了缩短索引表的长度,将文件中连续的若干个记录(有相同的关键字值或特征)作为一个记录组。在为文件建立索引表时,文件中每个记录组,在索引表中有一个表项,存放记录组的关键字和首地址。索引表本身是一个定长记录的顺序文件。通过查找索引表,直接找到每组第一个记录的起始地址,组内顺序查找,来完成对记录的访问。图 7-5 索引顺序文件六、直接文件和哈希文件直接文件,可根据给定记录的键值,直接获得该记录的地址。换言之,记录键值本身就决定了记录的地址。这种由记录键值到记录地址的换算被称为键值转换(Key to address t

12、ransformation)。组织直接文件的关键,在于用什么方法(转换函数)进行从记录键值到地址的转换。哈希(Hash)文件-一种直接文件:图 7-6 Hash文件的逻辑结构七、小结1、文件的逻辑结构(1) 记录式文件l 定长的l 变长的(2) 流式文件,可以看成定长记录式文件的特例2、记录的组织方式(1) 顺序文件,文件是记录的序列,记录的排列可以是串结构的,也可以是顺序结构的。顺序文件是文件的基本逻辑结构,所有的文件,都是顺序文件。l 对于定长的记录式文件,可以进行顺序访问,也可以进行直接访问;对于定长的顺序结构的记录式文件还可以进行按键访问。l 对于变长的记录式文件只能进行顺序访问。(2

13、) 索引文件,为了对所有的文件都能实现直接访问或按键访问、提高文件的访问速度,就为文件建立索引表,登记每个记录的键值或逻辑序号+地址。文件的索引表是一个定长的记录式文件。对索引文件中记录的访问,首先根据键值或逻辑序号、用按键访问方式检索索引表,找到记录的地址,再按照地址直接访问记录。(3) 索引顺序文件,为了缩短索引表的长度,将顺序文件中的记录按一定的规则分组。建立索引表,登记每组第一个记录的键值或逻辑序号+地址。对索引顺序文件中记录的访问,首先用按键访问方式检索索引表,找到记录所在组的首地址,然后从该地址开始,对文件进行顺序检索,找到要访问的记录。(4) 直接文件,每个记录,通过键值换算出地

14、址,进行存放和访问。现代OS一般已不在文件系统这一级过多关注文件的逻辑结构,所有的文件都是流式文件,文件的访问就是“对文件中的第几个字节进行访问”。文件内部的逻辑结构,到打开、加工文件的软件工具中去进一步解释,文件内部的数据访问由软件工具支持。第三节 文件目录一、概述文件存储器上存放着大量的文件。为了能对这些文件实施有效的管理-实现“按名存取”;方便、准确、快速的文件检索;实现文件共享与保护;允许文件重名-需要引入一种数据结构,将文件组织起来。这个数据结构就是目录。目录设计的目标就是实现上述管理功能。二、文件控制块1、什么是文件控制块文件控制块(FCB)是操作系统为管理文件而设置的数据结构,存

15、放了为管理一个文件所需的所有相关信息,也称文件说明。文件控制块是文件存在的标志。(对比进程控制块PCB)2、文件控制块的内容(1) 基本信息类 文件名; 文件物理位置; 文件逻辑结构; 文件的物理结构。(2) 存取控制信息类(存取权限信息)(3) 使用信息类 P91-92将多个文件控制块组织成序列就构成目录。三、索引结点1、为什么要引入索引结点: P94-952、索引结点的组织将文件名和FCB中的其他描述信息分开组织:每个文件的FCB,除去文件名,称为文件的索引结点(i结点)。将磁盘上所有文件的索引结点顺序组织成一个表,称为i结点表,表的每一行对应一个文件;在目录中,仅存放文件名和指向文件索引

16、结点的指针(记录是第几个i结点)。这样可以缩短磁盘目录表的长度,减少检索一个文件的访盘次数。这样,原来磁盘的目录表就被分解为目录表+i结点表两部分。3、磁盘索引结点存放在磁盘上的索引结点,每个文件有唯一的一个。其主要内容:(1) 文件主标识符 (2) 文件类型 (3) 文件存取权限 (4) 文件物理地址 (5) 文件长度 (6) 文件连接计数 (7) 文件存取时间一个逻辑盘上所有文件的索引结点顺序组成这张磁盘的i结点表。4、内存索引结点当打开文件时,其磁盘索引结点被拷贝到内存中,成为内存索引结点,以便以后的使用。所有已打开文件的内存索引结点组成内存i结点表。与磁盘索引结点比,内存索引结点增加以

17、下内容:(1) 索引结点编号,用于标识内存索引点;(2) 状态,指示i结点是否上锁或被修改;(3) 访问计数。记录有几个进程正在访问本文件。每当有一进程要访问此i结点时,将该访问计数加1,访问完再减1;(4) 文件所属文件系统的逻辑设备号;(5) 链接指针。设置有分别指向空闲链表和散列队列的指针。四、目录结构 将FCB顺序组织在一起,就构成了文件的目录,目录即是文件控制块的有序集合 目录项:每个目录项就是一个FCB 目录文件:为了实现对目录的管理,通常将目录表以文件的形式组织、保存在外存,这类文件就叫目录文件。1、单级目录的组成为整个文件系统建立一张目录表,每个文件占一个目录项。单级目录的优点

18、:简单且能实现目录管理的基本功能-按名存取。缺点:(1)查找速度慢;(2)不允许重名;(3)不便于实现文件共享。2、两级目录的组成在文件系统,尤其是多用户文件系统中,文件的“重名”很难避免,为了克服单级目录结构的缺点,引入了两级文件目录,组成如下:(1) 系统给每一个用户建立一张独立的用户目录表(UFD),用来存放属于该用户所有文件的FCB。UFD的结构与单级目录表相似,它以一个目录文件的形式存在磁盘上;(2) 整个文件系统有一张主目录表(MFD),其中的每一个表目(一行)用来存放一个UFD文件的FCB,这样就形成了两级目录。 优点:解决了文件的重名问题和文件共享问题;提高搜索速度,查找时间降

19、低 缺点:妨碍了用户间的文件共享,增加了系统开销 P108图 7-10 两级目录结构3、多级目录(树形目录)的组成将两级目录的这种层次结构推广,就形成多级目录。在多级目录结构中,MFD演变为文件系统的根目录,在根目录中可以存放一般文件的FCB,也可以存放目录文件的FCB;每一个目录文件对应一张目录表,其中既可以存放一般文件的FCB,也可以存放目录文件的FCB。图 7-11 多级目录结构 优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。 缺点:查找一个文件按路径名逐层检查,由于目录文件和普通文件都放在外存,多次访盘,影响速度。 路径:在树

20、形目录结构中,从根目录到任何普通文件,都只有一条惟一的通路。在该路径上从树的根(即主目录)开始,把全部目录文件名与普通文件名,依次地用“/”连接起来,即构成该普通文件的路径名。系统中的每一个文件都有惟一的路径名。如:/B/F/N 其他概念§ 当前目录§ 绝对路径§ 相对路径五、目录查询技术1、什么是目录查询系统利用用户提供的文件名(全名),找出该文件的FCB或对应的i结点;根据其中的物理地址(盘块号)换算出文件在磁盘上的首地址;最后驱动磁盘,将所需文件读入内存。目录查询方法主要有:线性检索和Hash检索。2、线性检索法以下示意是以目录表+i结点表的形式组织目录的。

21、图 7-12 查找/usr/ast/mbox的步骤3、Hash检索方法对于Hash文件(目录用Hash顺序组织),系统利用文件名换算成的索引值,到目录中去查找文件。在换算过程中,可能出现不同的文件名换算出相同的Hash值。一种处理“冲突”的有效规则是:(1) 在利用Hash法索引查找目录时,如果目录表中相应的目录项是空的,则表示系统中并无指定文件。(2) 如果目录项中的文件名与指定文件名相匹配,则表示该目录项正是所要寻找的文件所对应的目录项,故而可从中找到该文件所在的物理地址。(3) 如果在目录表的相应目录项中的文件名与指定文件名并不匹配,则表示发生了“冲突”,此时须将其Hash值再加上一个常

22、数(该常数应与目录的长度值互质),形成新的索引值,再返回到第一步重新开始查找。第四节 文件共享一、什么是文件共享 文件系统允许多个用户(进程)分享同一份文件,这种功能称为文件的共享。 文件共享可以节省存储空间、避免文件内容的二义性、实现进程间信息的交换。 文件共享有许多实现的方法,可以应用在单机环境,也可以应用在网络环境。二、基于索引结点的共享方法图 7-14 基于索引结点的共享方式 1、文件系统为每个文件建立索引结点,存放文件的FCB,并在索引结点中增加一个计数器count,记录共有几个用户(进程)共享该文件。用户目录中只需记录文件名和该文件索引结点的存放地址(文件的索引结点号)。2、文件的

23、用户(进程)分文件主和一般共享用户,只有文件主才能建立和删除文件。3、这种共享方法带来一些问题,如文件删除问题和针悬空问题。图 6-25 进程B链接前后的情况三、利用符号链(文件)实现共享1、当用户B要共享用户A的文件F时,文件系统为用户B建立一个LINK类的文件,文件的内容是文件F的绝对路径名。这个LINK文件放在B的目录中。当B要访问F时,由文件系统去打开LINK文件,读B的路径名,根据路径查找文件F。2、文件主A能建立和删除文件,其他共享用户只能进行其他被允许的操作。只是文件主才拥有指向其索引结点的指针;而共享该文件的其他用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。当文件的

24、拥有者把一个共享文件删除后,其他用户试图通过符号链去访问一个已被删除的共享文件时,会因系统找不到该文件而使访问失败,于是再将符号链删除,此时不会产生任何影响。 3、符号链实现的文件共享没有删除问题,但非文件主访问共享文件时,要多次访盘;要建立符号链文件,因此要增加一定的开销。第五节 文件保护一、什么是文件的保护1、文件的保护是指防止文件主或其他用户无意或有意破坏文件内容。也指防止系统出现异常、病毒或其他自然因素对文件内容的破坏。影响文件安全性的主要因素: P150相关主题-文件的保密:是指未经文件主许可,任何用户不得对该文件的内容和属性进行访问。2、文件保护采取的主要措施有:(1) 通过存取控制机制,防止人为因素所造成的文件不安全性;(2) 通过磁盘容错技术,防止磁盘部分故障造成的文件不安全性;(3) 通过后备系统,防止自然因素造成的整个文件存储器的不安全性。二、关于保护域1、访问权:一个进程对系统中的某个对象操作的权利。2、保护域:进程对一组对象访问权的集合,进程只能在指定的域内执行操作。进程与保护域之间,可以是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论