您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统简明教程第5章4
15.3文件目录和文件检索问题:文件一旦存入,操作系统怎样找到?文件系统的一个主要功能:把文件名和文件存储空间的物理地址联系起来.文件目录:文件符号名到文件存储空间的物理地址之间的转换机构.25.3.1文件控制块从操作系统的角度来看,文件包含文件控制块FCB(FileContorlBlock)和文件体两部分。文件控制块是一个用于存放文件的标识、说明、定位和控制等信息的数据结构。FCB的基本内容应该包含系统中用到的文件属性和文件定位信息,由于设计的目标和管理方法的差异,每个系统中的FCB内容和格式不尽相同。文件名扩展名属性存放方式存取限制建立时间日期口令物理地址35.3.2目录结构文件目录是一张记录系统中文件标识符、存放文件属性及地址的表格,也可以看作文件控制块的集合。由于目录本身是被查找和修改的对象,现代的操作系统通常把目录表处理成另一种特殊的文件,称为目录文件。文件系统有关于目录文件的操作称为目录管理。41.目录项和目录文件在目录管理中,每一个文件控制块FCB称为一个目录项,包含文件名、属性、文件地址等信息。还有些操作系统的目录项中只含有文件名和指向另一个数据结构的指针,文件属性和物理地址等存放在这个数据结构中。这个数据结构称作索引结点。目录项的集合构成了目录表,即目录文件。在UNIX系统中就是这样处理的,在用户需要打开文件时,操作系统根据文件名查找目录表,找到符合条件的目录项后从中取得文件属性和磁盘地址,放到内存与打开文件有关的表目中。52.常用目录结构1)单级目录每个系统可以维护目录表的数目不同,最简单的设计方案是维护一个单独的目录表,其中包含所有用户的文件说明信息,用户通过一张目录表的查找即可确定有无可用的文件,这种目录称为单级目录。根目录ABC目录文件62)二级目录对单级目录的一种有效的改进方法是为所有用户建一个目录文件,称为主目录,让每个用户拥有一个单独的目录文件,即用户目录或子目录,将子目录的地址记入主目录中。这种目录称为二级目录。主目录JACKALICETOMABCBA73)树型目录虽然二级目录解决了不同用户的文件同名问题,但对于有较多文件的用户仍然不够满意。为了方便用户,可以将二级目录扩充成多级目录,即允许一个用户创建多个目录,这样就形成了所谓树型目录结构。例如一个用户可以把它的作业、程序、游戏等放在不同的目录中以便于逻辑管理根目录JACKTOMPROGAMEABCALICEGAMEJ1EDHOMEWORKA84)无环图目录结构有时多个用户希望在文件系统中存放和使用同一文件,存储该文件的多个拷贝显然是浪费空间,所以文件系统应该具有文件共享的能力,因此引入一种无环图目录结构。这种结构允许目录项指向被共享的子目录或文件根目录JACKTOMPROGAMEABCALICEGAMEJ1DHOMEWORK共享链共享链93.路径使用目录树来组织文件系统时,需要用某种方法指明文件在目录树中的位置。通常有两种方法:一种方法是绝对路径,即由根目录到文件所经过的所有目录和文件名组成,如在图5-28中,文件C在DOS系统中可以表示为\TOM\GAME\C,在UNIX系统中则表示为/TOM/GAME/C。另一种方法为相对路径,即由相对于当前目录的目录名和文件名组成。例如,如果当前目录为/TOM,则文件C表示为GAME/C。一般情况下,相对路径表示起来更加简单和方便。但是,如果要存取一些特殊文件,而不知道当前目录,就必须使用绝对路径。10在大多数系统中,每个进程都有自己的工作目录,所以进程开始工作时可能会切换到自己的目录。但是,如果进程退出后不改回原先系统的目录,其它程序可能无法正常运行。所以进程返回时,一般要调用系统过程回到原来的工作目录。很多操作系统支持两个特殊的目录项“.和“..”,读作“dot”和“dotdot”。前者表示当前目录,后者指当前目录的父目录。例如在DOS系统中,命令“cd..”表示进入父目录,从而避免输入较长的绝对路径。114.文件目录的管理由于文件是通过目录表查询的,当访问一个文件时,可能会查询多个目录。很多系统采取的方法是将正在使用的那些目录表复制到主存,这样既不占太多的存储空间,又可显著减少查询的时间。目录文件的打开,需要做的工作是将文件的有关目录表目复制到主存的约定区域,同时建立用户和这个文件的联系,而关闭目录文件的工作是系统将主存中该文件的目录表目删除或重新写回外存12某个文件的目录表目已经存在于主存中,那么目录查询工作是不必要的。为了维护当前已打开的目录,系统在内存中设有一张“打开文件表”,记录所有被打开文件的文件说明和属性等信息。用户先在“打开文件表”中查询,对于已经登记的文件,可免去在外存中的目录查询。而每个用户各有一张用户打开文件表,记录各用户所打开的文件。135.3.3文件目录检索当一个用户给出文件名要求访问文件时,系统如何查找?以树型目录为例:(1)找到根目录中该用户的表目,确定此用户的主目录的物理位置。(2)在用户的主目录中找到子目录的物理位置。(3)查询子目录中相应文件的表目。(4)确定该文件的起始物理地址。141.顺序检索依次查找目录表中的表目,将查找的文件名与表目中的文件名字段一一比较,以确定是否找到了所需的文件。2.哈希(Hash)查找例:假定目录表中的文件名为6个字符,如不足6个,用空格补足;多于6个,只取前6个。我们采用6个字符的ASCII码“异或”作为Hash函数。假设文件名为OFFICE,则:INDEX=Hash(FileName)=O⊕F⊕F⊕I⊕C⊕E。由此得出一个十进制数作为它在表目中的存放位置。当然,查询时采用同样的Hash函数来确定它的顺序。155.3.4文件目录实例3.UNIX目录采用索引节点结构。每个目录项只包含一个文件名及其对应的索引节点编号。有关文件类型、长度、时间、拥有者和磁盘块号等所有信息都放在索引节点中,如图5-31所示。这里需要说明,不同版本的UNIX目录项占用的字节数可能不同,但基本布局是一样的。142字节文件名索引节点编号165.4文件共享与保护的实现5.4.1文件共享“静态共享”“连访”“连访文件”文件的说明属性中必须增加一项“链接”属性,用来存放链接的目标;在有些系统中……;撤消时……另一种方法:整个系统形成了两类表,一类是整个系统一张的基本文件目录表(BFD);另一类是用户的符号文件目录表(SFD),每个用户一张17图5-32具有BFD和SFD的文件目录结构0123456789……ID物理位置空闲文件目录SqrtBeta56……符号名IDMistAlpha76符号名IDReportOaf89……WangZhang34符号名ID主目录MFDWang的SFDZhang的SFDSqrtWang的BetaZhang的AlphaMistOafReport基本文件目录BFD185.4.2文件保护1.文件的安全性问题(1)灾祸:水灾、火灾、地震等不可抗拒的自然灾害;(2)硬件或物理原因:CPU的误操作、磁盘或磁带有坏道而不可读取、通信故障等;(3)用户操作失误:不正确的数据输入、程序运行错误、不可靠性等因素;(4)文件信息被窃取或破坏:未授权用户有目的地入侵,进行信息窃取或进行破坏;(5)病毒:病毒通过某种渠道进入系统,附着在某些程序中伺机破坏。192.文件系统保护机制的职责在设计文件系统的保护机制时,应该防止以下攻击:(1)防止用户越过系统访问内存页、磁盘空间和磁带,以免用户在其中写入非法信息;(2)防止用户尝试非法的系统调用,或使用非法参数进行系统调用;(3)防止用户在登录过程中键入DEL、REBOOT、BREAK等,在有些系统中,如果口令检查程序被终止,则被认为登录成功;(4)防止用户试图修改保存在用户空间内的某些管理信息,否则系统读写时可能会造成安全域的破坏。20除了上述职责外,保护机制还应该有如下功能:(1)防止未核准的用户存取文件;(2)防止核准的用户误用文件;(3)防止一个用户冒充另一个用户存取文件;(4)出现系统崩溃后,进行适当的文件恢复。21文件的保护信息保存在文件控制块中的存取控制信息部分,文件系统通过存取控制检验模块来实现对文件的存取控制,存取控制检验模块的用户验证通常分三步进行:(1)审定用户权限;(2)比较用户权限是否与本次存取要求相一致;(3)比较被访问文件的保密性是否与本次存取要求相一致。223.实现文件保护的手段1)口令和密码2)存取控制矩阵用户文件JoanAliceTomFILE1RWRWXRFILE2RXRFILE3WXRW233)存取控制表文件名用户FILE1文件主人RWEA组REB组EC组R24(1)用户分类:●文件主●伙伴●关键字持有者●普通用户(2)文件有五种操作:读执行更新删除改变状态(3)文件允许被使用的情况:F11111D11011C11001R11000L01000U11110N0000025现有用户甲,是伙伴关系,对文件A提出使用要求的操作向量为(1,1,1,0,0),可否让用户按提出的要求使用文件A?各用户组对文件A的存取控制表如下:F(文件主)11111D(伙伴)11011R(关键字持有者)11000N(普通用户)00000264)用户权限表每个用户一张表。用户名文件名A组FILE1RWEFILE2RWFILE3WFILE4E275)其它方法物理鉴定:物理鉴定有许多方法,比如使用信用卡,则要求用户拥有信用卡且知道口令。还可以采用一些难以伪造的个人物理特征信息,如手指纹、视网膜、声音的波纹等来验证用户身份。当然查找手指纹要比查找用户名慢得多,所以有些系统采用手指长度分析的方法来验证。固定登录位置:为了增加未授权访问的难度,有些系统(如WindowsNT)还使用了一些其它方法,如限定用户在某些指定的终端上登录,以及控制其登录时间。如果用户使用拨号的方式进入系统,可以限定使用固定的电话号码,或者一旦用户拨进,系统立即采用协商好的号码回呼。这些措施可以减少非法入侵者闯入的可能性。284.文件恢复的手段“备份”1)全量转储方法2)增量转储方法295.5文件系统的用户接口5.5.1文件操作1.创建文件2.打开文件打开文件命令的目的是将文件的属性和磁盘地址等放入主存,便于以后系统调用的快速存取。在内存的“系统打开文件表”、“用户打开文件表”文件描述字fd返回给用户,建立起用户与将要使用文件之间的联系。用户打开文件后,可以多次使用,直到文件被关闭为止30图5-33系统打开文件表与用户打开文件表……fpfd……文件用户打开文件表系统打开文件表313.读文件读文件命令的功能是把外存中文件的内容读入内存中指定的数据缓冲区。用户对于自己已经打开的文件,才能进行读操作。读文件命令需要给出文件名和存放文件内容的内存地址。由fp找出系统打开文件表中的文件目录信息,以得到文件在外存的地址。当用户的请求得到系统响应时,启动I/O,进行数据传输,将外存的文件信息读入指定的内存地址。可以有多种读文件的方式:读一个文件的全部内容;读一个文件的若干个记录;读一个文件的若干个字符。324.写文件写文件命令需要给出文件名和所写信息在内存中的首地址。5.关闭文件关闭文件命令的目的是撤消内存中有关该文件的目录信息。6.删除文件从目录表中检索出该文件的目录项,找到该文件所占用的文件存储空间,将其回收,然后删除该文件的目录项,使之成为空闲目录项。335.5.2目录操作1.创建目录创建一个新的目录,其中,除了目录项“.”和“..”之外,目录内容为空。目录项“.”和“..”是系统自动放在目录中的。2.删除目录仅含有目录项“.”和“..”的目录是空目录,只有空目录可以被删除。3.打开目录文件目录内容可以被读取,在读目录之前必须先打开目录344.关闭目录读目录结束后,应该关闭该目录以释放内部的表空间。5.链接采用链接技术后,允许文件出现在多个目录中。链接系统调用可以对一个已经存在的文件,根据给出的链接路径名,实现目录和已经存在的文件之间的链接。6.删除链接如果文件只出现在一个目录中,使用删除链接将把它从文件系统中删除。当它出现在多个目录中时
本文标题:操作系统简明教程第5章4
链接地址:https://www.777doc.com/doc-2454630 .html