- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第十一章
第11章 文件系统实现 设备驱动程序:负责启动该设备上的I/O操作,处理I/O请求的完成 基本文件系统(物理I/O层):处理与磁盘或磁带交换的数据块。 注重的是这些块在外存设备中的位置,而并不知道该文件所涉及的数据或结构的内容。 基本I/O管理程序:负责所有文件I/O的开始或结束。选择执行文件的I/O设备,外存的分配,I/O缓冲区的指定 逻辑I/O:使用户和应用程序能够访问到记录。 物理I/O层处理的是数据块,逻辑I/O处理的是文件记录。它提供一种通用的记录I/O的能力。 访问方法层 :与用户最近的一层。在应用程序和文件系统及保存数据的设备之间提供了一种标准接口。 不同的访问方法反映出不同的文件结构和访问数据的不同方法。 11.2 目录实现 为了实现用户对文件的按名存取,系统要对目录进行查询,找出该文件的文件控制块或者索引节点,进而找到该文件的物理地址。 线性列表:顺序检索法。目录文件由目录项构成一个线性表,每个目录项包括文件名和执行数据块的指针。 创建新文件:检索该目录,检查是否同名,没有同名,则将新文件的目录项添加到目录末尾 删除文件时:检索目录找到该目录项,然后释放分配给它的全部空间,并且清空该项 评价:简单易行、速度慢。改善:使用缓存来存放最近用过的目录信息。将目录排序,使用二分检索法,缩短平均查找时间,但会使文件的创建和删除变得复杂 11.2 目录实现 哈希表:利用线性表存放目录项,利用哈息表进行检索。哈希表根据文件名得到一个值,并返回一个指向线性列表中的元素的指针。 冲突问题:两个文件名相同的哈希值。 文件系统 目录 目录文件 11.3 分配方法 连续分配 链式分配 索引分配 11.3 分配方法-连续分配 连续分配:创建文件时,分配一组连续的块;FAT中每个文件只要一项,说明起始块和文件的长度。对顺序文件有利。 优点: 简单。适用于一次性写入的操作 支持顺序存取和随机存取,顺序存取速度快 所需的磁盘寻道次数和寻道时间最少(因为由于空间的连续性,当访问下一个磁盘块时,一般无需移动磁头,当需要磁头移动,只需要移动一个磁道。 缺点: 文件不能动态增长(可能文件末尾处的空块已经分配给别的文件) 不利于文件插入和删除 外部碎片问题(反复增删文件后),使得很难找到空间大小足够的连续块。进行紧缩 在创建文件时声明文件的大小。 11.3 分配方法-链式分配 链式分配:一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。FAT中每个文件同样只需要一项,包括文件名、起始块号和最后块号。任何一个自由块都可以加入到链中。 优点: 提高了磁盘空间利用率,不存在外部碎片问题 有利于文件插入和删除 有利于文件动态扩充 缺点: 存取速度慢,一般仅适于对信息的顺序存取,不适于随机存取:查找某一个块必须从头开始沿指针进行。 可靠性问题,如指针出错;更多的寻道次数和寻道时间 链接指针占用一定的空间,将多个块组成簇(cluster),按簇进行分配而不是按块进行分配(增加了磁盘碎片)。 例 题 一个已经打开的连续文件,要读取其第10号数据块,则需要____次I/O操作;对于链式文件需要____次I/O操作? 设某个文件为链式文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相等,均为512字节,并依次存放在50、121、75、80、63号磁盘块上。若要存取文件的第1569逻辑字节处的信息,问要访问哪一个磁盘块? 11.3 文件的分配方法-索引分配 索引分配:每个文件在FAT中有一个一级索引,索引包含分配给文件的每个分区的入口。文件的索引保存在一个单独的块中。FAT中该文件的入口指向这一块。 优点: 保持了链接结构的优点,又解决了其缺点:按块分配可以消除外部碎片,按大小可变的分区分配可以提高局部性。索引分配支持顺序访问文件和直接访问文件,是普遍采用的一种方式。 满足了文件动态增长、插入删除的要求(只要有空闲块) 也能充分利用外存空间 缺点: 较多的寻道次数和寻道时间. 索引表本身带来了系统开销, 如:内外存空间,存取时间 举例:文件操作 2种方式 命令级接口:dir、copy等 系统调用:文件系统的程序级接口,用户可以在程序中使用这些系统调用对文件进行各种操作。 如建立文件、打开文件、关闭文件、删除文件、读文件、写文件。 举例:文件操作 建立文件:creat(文件名、文件属性) 检查参数合法性:按给定的路径查文件目录,找出用户指定的目录位置,检查目录上是否存在同名文件,若存在则发出错误信息。 在指定的目录中找一个空表项作为该文件的目录项,写入指定的文件名。 由文件长度确定文件存储所需的物理块数。 按规定的物理结构为文件分配存储空间。对连续文件,则分配块连续的空间,对索引文件,现分配索
文档评论(0)