考研408《操作系统》复习笔记,第四章《4.2.1 文件目录结构》

考研408《操作系统》复习笔记,第四章《4.2.1 文件目录结构》 我在看课和看书本的时候也是懵了这傻鸟王道课程到底怎么分的【文件目录】其实我们在《4.1》章节已经学了但是课后题里只有【文件目录的概念题】没有【文件目录的结构题】4.2突然书本又冒出来【文件目录的结构题】。。。。。。没招了一、文件目录概念简称“目录”看过我《4.1》章节笔记的这里可以跳过没学过的可以看一下这里衔接一下过渡概念。1、【目录文件】概念当我们双击“照片”后操作系统会从一个“目录表文件”中找到【关键字 “照片”】对应的【目录项(也就是记录)】然后根据这个信息从外存中将“照片”目录的信息读入内存于是“照片”目录中的内容就可以显示出来了。而这个“目录表文件”就是【目录文件】它本身是存磁盘上的结构化文件记录当前路径下所有文件 / 子文件夹的元数据名字、权限、物理块号。永久存放于外存磁盘在运行时从外存调入到内存方便操作系统随时查找文件时用到它【文件控制块FCB】那么一个【目录文件】里记录了很多条【目录项】这每一条【目录项】也叫【文件控制块FCB】再次强调FCB的多个名字【目录项】、【文件控制块】他记录的就是一个文件的各种属性其中最重要的是【文件名】、【文件物理存放地址】另外进程有【PCB】、文件有【FCB】别记混了2、【索引节点】对FCB的改进因为在目录表查找文件时其实只用到了【文件名】所以FCB太多冗余属性信息了。因此【索引节点】的改进结构如下【索引表】只记录【文件名】【该文件索引节点的位置指针】【索引节点】除了【文件名】之外的文件其他属性信息另外放在外存的索引节点叫【磁盘索引节点】放在内存后的索引节点叫【内存索引节点】放在内存后因为文件会被改动所以会额外添加一些内容比如几个进程在访问这个节点这个节点被改写了吗.....等了解即可3、【目录文件】和【文件目录】的区别这几个知识点可能很多人会混淆下图直观解释了【文件目录】和【目录文件】文件目录 目录 文件夹目录文件 记录这个文件夹存了哪些 [子目录] 和 [文件] 的信息是【描述这些文件、文件夹的信息】不是【它们里面的数据信息】【目录项】和【记录】【记录】是一个【普通文件】的“一行数据信息”【目录项】是【目录文件】里的“一行数据”目录文件是特指“记录文件目录信息的文件”抱歉这里应该一个文件目录应该对应的是【文件】而不是【文件夹】的我截图时忽略这点急了。。。二、【目录结构】分类记一下这个思维导图这几个关键字就够了1、单级目录结构2、双级目录结构主要目的解决【单机目录】下不允许【存在2个同名文件】问题3、多级目录结构树形目录就是我们现在的文件夹形式记住按文件路径找到文件过程中【除了该文件本身】没有目录文件它前面的路径【每一层都有一个目录文件】因此【每一层都要进行一次磁盘I/O操作】最后找到【该文件目录项】后去【外存取数据——最后1次磁盘I/O】【优点】【绝对路径】和【相对路径】【绝对路径】会导致访问很多次磁盘效率较低而【相对路径】则是在已经在内存中打开的【当前目录文件】下接着往下找会比绝对路径少访问很多次磁盘效率较高做开发的都有经验Window和Linux有不同的【根目录】表达符号windows一般是【C:\】 而Linux是【/】window和Linux系统的【当前目录】都一样是【.】开头4、无环图目录结构用于【共享】不同用户可以使用【不同的文件名】指向【同一个文件】【树形目录不适合共享】你想一想你可以在【文件夹1】路径下打开【文件夹2里的文件】吗【无环图目录可以共享】注意是【有向无环图】有指向的、但不循环成环三、【目录】的操作没用知识点可看可不看前四个你甚至可以一眼都不要看看一秒都是浪费时间检索目录可以稍微花10秒扫一眼【线索检索法】还有个名字叫【顺序检索法】说白了就是按文件名一层一层查呗没啥好说的可以【从根目录绝对路径】往下找也可以【从当前目录相对路径】往下找【Hash方法】记住他还叫【散列法】然后他就等于索引表就完事了比【顺序检索法】快【唯一重点】其实算是前面【文件物理结构】学过的知识点顺序的【平均查找次数】全网最透彻没有之一​​​​​​1个含有【​n个记录】的顺序文件【查找一个记录的平均次数】就是【(1n)/2】然而有的题目会隐含了 “粗略的”【平均查找次数公式】我们就不需要上面这个公式了例如这题题目规定了计算【平均查找次数的公式】【总记录数 / 2】这里的例题【例题】