计算机操作系统考研辅导讲义(第4、5章).docx
计算机操作系统考研辅导讲义(第4、5章)四、文件管理4.1考试大纲(一)文件系统基础1 .文件概念2 .文件结构顺序文件;索弓I文件;索引顺序文件3 .目录结构文件控制块和索引结点;单级目录结构和两级目录结构;树形目录结构。4 .文件共享共享动机;共享方式;共享语义。5 .文件保护访问类型;访问控制。(二)文件系统实现1 .文件系统层次结构2 .目录实现3 .文件实现(三)磁盘组织与管理1 .磁盘的结构2 .磁盘调度算法3 .磁盘的管理4 .2知识点归纳5 .2.1文件系统基础文件系统的管理功能是通过把它所管理的程序和数据组织成一系列文件的方法来实现的。而文件是指具有文件名的若干相关元素的集合。元素通常是记录,而记录又是一组有意义的数据项的集合。基于文件系统的概念,可以把数据组成分为数据项、记录和文件三级。一、文件概念1、数据项在文件系统中,数据项是最低级的数据组织形式,可把它分成以下两种类型:(1)基本数据项。用于描述一个对象的某种属性的字符集,是组织中可以命名的最小逻辑数据单位,即原子数据。(2)组合数据项。它是由若干基本数据项组成的。简称组项。基本数据项除了数据名外,还应有数据类型。2、记录记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。一个记录应包含哪些数据项,取决于需要描述对象的哪个方面。而在诸多记录中,为了能唯一地标识一个记录,必须在一个记录的各个数据项中,确定出一个或几个数据项,把它们的集合称为关键字。3、文件文件是由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成;而无结构的文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位。此外,文件应具有自己的属性,属性可以包括:文件类型、文件长度、文件的物理位置、文件的建立时间等。二、文件结构文件是由一系列的记录组成的。文件系统设计的关键要素,是将这些记录构成一个文1件的方法,以及将一个文件存储到外存上的方法。因此,对于任何文件都存在着以下两种形式的结构:文件的逻辑结构。这是从用户的观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织。文件的物理结构。又称为文件的存储结构,是指文件在外存上的存储组织形式。这不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。无论是文件的逻辑结构,还是文件的物理结构,都会影响对文件的检索速度。下面介绍一下文件的逻辑结构。对文件逻辑结构所提出的基本要求,首先是能提高检索速度,其次是便于修改,第三是降低文件的存储费用。A、文件逻辑结构的类型文件的逻辑结构可分为两大类,一类是有结构文件,是指由一个以上的记录构成的文件,故又把它称为记录式文件;其二是无结构文件,是由字符流构成的文件,故又称为流式文件。(1)有结构文件在记录式文件中,每个记录都用于描述实体集中的一个实体,各记录有着相同或不同数目的数据项。记录的长度可分为定长和不定长两类。定长记录是指文件中所有记录的长度都是相同的,所有记录中的各数据项,都处在记录中相同的位置,具有相同的顺序和长度;变长记录是指文件中各记录的长度不相同。产生变长记录的原因,可能是由于一个记录中所包含的数据项数目并不相同,也可能是数据项本身的长度不定,但不论哪一种,在处理前,每个记录的长度是可知的。根据用户和系统管理上的需要,可采用多种方式来组织这些记录,形成下述的几种文件:顺序文件。是由一系列记录按某种顺序排列所形成的文件。其中的记录通常是定长记录,因而能用较快的速度查找文件中的记录。索引文件。当记录为可变长度时,通常为之建立一张索引表,并为每个记录设置一个表项,以加快对记录的检索速度。索引顺序文件。是上述两种文件构成方式的结合。它为文件建立一张索引表,为每一组记录中的第一个记录设置一个表项。(2)无结构文件大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。其长度以字节为单位。对流式文件的访问,则是采用读写指针来指出下一个要访问的字符。2、顺序文件(1)逻辑记录的排序文件是记录的集合。文件中的记录可以是任意顺序的,因此,它可以按照各种不同的顺序进行排列。可归纳为两种情况:第一种是串结构,各记录之间的顺序与关键字无关。通常的办法是由时间来决定,即按存入时间的先后排列。第二种情况是顺序结构,指文件中的所有记录按关键字排列。可以按关键词的长短从小到大排序,也可以从大到小排序,或按其英文字母顺序排序。对顺序结构的文件可利用某种有效的查找算法,获得更高的检索效率。(2)顺序文件的优缺点顺序文件的最佳应用场合是在对诸记录进行批量存取时,即每次要读或写一大批记录。此时,对顺序文件的存取效率是所有逻辑文件中最高的;此外,也只有顺序文件才能存储在磁带匕并能有效地工作。2在交互应用的场合,如果用户(程序)要求查找或修改单个记录,为此系统便要去逐个地查找诸记录。这是,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。顺序文件的另一个缺点是增加或删除记录比较困难。3、索引文件对于定长记录的文件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:Ai=i*L。然而,对于可变长度记录的文件,要查找其第i 个记录时,需首先计算出该记录的首地址。为此,需顺序地查找每个记录,从中获得相应记录的长度Li,然后才能按下式计算出第i个记录的首址。假定在每个记录前用一个字节指明该记录的长度,则Ai= Li Oi li i,可见,对于定长记录,除了可以方便地实现顺序存取外,还可较方便地实现直接存取。然而对于变长记录就较难实现直接存取。为了解决这一问题,可为变长记录文件建立一张索引表,对主文件中的每个记录,在索引表中设立一个相应的表项,用于记录该记录的长度L和指向该记录的指针(指向该记录在逻辑地址空间中的首址)。由于索引表是按记录键排序的,因此,索引表本身是一个定长记录的顺序文件,从而可以方便地实现直接存取。索引表逻辑文件图4T索引文件的组织在对索引文件进行检索时,首先是根据用户提供的关键字,并利用折半查找法去检索索引表,从中找到相应的表项;再利用该表项中给出的指向记录的指针值,去访问所需的记录。而每当要向索引文件中增加一个新记录时,便需对索引表进行修改。由于索引文件可有较快的检索速度,故它主要用于对信息处理的及时性要求较高的场合。使用索引文件的主要问题是,它除了有主文件外,还需配置一张索引表,而且每个记录都要有一个索引项,因此提高了存储费用。4、索引顺序文件索引顺序文件可能是最常见的一种逻辑文件形式。它有效地克服了变长记录文件不便于直接存取的缺点,而且所付出的代价也不算太大。它是顺序文件和索引文件想结合的产物。将顺序文件中的所有记录分为若干个组(例如50个记录为一组);为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有该记录的键值和指向该记录的指针。如图4-2所示:在对索引文件进行检索时,首先也是利用用户(程序)所提供的关键字以及某种查找算法,去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置;然后再利用顺序查找法去查找主文件,从中找到所要求的记录。键逻辑地址An QiBao RongChen Lin逻辑文件姓名其它属性An QiAn KangBao Rong图4-2索引顺序文件如果在一个顺序文件中所含有的记录数为N,则为检索到具有指定关键字的记录,平均须查找N/2个记录;但对于索引顺序文件,则为能检索到具有指定关键字的记录,平均只要查找N个记录数,因而检索效率比顺序文件约提高N/2倍。B、文件物理结构(外存分配方式)文件的物理结构(文件外存分配方式)主要考虑怎样才能有效地利用外存空间和如何提高对文件的访问速度。1、连续分配一顺序式的文件结构如同内存的动态分区分配,会产生外存碎片,可利用紧凑方法,将碎片拼接成一大片。优点:顺序访问容易,连续分配支持直接存取顺序访问速度快。缺点:要求有连续的存储空间必须事先知道文件的长度2、链接分配:隐式链接和显式链接优点:可离散分配,解决了碎片问题缺点:只适合于顺序访问,对随机访问极其低效,不支持直接访问,不可靠。显式链接:文件分配表FAT 3、索引分配单级索引、多级索引、混合索引方式三、目录结构在现代计算机系统中,都要存储大量的文件。为了能对这些文件实施有效的管理,必须对它们加以妥善组织,这主要通过文件目录实现。文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。对目录管理的要求如下:(1)实现“按名存取”。即用户只需向系统提供所需访问文件的名字,便能快速准确地找到指定文件在外存上存储位置。这是目录管理中最基本的功能,也是文件系统向用户提供的最基本的服务。(2)提高对目录的检索速度。通过合理地组织目录结构的方法,可加快对目录的检索速度,从而提高对文件的存取速度。(3)文件共享。在多用户系统中,应允许多个用户共享一个文件。这样就须在外存中只保留一份该文4件的副本,供不同用户使用,以节省大量的存储空间,并方便用户和提高文件的利用率。(4)允许文件重名。系统应允许不同用户对不同文件采用相同的名字,以便于用户按照自己的习惯给文件命名和使用文件。1、文件控制块和索引结点为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”。文件管理程序可借助于文件控制块中的信息,对文件施以各种操作。文件与文件控制块一一对应,而人们把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项。通常,一个文件目录也被看作是一个文件,称为目录文件。(1)文件控制块为了能对系统中的大量文件施以有效地管理,在文件控制块中,通常含有以下三类信息,即基本信息、存取控制信息及使用信息。基本信息类包括:文件名、文件的物理位置、文件的逻辑结构、文件的物理结构。存取控制信息类包括:文件主的存取权限、核准用户的存取权限以及一般用户的存取权限。使用信息类包括文件建立的日期和时间、文件上一次修改的日期和时间及当前使用信息。(2)索引结点稍加分析发现,在检索目录文件的过程中,只用到了文件名,仅当找到一个目录项(即其中的文件名与指定要查找的文件名相匹配)时,才需从该目录项中读出该文件的物理地址。而其它一些对该文件进行描述的信息,在检索目录时一概不用,显然,这些信息在检索目录时,不需调入内存。为此,在有的系统中如UNIX系统,便采用了把文件名和文件描述信息分开的办法,使文件描述信息单独形成一个称为索引结点的数据结构。在文件目录中的每个目录项,仅由文件名和指向该文件所对应的索引结点指针所构成。磁盘索引结点是存放在磁盘上的索引结点。每个文件有唯一的一个磁盘索引结点,它主要包括文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间。内存索引结点是存放在内存中的索引结点。当文件被打开时,要将磁盘索引结点拷贝到内存的索引结点中,便于以后使用。在内存索引结点中又增加索引结点编号、状态、访问计数、文件所属文件系统的逻辑设备号、链接指针等。2、单级目录结构这是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中含文件名、文件扩展名、文件长度、文件类型、文件物理地址以及其它文件属性。此外,为表明每个目录项是否空闲,又设置了一个状态位。每当要建立一个新文件时,必须先检索所有的目录项,以保证新文件名在目录中是唯一的。然后再从目录表中找出一个空白目录项,填入新文件的文件名及其它说明信息,并置状态位为1,删除文件时,先从目录中找到该文件的目录项,回收该文件所占用的存储空间,然后在清除该目录项。单级目录的优点是简单且能实现目录管理的基本功能一一按名存取,但却存在下述一些缺点:查找速度慢;不允许重名;不便于实现文件共享。3、两级目录为了克服单级目录所存在的缺点,可以为每一个用户建立一个单独的用户文件目录 UFDo这些文件目录具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统再建立一个主文件目录MFD;在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。5Alpha TestReport Test Beta Device Misx图4-3两级目录结构在两级目录结构中,如果用户希望有自己的用户文件目录,可以请求系统为自己建立一个用户文件目录;如果自己不再需要UFD,也可以请求系统管理员将它撤消。在有了 UFD 后,用户可以根据自己的需要创建新文件。每当此时,OS只需检查该用户的UFD,判断在该UFD中是否已有同名的另一个文件。若有,用户必须为新文件重新命名;若无,便在UFD中建立一个新目录项,将新文件名及其有关属性填入目录项中,并置其状态位为“1”。当用户要删除一个文件时,OS也只需查找该用户的UFD,从中找出指定文件的目录项,在回收该文件所占用的存储空间后,将该目录项删除。如图4-3所示两级目录结构基本上克服了单级目录的缺点,并具有以下优点:提高了检索目录的速度;在不同的用户目录中,可以使用相同的文件名;不同用户还可使用不同的文件名来访问系统中同一个共享文件。4、树形目录结构对于大型文件系统,通常采用三级或以上的目录结构,以提高对目录的检索速度和文件系统的性能。多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把数据文件称为树叶,其它的目录均作为树的结点。图示出了树型目录结构。图中用方框代表目录文件,圆圈代表数据文件。在该树型目录结构中,根目录中有三个用户的总目录项A、B 和C。在B项所指出的B用户的总目录B中,又包括三个分目录F、E和D,其中每个分目录中又包含多个文件。如B目录中的F分目录中,包含J和N两个文件。为了提高文件系统的灵活性,应允许在一个目录文件中的目录项既是作为目录文件的FCB,又是作为数据文件的FCB,这一信息可用目录项中的一位来指示。例如,在图中,用户A的总目录中,目录项A是目录文件的FCB,而目录项B和D则是数据文件的FCB。如图4-4所示:6图4-4树型目录结构5,图形目录结构图形目录结构是在树形目录结构的基础上形成的一种目录,树形目录结构要保证目录结构中没有环,如果有环就会形成图状结构。在图状结构目录中通过link文件实现文件共享;在此结构中,实现目录的遍历和文件的删除等操作时,可能会存在问题,相对于数形目录,图形目录结构需要一些额外的措施来解决上述问题,如采用“垃圾收集”机制来解决文件的删除问题等。四、文件共享1、共享动机在现代计算机系统中,必须提供文件共享手段,即指系统应允许多个用户(进程)共享同一份文件。这样,在系统中只需保留该共享文件的一份副本。如果系统不能提供文件共享功能,就意味着凡是需要该文件的用户,都需各自备有此文件的副本,显然这会造成对存储空间的极大浪费。随着计算机技术的发展,文件共享的范围也在不断扩大,从单机系统中的共享,扩展为多机系统的共享,进而又扩展为计算机网络范围的共享,甚至实现全世界的文件共享。2、共享方式(1)基于索引结点的共享方式在树型结构的目录中,当有两个(或多个)用户要共享一个子目录或文件时,必须将共享文件或子目录链接到两个(或多个)用户的目录中,才能方便地找到该文件,如图所示。此时该文件系统的目录结构已不再是树型结构,而是一个有向非循环图。如图4-5所示:图4-5包含有共享文件的文件系统如何建立B目录与共享文件之间的链接呢?如果在文件目录中包含了文件的物理地址,即文件所在盘块的盘块号,则在链接时,必须将文件的物理地址拷贝到B目录中去。但如果以后B或C还要继续向该文件中填加新内容,也必然要相应地增加新的盘块,而这些新增加的盘块,也只会出现在执行了操作的目录中。可见,这种变化对其他用户而言,是不可见的,因而新增加的这部分内容已不能被共享。为了解决这个问题,可以引用索引结点,即诸如文件的物理地址及其它的文件属性等信息,不再是放在目录项中,而是放在索引结点中。在文件目录中只设置文件名及指向相应索引结点的指针,如图4-6所示。此时,由任何用户对文件进行的追加或修改操作,所引起的相应结点内容的改变(例如,增加了新的盘块和文件长度等),都是其他用户可见的,从而也就能提供给其他用户来共享。在索引结点中还应有一个链接计数count,用于表示链接到本索引结点上的用户目录项的数目。当count=3时,表示有三个用户目录项连接到本文件中,或者说是有三个用户共享此文件。当用户C创建一个新文件时,他便是该文件的所有者,此时将count置1。当有用户B 要共享此文件时,在用户B的目录中增加一目录项,并设置一指针指向该文件的索引结点,此时文件主仍然是C, count=2。如果用户C不再需要此文件,也不能将此文件删除。因为若删除了该文件,必然删除了该文件的索引结点,这样便会使B的指针悬空,而B可能正在此文件上执行写操作,此时也因此半途而废。8C的目录C的目录C的目录C的目录owner=ccount=l-o图4-6基于索引结点的共享方式但如果C不删除此文件而等待B继续使用,这样,由于文件主是C,如果系统要记帐收费,则C必须为B使用此共享文件而付帐,直至B不在需要。如图4-7所示。拥有者删除文件后owner=ccount=2链接前跳接后(2)利用符号链实现文件共享为使能共享的一个文件夹,可由系统创建一个类型的新文件,也取名为,并将写入的目录中,以实现的目录与文件的链接。在新文件中只包含被链接文件的路径名。这样的链接方法被称为符号链接。新文件中的路径名,只被看作是符号链,当要访问被链接的文件且正要读类新文件时,此要求将被截获,根据新文件中的路径名去读该文件,于是就实现了用户对文件的共享。在利用符号链方式实现文件共享时,只是文件主才拥有指向其索引结点的指针;而共Wang用户文件目录9享该文件的其它用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。这样,这样也就不会发生在文件主删除一共享文件后留下一悬空指针的情况。当文件的拥有者把一个共享文件删除后其他用户试图通过符号链去访问一个已被删除的共享文件时,会因系统找不到该文件而使访问失败,于是再将符号链删除,此时不会产生任何影响。符号链的共享方式也存在自己的问题:当其它用户去读共享文件时,系统是根据给定的文件路径名,逐个分量地去查找目录,直到找到该文件的索引结点。因此,在每次访问共享文件时,都可能要多次读盘,这使得每次访问文件的开销很大,且增加了启动磁盘的频率。此外,要为每个共享用户建立一条符号链,由于该链实际上是一个文件,尽管该文件非常简单,却要为它配置一个索引结点,要耗费一定的磁盘空间。符号链方式有一个很大的优点,是它能够用于链接世界上任何地方机器中的文件。五、文件保护在现代计算机系统中,存放了愈来愈多的宝贵信息供用户使用,给人们带来了极大的好处和方便;但同时也潜在有不安全性。影响文件安全性的主要因素有:人为因素、系统因素、自然因素。存取控制机制是确保文件安全性的重要措施。1、访问类型。我们可利用一个矩阵来描述系统的存取控制,并把该矩阵称为访问矩阵。访问矩阵的行代表域,列代表对象,矩阵中的每一项是由一组访问权组成。因为对象已由列显式地定义,故可以只写出访问权而不必写出是对哪个对象的访问权,每一项的访问权access(i, j)定义了在域Di中执行的进程能对对象Qj施加的操作集。访问矩阵中的访问权,通常是由资源的拥有者或者管理者所决定的。当用户创建一新文件时,创建者便是拥有者,系统在访问矩阵中为新文件增加一列,由用户决定在该列的某个项中应具有哪些访问权,而在另一项中又应具有哪种访问权。当用户删除此文件时,也要相应地将该文件在访问矩阵的列中取消。访问矩阵如图5-8所示,它是由3个域和8个对象组成。当进程在域D1中执行时,它能读文件F1,读写文件F2。进程在域D2中执行时,它能读文件F3、F4、F5及写文件 F4、F5和执行文件F文件1文件2文件3文件4文件5文件6打1DiRR.Wd2RR.W.ER.WW6R.W.EW,此外还可打印。只有当进程在域D中运行时,才可使用绘图机。R:读;W:写;E:执行图4-8一个保护矩阵上面的访问矩阵,在概念上是简单的,极易理解。但在具体实现上,却有一定的困难。这是因为,在稍具规模的系统中,域的数量和对象的数量都可能很大。保存访问矩阵需要比较大的存储空间,同时进行访问时也十分费时。事实上,每个用户(进程)所需访问的对象,通常都是非常有限的,因此访问矩阵是非常稀疏的矩阵,目前实现的方法,是将访问矩阵按列划分,或者按行划分,分别形成访问控制表或访问权利表。(1)访问控制表指对访问矩阵按列进行划分,为每一列建立一张访问控制表。在该表中,已把矩阵中属于该列的所有空项删除,此时的访问控制表是由一有序对(域,权集)所组成。由于在大多数情况下,空项远多于非空项,因而使用访问控制表可以显著地减少所占用的存储空间,并能提高查找速度。10域是一个抽象的概念,它能以各种方式实现:每个用户可以是一个域,这是最常见的一种情况,一个用户是一个域,而对象则是文件,此时,用户能够访问的文件集和访问权限取决于用户的身份;每个进程是一个域,此时,能够访问的对象集中的各访问权,取决于进程身份。(2)访问权限表如果把访问矩阵按行进行划分,便可由每一行构成一张访问权限表,换言之,是由一个域对每一个对象可以执行的一组操作所构成的表。表中的每一项即为该域对某一对象的访问权限,当域为用户(进程),对象为文件时,访问权限表便可用来描述一个用户(进程)对每一文件所能执行的一组操作。如图对应于图中域D2的访问权限表。在表中共有三个字段,其中,类型字段用于说明对象的类型;权利字段是指域D2对该对象所拥有的访问权限;对象字段是一个指向相应对象的指针。由该表可以看出,域D2可以访问的对象有4个,即文件3、4、5和打印机,对文件3类型权利对象0文件R指向文件3的指针1RWE指向文件4的指针2Z flRW-指向文件5的指针3打印机-W-指向打印机1的指针图4-9访问权限表访问权限表是安全的,那么由它所保护的对象才可能是安全的。因此,访问权限表不允许被用户(进程)直接访问。通常,可采用三种方式对访问权限表进行保护:将访问权限表存储到系统区内的一个专用区中,只允许OS对它进行访问;为每个对象建立一个标识位,用于标明该对象是否要访问权限表,该标识位不允许被用户程序访问;可以将访问权限表放在用户空间,但须将表中的每一个访问权限都译成密码。目前大多数系统都同时采用访问控制表和访问权限表。2、访问控制在计算机应用范围迅速扩大的同时,如何保证系统安全性的问题,变的更为重要了。在稍具规模的系统中,都加强了对系统安全性的管理,不少系统已经从多个级别上来保证系统的安全性。下面介绍在四个级别上对文件进行安全性管理的措施:(1)系统级安全管理系统级安全管理的主要任务,是不允许未经核准的用户进入系统,从而也就防止了他人非法地使用系统中的各类资源(包括文件)。系统级的安全管理有以下几种主要方法:a.注册。注册的主要目的是使系统管理员能够掌握要使用系统的诸用户的情况,并保证用户名在系统中的唯一性。为此,在系统中保存了一张用户表,每个注册用户在其中占有一个表项。表项中包括用户名和指定的口令。b.登录。用户注册后,若要使用本系统,还需进行登录。登录的主要目的,是通过核实该用户的注册名及口令来检查该用户使用系统的合法性。c.若干措施。系统管理员可采取以下措施,来进一步保证文件的系统级安全性:规定用户定期地修改口令,以防口令被窃;限定用户在指定的终端上机,不能任意更换终端;限定用户在规定的时间上机,其它时间不得上机。(2)用户级安全管理是为了给用户分配”文件访问权”而设计的。用户对文件访问权限的大小,是根据用户性质、需求及文件属性而分配的。用户级安全包括两方面的内容:a.用户分类11不同系统对用户进行分类的方法各不相同,在一些系统中把用户分为四类:超级用户。这是具有最高文件访问权的用户,通常是系统管理员;系统操作员。系统赋予其较高的文件访问权;用户。在登录时,系统根据其需求,为他指定对一系列文件的访问权。顾客。系统限定他只能访问某些特定文件。b.文件访问权已经在系统中登录过的用户都具有指定的访问权。访问权决定了用户对哪些文件能执行哪些操作。当对某用户赋予其访问指定目录的权限时,他便具有了对该目录下的所有子目录和文件的访问权。某种访问权也可被赋予一个用户组,这时,该组中的每个成员便都具有这种访问权。可以定义八种访问权限:建立、删除、打开、读、写、查询、修改、父权等。(3)目录级安全管理是为保护系统中的各种目录而设计的,它与用户权限无关。为保证目录的安全,规定只有系统核心才具有写目录的权利。通常,系统是分别为用户和目录独立地指定权限的。当用户试图访问一目录时,核心将通过对用户访问权和目录中的访问权的比较后,用户才能获得有效的访问权。即在用户和目录中都有的访问权;或者说,有效访问权是上述两个权限的交集。(4)文件级安全管理是通过系统管理员或文件主对文件属性的设置,来控制用户对文件的访问。通常可设置以下几种属性:只执行、隐含、索引、修改、只读、读/写、共享、系统,用户对文件的访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定。或者说,是有效权限和文件属性的交集。4.2.2文件系统实现一、文件系统层次结构如图示出了文件系统的模型。可将该模型分为三个层次,其最低层是对象及其属性;中间层是对对象进行操纵和管理的软件集合;最高层是文件系统提供给用户的接口。用户(程序)文件系统接口时时领操纵和管理的软件的集合对象及其属性1、对象及其属性。文件管理系统管理的对象有:(1)文件。它作为文件管理的直接对象。(2)目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录。对目录的组织和管理是方便用户和提高对文件存取速度的关键。(3)磁盘存储空间。文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能提高对文件的存取速度。2、对对象操纵和管理的软件集合12这是文件管理系统的核心部分。文件系统的功能大多是在这一层实现的,其中包括:对文件存储空间的管理、对文件目录的管理、用于将文件的逻辑地址转换为物理地址的机制、对文件读和写的管理,以及对文件的共享和保护等功能。3、文件系统的接口为方便用户使用文件系统,文件系统通常向用户提供两种类型的接口:(1)命令接口。这是指作为用户与文件系统交互的接口。用户可通过键盘终端键入命令,取得文件系统的服务。(2)程序接口。这是指作为用户程序与文件系统的接口。用户程序可通过系统调用来取得文件系统的服务。二、文件的实现在实现文件的存储时,最重要的问题是如何来记录一个文件被存放在哪一些磁盘块中。由于磁盘具有可直接访问的特性,故当利用磁盘来存放文件时,具有很大的灵活性。在为文件分配外存空间时所要考虑的主要问题是:怎样才能有效地利用外存空间和如何提高对文件的访问速度。目前常用的外存分配方法有:连续分配、链接分配和索引分配三种。通常,在一个系统中,仅采用其中的一种方法来为文件分配外存空间。1、连续分配方式连续分配要求为每一个文件分配一组相邻接的盘块,在采用连续分配方式时,可把逻辑文件中的记录顺序地存放到邻接的各物理盘块中,这样形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。这种分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。为使系统能找到文件存放的地址,应在目录项的“文件物理地址”字段中,记录该文件第一个记录所在的盘块号和文件长度。连续分配的主要优点:顺序访问容易。访问一个占有连续空间的文件,非常容易;顺序访问速度快。因为由连续分配所装入的文件,所占用的盘块可能是位于一条或几条相邻的磁道上,这时磁头的移动距离最少,因此访问速度快。连续分配的主要缺点:要有连续的存储空间;必须事先知道文件的长度。2、链接分配方式如同内存管理一样,连续分配所存在的问题就在于:必须为一个文件分配连续的磁盘空间。如果将一个逻辑文件存储到外存上时,并不要求为整个文件分配一块连续的空间,而是可以将文件装到装到多个离散的盘块中,就可消除上述缺点。在采用链接分配方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。由于链接分配是采取离散分配方式,消除了外部碎片,故而显著地提高了外存空间的利用率;又因为是根据文件的当前需要,为它分配必需的盘块,当文件动态增长时,可动态地再为它分配盘块,无须事先知道文件的大小。此外,对文件的增、册人改也十分方便。链接方式又可分为隐式链接和显式链接两种形式。(1)隐式链接在采用隐式链接分配方式时,在文件目录的每个目录项中,都须含有指向链接文件第一盘块和最后一个盘块的指针。而在每个盘块中都含有一个指向下一个盘块的指针。隐式链接分配方式的主要问题在于:它只适合顺序访问,对随机访问是极其低效的;只通过链接指针来将一大批离散的盘块链接起来,任何一个指针出问题,都会导致整个链的断开。(2)显式链接把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中,该表在整个磁盘13仅设置一张,如图所示。表的序号是物理盘块号,从0开始,直至NT: N为盘块总数。在每个表项中存放链接指针,即下一个盘块号。在该表中,凡是属于某个文件的第一个盘块号,或者是每一条链的链首指针所对应的盘块号,均作为文件地址被填入相应文件的FCB的“物理地址”字段中。由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。由于分配给文件的所有盘块号都放在该表中,故把该表成为文件分配表。MS-DOS. Windows及OS/2等操作系统都采用了 FAT。物理块号0102434551图4Tl显式链接结构3、索引分配(1)单级索引分配链接分配方式虽然解决了连续分配方式所存在的问题,但又出现了两个问题:其一不能支持高效的直接存取,要对一个较大的文件直接存取,须首先在FAT中顺序地查找许多盘块号;FAT需占用较大的内存空间,由于一个文件所占用的盘块号,是随机地分布在FAT 中的,因而只有将整个FAT调入内存,才能保证在FAT中找到一个文件的盘块号,当磁盘容量较大时,FAT可能要占用数MB以上的内存空间,这是令人难以接受的。事实上,在打开某个文件时,只需把文件占用的盘块的编号调入内存即可,完全没有必要将整个FAT调入内存。为此,应将每个文件所对应的盘块号集中地放在一起。索引分配方法就是基于这种想法所形成的一种分配方法。它为每个文件分配一个索引块(表),在把分配给该文件的所有盘块号,都记录在该索引块中,因而该索引块就是一个含有许多盘块号的数组。在建立一个文件时,便须在为之建立的目录项中,填上指向该索引块的指针。索引分配方式支持直接访问,当要读文件的第i个盘块时,可以方便地直接从索引块中找到第i个盘块的盘块号;另外索引分配方式也不会产生外部碎片,当文件较大时,索引分配方式无疑要优于链接分配方式。索引分配方式的主要问题是:可能要花费较多的外存空间。对于小文件采用索引分配方式时,其索引块的利用率是极低的。(2)多级索引分配当操作系统为一个大文件分配磁盘空间时,如果所分配出去的盘块的盘块号已经装满一个索引块时,操作系统便为该文件分配另一个索引块,用于将以后继续为之分配的盘块号记录于其中。依次类推,再通过链指针将各索引块按序链接起来。当文件太大时,索引块太多,这种方法是低效的。此时,应为这些索引块再建立一级索引,称为第一索引。即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块等索引块的盘块号,填入到此索引表中,这样便形成了两级索引分配方式。如果文件非常大时,还可用三级、四级索引分配方式。(3)混合索引方式三、目录的实现当用户要访问一个已存文件时,系统首先利用用户提供的文件名对目录进行查询,找出该文件的文件控制块或对应索引结点;然后根据FCB或索引结点中所记录的文件物理地址(盘块号),换算出文件在磁盘上的物理位置;最后,再通过磁盘驱动程序,将所需文件读14入内存。目前对目录进行查询最常用的方式是线性检索法。线性检索法又称为顺序检索法。在单级目录中,利用用户提供的文件名,用顺序查找法直接从文件目录中找到指名文件的目录项。在树型目录中,用户提供的文件名是由多个文件分量名组成的路径名,此时须对多级目录进行查找。假定用户给定的文件路径名是/usr/ast/mbox,则查找/usr/ast/mbox的文件的过程如图所示。其查找过程说明如下:首先,系统应先读入第一个文件分量名usr,用它与根目录文件(或当前目录文件)中各目录项中的文件名顺序地进行比较,从中找出匹配者,并得到匹配项的索引结点号6,再从6号索引结点中得知usr目录文件放在132号盘块中,将该盘块内容读入内存。接着,系统再将路径名中的第二个分量名ast读入,用它与放在132号盘块中的第二级目录文件中各目录项的文件名顺序进行比较,又找到匹配项,从中得到ast的目录文件放在26号索引结点中,再从26号索引结点中得知/usr/ast是存放在496号盘块中,再读入496号盘块。然后,系统又将该文件的第三分量名mbox读入,用它与第三级目录文件/usr/ast中各目录项中的文件名的比较,最后得到/usr/ast/mbox的索引结点号为60,即在60号索引结点中存放了指定文件的物理地址。目录查询操作到此结束。如果在顺序查找过程中,发现有一个文件分量名未能找到,则应停止查找,并返回“文件未找到”的信息。根目录结点6是的/usr目录132盘块是/usr的目录结点26是496号盘块是/usr/ast的目录6*I19dick30crik51jim26ast45bal26*664grants92books60inbox81minik!7src11* a4bin7dev14lib9etc6usr8tmp图4T2查找/usr/ast/mbox的步骤4.2.3磁盘组织与管理一、磁盘的结构磁盘设备是一种相当复杂的机电设备,这里仅对磁盘的某些性能,如数据的组织、磁盘的类型和访问时间等方面做扼要介绍。