取方式文件目录文件系统的实现文件的使用文件系统的可靠内容摘要:

根据路径名检索: 全路径名:从根开始 相对路径:从当前目录开始 文件寻址:根据 FCB中文件物理地址等信息,求出文件的任意记录或字符在存取介质上的地址,称为文件寻址 ( 5)文件目录改进 为加快目录检索可采用目录项分解法:把FCB分成两部分: 符号目录顶(次部) 文件名,文件号 基本目录项(主部) 除文件名外的所有项目 UNIX: I节点(索引节点) ( 5)当前目录(工作目录,值班目录) 为了提高文件检索速度,文件系统向用户提供了一个当前正在使用的目录,称为当前目录。 查找一个文件可从当前目录开始,使用部分路径名;当前目录可根据需要任意改变。 当前目录一般存放在内存 ( 6)文件寻址 文件寻址与文件的物理结构和逻辑结构以及设备的物理特性密切相关 文件信息是以块为单位存储、传输的。 但存取文件时,对于记录式文件,是以逻辑记录为单位提出存取要求的,因此,存储介质上的物理块长度与逻辑记录的长度是否匹配直接影响到对文件的寻址 1. 内存中所需的表目 ( 1)系统打开文件表(整个系统一张) 放在内存。 用于保存已打开文件的 FCB 此外,文件号,共享计数,修改标志 ( 2)用户打开文件表(每个进程一个)  文件描述符,打开方式,读写指针,系统打开文件表入口  进程的 PCB中,记录了用户打开文件表的位置 四、文件系统的实现 ( 3)用户打开文件表与系统打开文件表之间的关系 用户打开文件表指向系统打开文件表 如果多个进程共享同一个文件,则多个用户打开文件表目对应系统打开文件表的同一入口 ( 1)空闲块表 将所有空闲块记录在一个表中,即空闲块表,有两项 ( 2)空闲块链表 把所有空闲块链成一个链 扩展:成组链接法 2. 外存空间管理 分配和回收的算法如下: 1.分配一个空闲块 查 L单元内容(空闲块数): 当空闲块数 1 i : = L+空闲块数; 从 i单元得到一空闲块号; 把该块分配给申请者; 空闲块数减 1。 当空闲块数= 1 取出 L+ 1单元内容(一组的第一块块号或0); 其值= 0 无空闲块,申请者等待 不等于零 把该块内容复制到专用块; 该块分配给申请者; 把专用块内容读到主存 L开始的区域。 2.归还一块 查 L单元的空闲块数; 当空闲块数 100 空闲块数加 1; j : = L+空闲块数; 归还块号填入 j单元。 当空闲块数= 100 把主存中登记的信息写入归还块中; 把归还块号填入 L+ 1单元; 将 L单元置成 1。 ( 3)位图法  用一串二进制位反映磁盘空间中分配使用情况 , 每个物理块对应一位 , 分配物理块为 1,否则为 0  申请物理块时,可以在位示图中查找为 0的位,返回对应物理块号;  归还时;将对应位转置 0  描述能力强,适合各种物理结构 计算公式: 已知字号 i,位号 j 块号= i 字长+ j 已知块号: 字号= [ 块号 /字长 ] 位号=块号 mod 字长 已知块号,则磁盘地址: 柱面号= [块号 /(磁头数 扇区数) ] 磁头号= [(块号 mod (磁头数 扇区数))/扇区数 ] 扇区号=(块号 mod (磁头数 扇区数))mod 扇区数 已知磁盘地址: 块号=柱面号 (磁头数 扇区数)+磁头号 扇区数+扇区号 在文件系统中提供对文件的各种操作,这些操作方便、灵活地使用文件及文件系统,形式分别为:系统调用或命令 五、文件系统的使用  提供设置 和 修改对用户文件存取权限  提供建立、修改、改变、删除目录的服务  提供文件共享,设置访问路径的服务  提供创建、打开、读、写、关闭、撤消 文件等服务  文件系统维护  文件系统的转储和恢复 1. 主要操作 ( 1) 建 立 文件 实质是建立文件的 FCB, 并建立必要的存储空间,分配空 FCB, 根据提供的参数及需要填写有关内容,返回一个文件描述 目的:建立系统与文件的联系 2. 操作介绍 create( 文件名,访问权限,(,最大长度)) ① 检查参数的合法性 文件名是否符合命名规则 是 → ② ,否则 → 错误返回 ② 检查同一目录下有无重名文件 无 → ③ ,有 → 错误返回 ③ 在目录中有无空闲位置 有 → ② ,否则 → 不成功返回 有的系统可能要为此文件申请数据块空间(申请一部分或一次性全部申请) ④ 填写目录项内容: 文件名,用户名等,存取权限,长度置零,(,首址) ⑤ 返回 ( 2) 打开文件 使用文件的第一步,任何一个文件使用前都要先打开,即把 FCB送到内存 fd=open( 文件路径名,打开方式) ① 根据文件路径名查目录,找到 FCB主部; ② 根据打开方式、共享说明和用户身份检查访问合法性; ③ 根据文件号查系统打开文件表,看文件是否已被打开; 是 → 共享计数加 1 否则 → 将外存中的 FCB主部等信息填入系统打开文件表空表项,共享计数置为 1; ④ 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项 返回信息: fd: 文件描述符,是一个非负整数,用于以后读写文 件 ( 3) 关闭文件 ( 4) 删除文件:撤销 FCB ( 5)指针定位 seek( fd,新指针的位置 ) ① 由 fd查用户打开文件表,找到对应的入口; ② 将用户打开文件表中文件读写指针位置设为新指针的位置,供后继读写命令存取该指针处文件内容 ( 6) 读文件 read(文件名,(文件内位置),要读的长度,内存目的地址) 隐含参数:进程主 ① 检查长度是否为正整数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。