首页 > 其他分享 >操作系统-4.1文件系统基础 习题总结

操作系统-4.1文件系统基础 习题总结

时间:2023-04-17 22:23:18浏览次数:42  
标签:文件 4.1 文件系统 索引 考点 100 习题 目录 物理

考点:文件的打开和读取

image
打开文件的过程:
打开操作本质上是使用了open这个系统调用,参数如下图所示。
image
操作系统通过文件的路径在外存中找到了这个test.txt文件所在的目录,继续找该文件的目录项(FCB),一个文件只有一个目录项。然后将这个目录项调到内存中,系统中有一个系统打开文件表,里面存放的是系统中所有打开文件的目录项,新调到内存中的目录项就会被复制到这个表中,同时系统调用会返回一个文件描述符fd,通过fd在用户进程的打开文件表中找到对应的表项,将这个表项指向系统打开文件表中对应的表项即可。
总结:
打开操作主要是将文件的FCB放入内存,并没有将文件中的数据调入内存,那是读取文件时要做的事。
选A

下面这个题考点也一样
image


考点:文件的访问控制

image
其实AD选项都没有问题,但是出题人想考的是文件保护方式中的访问控制,而不是问你文件保护有哪些。
再说一下文件属性,它是文件固有的特性,比如说某文件只支持读操作,那么不管你是管理员还是普通用户都只能读而不能写文件。选A


考点:文件的保护

image
选D,首先加密安全性比访问控制要高,比如说你给某个文件设置了访问权限,但访问权限依赖系统实现,只要我拆下硬盘,装到另一台电脑你的文件就可以随意访问。一般情况下访问控制更加灵活,只要几个不同权限的账户就能实现,文件主人不用设密码也可以让其他访客无法访问敏感文件。
密码学早在公元前400多年就已经产生,加密与解密的过程是靠人的思维转换实现的,其实和计算机关系不大,计算机仅仅是一个高效的辅助工具而已。选D


image


考点:文件的逻辑结构和物理结构辨析

  1. 在文件的逻辑结构中,一个文件对应一个索引项,这个索引项其实就是FCB,存放着该文件的描述信息和物理位置。
  2. 在文件的物理结构中,一个文件对应一个索引块,一个索引块对应多个索引项。如果是多级索引,一个索引项又可以对应多个索引项,以此类推。前几级索引项存放的是下一级索引项的物理地址,最后一级索引项存放的是存放文件数据的物理块的地址。

image
10000开根号以求出顺序目录项的数目为100,1个顺序项对应100个索引项。
实际上就是分了二级目录,100×100的关系。一级目录平均查50次,找到一级目录项后再查对应的二级目录项平均查找50次,一共100次。选c


磁带做存储介质时,文件只能用顺序存储,因为磁头不能移动。如果磁带支持倒转的话,就可以使用其他物理结构。


image
image
虽然显式链接方式也支持随机存取,但如果题目没有细分的话就认为链式存储结构不能随机存取。选B


image
连续结构在物理上是连续的,当文件长度增长时,需要连续的物理块,有时会碰到连续的物理块被其他文件占用的情况,这时需要找到一个符合其大小的新的连续物理块,将数据从旧块复制到新块,并释放旧块。可以看出,这个过程系统开销较大,不利于文件大小的增长,选A。

PS:因为上述原因,顺序分配还会产生内部碎片。


image


  1. 逻辑文件的组织方式是由程序员决定的。
  2. 物理文件的组织方式是由操作系统决定的。

考点:磁盘访问次数题

对于一个具有三级索引的文件,存取一条记录需要访问()次磁盘。

首先在磁盘找一级索引,然后二级索引、三级索引,最后找三级索引指向的文件数据,一共四次。
磁盘访问次数=索引级数+1


当文件较大时,无论是随机存取还是顺序存取,顺序结构文件都要比索引结构文件速度更快。
因为顺序存储分配在物理上是连续的,而索引分配是离散的,所以查找速度就慢了。


在一个用户进程首次打开一个文件时,操作系统要做的是:将文件控制块读入内存中。
ps:一个文件只有一个FCB/索引节点


标签:文件,4.1,文件系统,索引,考点,100,习题,目录,物理
From: https://www.cnblogs.com/liyaaixuexi/p/17326417.html

相关文章

  • 4.17每日总结
      今天完成了上课的任务,鼠标悬停变色,取消查看按钮改成超链接,超过多少字数省略并加省略号左对齐。  昨天完成了数据表的大致构建思路和部分代码。  遇到的问题:点过的超链接颜色变了,最后加了一个全局控制的将未浏览和已浏览改成同一颜色。......
  • 4.17每日总结
    昨天完成了图像识别的初步筛选。今天将完成所有筛选,并且将微信截图与小票分别开,并且显示店铺。难点小票识别检测出店铺。 下面/*importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.i......
  • 2023.4.17软工日报
    今天上午写代码,下午上建民的课。我们进行了小组讨论。晚上完善了建民说的科技政策。按发布时间排序,还有名称省略。 鼠标放上去,可以查看全名字。 点击可以查看整个政策信息。 ......
  • 2023.4.17编程一小时打卡
    一、问题描述:设计一款电子钟类,用于显示时、分、秒。实验要求:含有形参有默认值的默认构造函数;重载前缀++和后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;重载插入运算符>>用于输入(设定)时间;重载插入运算符<<用于输出......
  • C++课本第三章课后习题 3-8
    编写函数将华氏度转化为摄氏度#include<iostream>usingnamespacestd;doublefun(doublex){return5.0*(x-32)/9;}intmain(){doublea;cin>>a;cout<<fun(a)<<endl;}编写一个函数判别一个数,是不是质数,在主程序完成输入输出。#include<iostre......
  • 课后习题
    现在要开发一个系统,管理对多种汽车的收费工作。给出下面的一个基类框架classVehicle{protected:stringNO; public:Vehicle(stringn){NO=n;} virtualintfee()=0;//计算应收费用};以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为:载客......
  • 每日总结 4.17
    今天进行了王老师的课,王老师讲解了用户情景分析,对典型用户进行分析。接下来两节课,我们继续进行每个队的任务。昨天完成了虚拟售卖机的基本流程,今天继续进行页面优化,进行下一项的用户信息确认web实现。困难,页面的设计div无法理想实现,解决:最后经过div内嵌,位置分布解决。@chars......
  • 2023.4.17
    #include<iostream>#include<string>#defineMAX1000usingnamespacestd;voidshowMenu(){ cout<<"***************************"<<endl; cout<<"*****1、添加联系人*****"<<endl; cout<<"***......
  • 编程一小时2023.4.17
    1.#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;classVehicle{protected:stringNO;public:Vehicle(stringstr){NO=str;}virtualvoiddisplay()=0;virtual~Vehicle(){};};classCar:publicVehicle{int......
  • 4.17总结
    分工:需要负责前端页面的实现和用户体验的优化,保证系统界面美观、易用性高。以及团队工作的调动协调。  ......