10.4 文件目录管理n计算机系统中的文件种类繁多,数量庞大, 为了有效地管理这些文件,方便用户查找所 需的文件,应对它们加以适当的组织n文件的组织可以通过目录来实现1. 文件目录n从文件管理的角度看,文件由文件说明 和文件体两部分组成n文件体即文件本身,而文件说明是保存 文件属性信息的数据结构,又称为文件 控制块n文件控制块包含的具体内容因操作系统 而异,但至少应包括以下信息: 文件控制块的内容n文件名:标识一个文件的符号名n文件类型:如文本文件n文件结构:说明文件的逻辑结构和物理结构n文件的物理位置:指示文件在外存上的存储位 置包括设备名、存储地址及文件长度等n存取控制信息:指示文件的存取权限n管理信息:包括文件建立的日期及时间、上次 存取日期及时间、当前文件使用状态信息文件目录及目录文件n目录:文件控制块的集合即文件控制 块是一个目录项n目录文件:文件的内容为目录信息目录具有的功能n实现“按名存取”:用户只需提供文件名就 可以对文件进行操作这是目录管理的 最基本功能n提高检索速度n允许文件同名:不同目录下的文件可以 使用相同名字n允许文件共享DOS的文件控制块n文件名及扩展名占11字节;属 性占1字节,包括只读、隐藏 、系统、卷标、子目录及归档 ;上次存取时间及日期各占2 个字节;文件起始簇号占2个 字节;文件长度占4个字节。
nFCB的长度为32字节文件名 扩展名 文件属性 备用 上次访问时间 上次访问日期 文件起始簇号 文件长度2. 目录结构n常用的文件目录结构有:n单级目录结构n二级目录结构n多级目录 结构单级目录结构n单级目录结构又称一级目录结构在这种结 构中,整个文件系统只建立一张目录表,每 个文件占据其中的一个表目文件名物理地址文件其他属性信息abcreportshang ┆单级目录结构的操作n建立新文件时,首先应确定该文件名在目录 中是否惟一,若惟一则找出一个空表目,将 新文件的相关信息填入其中n删除文件时,先从目录表中找到文件的目录 项,从中找到该文件的物理地址,对其占用 空间进行回收,然后再清除其所占用的目录 项单级目录结构的特点n特点:易于实现,管理简单;但当系统中文 件数增多时,查找时间较长,易发生重名问 题3.二级目录结构n二级目录结构将文件目录分成:n主文件目录:记录用户名及相应用户文件目录 所在的存储位置n用户文件目录:记录该用户文件的有关信息二级目录结构示意图主目录(MFD)Wang …Gao …┆Wang的文件目录(UFD)Alpha …Beta …┆Gao的文件目录(UFD)Test …Misx …Alpha …┆AlphaBetaTestMisxAlpha二级目录结构的操作n当用户想建立文件时,如果是新用户,则系 统为其在主目录中分配一个表目,并为其分 配存放用户文件目录的存储空间。
同时在用 户文件目录中为新文件分配一个表目,并在 表目中填入有关信息n文件删除时,只须在用户文件目录中删除该 文件的目录项如果删除后该用户目录表为 空,则表明该用户已脱离了系统,从而可以 将主文件目录表中该用户的对应项删除二级目录结构的特点n二级目录可以解决文件重名问题,并可获得 较高的查找速度;但二级目录结构缺乏灵活 性,特别是无法反映真实世界复杂的文件组 织形式4.多级目录结构n多级目录结构是二级目录结构层次关系的推 广,也称为树型目录结构n在多级目录结构中,第一级目录称为根目录 (树根),目录树中的非叶节点均为目录文 件(又称子目录),叶结点为文件多级目录结构示意图A B C根目录1A B D2F E D3G A4A C567891011J N K12I M K13 A H F1415162021171819ba文件路径名n路径名:是一个字符串,该字符串由从根 目录出发到所找文件的通路上所有各级子 目录名和该文件名用分隔符连接起来构成 n从根目录出发的路径称为绝对路径当前目录n当目录层次较多时,每次从根目录开始查找 文件很费时间,为此引入了当前目录。
n由用户在一定时间内指定某个目录为当前目 录,或称工作目录n进程对各文件的访问相对于当前目录进行, 此时文件使用的路径名为相对路径,它由从 当前目录出发到所找文件的通路上的所有目 录名与数据文件名用分隔符连接起来而形成 两个特殊目录n有两个特殊目录:n“ ”:表示给定目录的父目录n“ . ”:表示当前目录10.5 文件共享及管理的安全性n文件共享是指不同用户可以共同使用某文件 1.早期的文件共享方法n早期实现文件共享的方法有三种:n绕道法n链接法n基本文件目录表绕道法n绕道法要求每个用户在当前目录下工作 ,用户对所有文件的访问都相对于当前 目录进行n用户使用相对路径访问文件当访问文 件不在当前目录下时,用户应从当前目 录出发向上返回到与所要共享文件所在 路径的交叉点,再顺序向下访问到共享 文件n因绕道法要绕弯路访问多级目录,从而 其搜索效率不高链接法n链接法将一个目录中的链指针直接指向被共 享文件所在的目录n采用链接法实现文件共享时,应在文件说明 中增加“连访属性”和“用户计数”两项前者说 明文件物理地址是指向文件还是指向共享文 件的目录,后者说明共享文件的用户数目n若要删除一个共享文件,必须判别是否有多 个用户共享该文件,若有则只做减1操作,否 则才真正删除此共享文件。
链接示意图—虚线表示链接A B C根目录1A B D2F E D3G A4A C567891011J N K12I M K13 A H F1415162021171819ba基本文件目录表法n基本文件目录表法把所有文件目录的内容分 成两部分:n基本文件目录表(BFD):由文件的属性信息及 内部标识符组成n符号文件目录表(SFD):由文件符号名和内部 标识符组成特殊标识符n在文件系统中通常规定:n0:基本文件目录标识n1:空闲文件目录标识n2:主目录标识符基本文件目录示意图0 1 2 3 4 5 6 7 8 9 ┆ ┆ID 物理位置 空闲文件目录 主目录(MFD) 符号名 ID Wang 3 Gao 4Wang的SFD 符号名 ID Sqrt 5 Beta 6 ┆Gao的SFD 符号名 ID Test 7 Alpha 6 Right 8 Ol 9 ┆SqrtWang的Beta Gao的AlphaTestRight Ol基本文件目录用基本文件目录法实现文件共享n用基本文件目录法可以方便地实现文件共享 。
若要共享某个文件,只需在相应的目录文 件中增加一个目录项,在其中填上符号名及 被共享文件的标识符n如上图中,用户Wang和Gao共享标识符为6 的文件,对于系统来说,标识符6指向同一个 文件;而对Wang和Gao两个用户来说,则对 应于不同的文件名Beta和Alpha 基于索引节点的共享方式n当多个用户需要共享 文件时,可以将共享 文件链接到多个用户 的目录中,如右图所 示n图中H的一个文件现 在也出现在D的目录 下,D称为该共享文 件的一个链接根目录ABCDEIFH文件共享中存在的问题n用链接实现文件共享很方便,但也带来一些 问题n如目录中包含文件的物理地址,则在链接文 件时要将文件的物理地址复制到D目录中但 若随后通过D或H往该文件中添加内容,则新 数据块将只会出现在进行添加操作的目录中 ,这种改变对其他目录而言是不可见的,因 而新增加的这部分内容不能被共享解决办法n为了解决这个问题,可以将文件说明中的文 件名和文件属性信息分开n索引节点:文件属性信息构成的数据结构, 又称i节点n采用这种实现方案,文件目录项仅由文件名 和索引节点号构成基于索引节点的共享示意图n此时,任何用户对文件的修改都 会反映在索引节点中,其他用户 可以通过索引节点存取文件。
Wang用户文件目录┆Testw┆Lee用户文件目录┆Testl┆count=2 文件物理地址索引节点Test磁盘索引节点n每个文件有一个惟一的索引节点,主要包含 :n文件主标识:n文件类型:正规、目录、特别n文件存取权限n文件物理地址n文件长度n文件链接计数:目录树中指向此文件的路径数 n文件存取时间内存索引节点n文件打开时,要将磁盘索引节点拷贝到内存 内存索引节点除包含磁盘索引节点内容外,还 应增加:n索引节点号n状态:索引节点是否上锁、修改n访问计数:正在使用此文件的进程数n文件所属文件系统的逻辑设备号n链接指针:如空闲队列、散列队列索引节点中的链接计数n在索引节点中有一个链接计数count字段 ,用于表示链接到本索引节点的目录项的 数目n当count=2时,表示有两个目录项链接到 本文件上链接例--C创建一个新文件n当用户C创建一个新文 件时,他是该文件的 所有者,此时count值 为1C的目录owner=C count=1链接前链接例-- B链接到C的文件n当用户B希望共享此文件时 ,应在用户B的目录中增加 一个目录项,并设置指针 指向该文件的索引节点, 此时文件的所有者仍然是C ,但索引节点的链接计数 应加1(count=2)。
B的目录C的目录owner=Ccount=2建立链接后链接例-- C删除文件n如果以后用户C不再需要该文件 ,则系统只删除C的目录项,并 将count减1n此时只有B拥有指向该文件的目 录项,而该文件的所有者仍然是 C如果系统进行记账,C将继 续为该文件付账n当B不再需要它,count为0,该 文作被删除B的目录owner=Ccount=1拥有者删除文件后硬链接n基于索引节点的文件共享方式是通过在不同目录 项中设置相同索引节点号来实现的n这种文件的链接方式称为硬链接n硬链接的不足是无法跨越文件系统Wang用户文件目录┆Testw 6Lee用户文件目录┆Testl 6 count=2 文件物理地址索引节点6Test利用符号链接实现文件共享n利用符号链接也可以实现文件共享n例如,B为了共享C的一个文件f,可以由 系统创建一个LINK类型的新文件b1,并 把新文件b1添加到B的目录中,以实现B 的一个目录b1与文件f的链接n新文件中只包含被链接文件f的路径名, 称这种链接方式为符号链接也称为软 链接 符号链接示意图n文件f的内容 是:abcden文件b1的内容 是:/C/f。
根目录ABCB2C1A1fC2C3b1abcde文件f的内容/C/f文件b1的内容文件的访问n当用户B要访问被链接的文件f时,操作系统发 现要读的文件b1是LINK类型,则由操作系统 根据文件b1中的路径名去读该文件,从而实现 了用户B对文件f的共享文件的删除n在利用符号链接实现文件共享时,仅文件所有 者拥有指向其索引节点的指针,共享该文件的 用户只有其路径名,而没有指向索引节点的指 针n当文件所有者删除文件后,其他用户若试图通 过符号链接访问该文件将导致失败,因为系统 找不到该文件,于是将符号链删除符号链接的特点n符号链接的不足是需要额外的开销(根据文 件路径名逐个分量进行查找,需要多次访问 磁盘)另外,符号链接需要配置索引节点 以及一个磁盘块用于存储路径,这也要消耗 一些磁盘空间n符号链接的优点是只要提供一个机器的网络 地址以及文件在该机器上的驻留路径,就可 以链接全球任何地方的机器上的文件即可 以跨越文件系统2. 文件保护n系统中的文件既存在保护问题,又存在保密 问题n文件保护是指避免文件拥有者或其他用户因 有意或无意的错误操作使文件受到破坏n文件保密是指文件本身不得被未授权的用户 。