操作系统学习-练习题个人总结(九)

第六章 文件系统

一、第一节-文件系统基本概念-课前测试

正确知识点总结

  1. 在Linux中,一个源程序经过编译之后得到的可执行文件属于(普通文件)。
  2. 文件系统的最基本目的是(实现对文件的“按名存取”)。
  3. 在文件系统中可命名的最小数据单位是数据项,用户以记录为单位对文件进行存取、检索等。

补充:

文件的分类

  • 按照用途:系统文件、库文件、用户文件
  • 按照保护级别:只读文件、读写文件、只执行文件、不保护文件
  • 按照存取方法:顺序存取文件、随机存取文件
  • 实际操作系统中文件分类:Window、Unix和Linux都有普通文件和目录文件,Unix和Linux系统还有特殊文件【FIFO文件字符、设备文件、块设备文件、符号链接文件】

二、第二节-文件逻辑结构-课前测试

正确知识点总结

  1. 从Windows系统的角度上来看,excel应用程序处理的.xls文件的逻辑结构是(流式文件)。
  2. 文件系统中源程序是有结构的记录式文件。(×)

补充:

文件的逻辑结构

  • 有结构文件:指整个文件由若干条记录构成,也称记录式文件【数据结构和数据库】

    • 顺序文件:读写批处理时比较好用,存取效率最高;查找、增加、删除文件比较难
    • 索引文件:索引表
    • 顺序索引文件:结合上述
    • 直接文件和散列文件:由记录键值获得存储物理地址
  • 无结构文件:由一组相关信息组成的有序字符流,也称流式文件;文件长度按照字节计算【UNIX、DOS、WINDOWS】

文件的物理结构

  • 连续文件【顺序文件】:磁盘空间会产生碎片,文件修改困难
  • 链接文件
    • 隐式连接文件:盘块中存有下一块的地址;顺序存储、容易丢失
    • 显式链接文件:链接指针统一存放在链接表里【FAT】;检索速度快,支持随机存取;FAT表占用内存空间
    • 一个磁盘分区大小为20GB,若盘块大小为1KB,计算该磁盘分区的FAT表大小。
      盘块数=20GB/1KB =20MB,20MB<32MB(这里要求分配的块数是2的n次方,所以要扩展),盘块号大小为3.5B(32MB->2的25次方,需要25个二进制位,25/8取半字节整数倍=3.5B),FAT表大小=20MB×3.5B=70MB
      注意:每个磁盘块号大小取半个字节的整数倍。
    • 存储空间利用率高;文件创建时用户不必指出文件的大小;文件动态扩充和修改容易;顺序存取效率高;随机存取效率较低
  • 索引文件【索引表;索引块-存放索引表的物理块;索引文件】
    • 单级索引:目录->索引表->具体文件存放物理块
    • 多级索引
    • 混合索引
      • UNIX索引结构【iaddr(0) ~iaddr(9): 直接地址;iaddr(10):一级索引;iaddr(11): 二级索引;iaddr(12): 三级索引。】
        三、第二节-文件结构和存取-课堂测试

1、错题解析

  1. 假设某文件包含100个磁盘块,0#-99#,并且文件的FCB已经在内存中。若物理结构采用连续文件,且文件头部之前没有空闲块,文件尾部之后有空闲块。假定每次读或写一个磁盘块就是一次磁盘操作,如果要在文件第50块(49#块)前添加一个磁盘块,但不需要向其中写数据,则需要执行磁盘I/O操作的次数是(102)次。

    解析:读出后面51个块,并写到磁盘上【51*2,从后向前读50块,在50块前添加一块之后填写内容,还需要对后面后50块的内容进行修改,就是说要再读一遍,并且是从新添加的这块开始读的,因为要找到后一块就要去读前一块】

  2. 假设某文件有100个磁盘块,0#-99#,并且FCB在内存中,文件物理结构采用隐式链接,假定每次读或写一个磁盘块就是一次磁盘操作,如果要在文件第50块(49#块)前添加一个磁盘块,但不需要向其中写数据,则需要启动磁盘I/O操作的次数是(51)次。

    解析:读出前面49个块,同时写第49号块及刚添加的一个块,(需要修改其中的链接指针)

  3. 设某文件为隐式链接结构,由8个逻辑记录组成,每个逻辑记录的大小与磁盘快大小相等,均为1KB,并依次存储在60、6、43、7、212、124、19、28号磁盘上,若要存取文件的第6200逻辑字节处的信息,应访问(19)号磁盘快?若文件的FCB在内存中,需要启动(7)次磁盘I/O操作?

    解析:6200=1K*6+56,所以(从0开始)去访问19号磁盘块,需要读磁盘7次(前6次找到19号磁盘块,第7次读出文件信息)

2、正确知识点总结

  1. 磁盘与主机之间传递数据是以(数据块)为单位进行的。
  2. 如果文件采用直接存取方式,且文件大小不固定,则采用(索引)结构较合适。

四、第二节-文件索引结构-课堂测试

1、错题解析
设有一个包含2000个记录的索引文件,每个记录正好占用一个物理块。一个物理块可以存放10个索引表目,建立索引时,一个物理块应有一个索引表目,最高级索引占据一个块。问该文件的所有及文件内容本身应占(2223)个物理块。

解析:2000+2000/10+200/10+20/10+1【每个记录一个块+一级索引+二级索引+三级索引+索引目录表】

2、正确知识点总结

设有一个包含1000个逻辑记录的索引文件,每个记录刚好占用一个物理块。一个物理块可以存放10个索引表目。建立索引时,一个物理块应有一个索引表目,试问该文件系统至少应该建立(3)级索引?(假设最高级索引只占用一个物理块)。

四、第三节-文件目录管理-课前测试

正确知识点总结

  1. 文件目录项中不包含的是(文件控制块的物理位置)。
  2. Linux系统中关于文件目录和索引节点的概念正确的是(索引节点中有文件的控制信息)。
  3. 目录文件不能为空(目录文件中至少包含“.”和“…”两个特殊目录项)。
  4. 目录文件由(文件控制块)组成。
  5. 在Linux系统中,当一个普通文件处于“未打开”状态时,文件所占用的资源有(一个文件目录项;一个磁盘索引节点项;一个或多个磁盘块)

补充:

文件控制块FCB

  • 基本信息

    • 文件名
    • 用户名:文件主、同组用户、用户组等
    • 文件类型
    • 文件物理地址和文件长度
    • 文件逻辑结构和文件物理结构
  • 存取控制信息
    文件主、文件主同组用户(或授权用户)、一般用户对该文件的存取权限
  • 使用信息
    • 文件的建立日期及时间
    • 上次存取文件的日期及时间
    • 当前的使用状态信息
    • 共享链接计数等
  • 引入索引节点,将除文件名外的其它信息“封装”

文件目录结构

  • 单级目录结构:查找慢;不允许重名;不便实现文件共享
  • 两级目录结构【主目录文件+用户文件】:允许重名;缺乏灵活性;无法很好的满足文件多的用户的需求
  • 多级目录结构【绝对路径|当前路径】:允许重名:目录检索速度快,层次清楚;容易实现共享

目录检索技术

  • 线性检索法【顺序检索】
  • 哈希检索法

五、第三节-文件目录-课堂测试

1、错题解析

  1. 在Linux的ext2文件系统中,多个单独设备上的多个文件系统被安装到一个统一的文件系统中。假设光盘设备安装到/mnt上,如果光盘文件系统包含一个/home/user/data的文件,那么在整个文件系统中,这个文件的名字是(/mut/home/user/data)。

    解析:略

  2. 线性搜索法、散列搜索法以及二分搜索法都可用于树型目录结构的搜索。(×)

    解析:树形目录使用线性搜索法。

  3. 树型目录结构中,当前目录就是用户所处的目录位置,所以在Linux中,用户的当前目录就是它的注册目录。(×)

    解析:不是一回事。

2、正确知识点总结

  1. 在实现文件系统时,为加快文件目录的检索速度,可利用“FCB分解法”。假设目录文件存放在磁盘上,每个盘块512B。FCB占64B,其中文件名占8B。通常将FCB分解成两个部分,第一部分占10B(包括文件名和文件索引节点编号),第二部分占56个字节(包括文件索引节点编号和文件的其他描述信息)。假设某一个目录文件共有254个FCB,试分别给出采用分解法前和分解法后,查找该目录文件的某个FCB的平均访问磁盘次数(16.5;4)。
    解析:假设某一目录文件共有254个文件控制块,而每个磁盘块为512B,文件控制块占64B。
    采用分解法前,一个盘块可存放:512/64=8个目录项,则254个文件控制块要占:254/8=32个目录块,故平均查找一个目录项需访问磁盘:32/2=16次。
    采用分解法后,将文件控制块分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件其他描述信息i)。一个盘块可存放:512/10=51个目录项,这样254个目录项要占:254/51=5个目录块。平均查找一个目录项需访问磁盘:5/2≈3次,而得到文件控制块还应访问一次磁盘,故总共需访问磁盘:3+1=4次。
  2. 打开文件操作主要是(把文件控制块从磁盘拷贝到内存)。

六、第四节-文件存储空间管理-课前测试

1、错题解析
使用空闲盘块链表法管理磁盘空间,因其算法实现简单,且能实现离散分配,因此广泛地应用在多种文件系统中。(×)

解析:回收和分配效率低。

2、正确知识点总结

  1. 文件的存储空间管理实质上是对(外存空闲区)的组织和管理。
  2. 打开文件操作主要是(把文件控制块从磁盘拷贝到内存)。

补充:

空闲表法:设置一张表记录空闲块的位置和大小
空闲块链表法:使用指针将所有空闲盘块链接起来
位示图法:使用二进制位表示,0无1有
成组链接法【具体操作看例题】

  • 把所有空闲磁盘块按照固定数量分成若干组,从后向前分组。
  • 将每组(第1组除外)的总块数及相应的块号记录在前一组的最末块中
  • 对第1组,其总块数和各块块号记录在空闲盘块栈中,放在超级块里。
  • 系统启动后,将超级块复制到主存中,并建立空闲盘块号栈,栈顶指针S_Free=第1组总块数。

七、第五节-文件共享与保护-课前测试

1、错题解析
Linux的ext2文件系统采用用户权限表实现文件保护。(×)

解析:Unix和Linux都使用访问控制表

2、正确知识点总结

  1. 若采用口令保护方式来保护文件,则“口令”最合适的保存位置是(文件控制块)。
  2. 基于索引节点的共享方式,不能用于目录文件的共享。
  3. 基于索引节点的共享方式不能实现跨文件卷的文件共享。(因为每个文件卷中的文件索引节点都是从0开始编号的,即不同文件卷上的索引节点编号是重复的)

补充:

文件共享

  • 基于索引节点的共享【硬链接】:与原文件共用一个索引节点
  • 利用符号链接实现文件共享【软链接】-建立link类型的新文件

文件访问保护

  • 口令保护
  • 加密保护
  • 设置文件使用权限
    • 访问控制矩阵
    • 访问控制表:对访问矩阵按列(对象)进行划分,每一列建立一张访问控制表
    • 用户权限表:对访问矩阵按行进行划分,每一行建立一张访问权限表。

八、第五节-文件共享与保护-课堂测试

错题解析

  1. 用()可以防止共享文件可能造成的破坏,但实现起来系统开销太大。

    解析:Unix和Linux都使用访问控制表

  2. 若用户仅允许他的某些同事访问他的文件,适用哪种文件保护机制(访问控制矩阵)。

    解析:不同用户,同一文件权限

九、第六节-磁盘调度-课前测试

1、错题解析
Linux的ext2文件系统采用用户权限表实现文件保护。(×)

解析:Unix和Linux都使用访问控制表

2、正确知识点总结

  1. 一个磁盘的转速为7200转/分,每个磁道有160个扇区,每扇区有512B,那么理想情况下,其数据传输率为(9600)KB/s。(磁盘转速为7200转/分=120转/s,转一圈160个扇区,每个扇区512B,所以数据传输率=120160512=9600KB/s)
  2. 启动磁盘读写一块数据时,(传输时间)是硬件设计时就固定的。
  3. 基于索引节点的共享方式不能实现跨文件卷的文件共享。(因为每个文件卷中的文件索引节点都是从0开始编号的,即不同文件卷上的索引节点编号是重复的)

补充:

0号磁道在最边上。
移臂调度算法

  • 先来先服务算法(FCFS)
  • 最短寻道时间优先算法(SSTF):磁头方向可能会频繁移动,可能会出现饥饿现象
  • 扫描算法(电梯算法)(SCAN):↑↓↑↓↑↓
  • 循环扫描算法(CSAN):↓↓↓或↑↑↑;可能会出现磁臂黏着现象
  • N-Step-SCAN算法:分组;子队列内SCAN;子队列之间用FCFS
  • FSCAN算法:当前一组,新来的一组;组内SCAN

十、第六节-磁盘调度-课堂测试

错题解析

某磁盘组的每个盘面上有200个磁道,格式化时每个磁道被分成4个扇区,整个磁盘组共有8000个扇区,那么该磁盘组应由(10)盘片组成。

解析:理解磁盘的三维结构就行了。

补充:

Linux文件系统:

Ext2文件系统结构
0~11直接寻址
12一级间接寻址
13二级间接寻址
14三级间接寻址

操作系统学习-练习题个人总结(九)相关推荐

  1. 操作系统学习-练习题个人总结(一)

    操作系统学习-练习题个人总结(一) 本系列学习总结知识点大部分参考此课程PPT.视频.课程练习解析https://www.zjooc.cn/course/2c9180826f668f7d016f6a5 ...

  2. JavaScript学习(八十九)—数组练习题

    JavaScript学习(八十九)-数组练习题

  3. linux操作系统学习网站整理(100个)

    linux操作系统学习网站整理(100个) 评选出的这100个优秀站点,将按照下述20个类别作以评介: (一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) ...

  4. DLL基础——Windows核心编程学习手札之十九

    DLL基础 --Windows核心编程学习手札之十九 Windows API中的所有函数都包含在DLL中,3个最重要的DLL是Kernel32.dll,它包含用于管理内存.进程和线程的各个函数:Use ...

  5. C/C++学习之路_九:文件操作

    C/C++学习之路_九:文件操作 目录 概述 文件的顺序读写 文件的随机读写 windows和linux文本 获取文件状态 删除文件.重命名文件 文件缓冲区 1. 概述 1. 磁盘文件和设备文件 磁盘 ...

  6. 操作系统学习之文件管理:

    操作系统学习之文件管理: 一.文件的逻辑结构: 1.无结构文件:文件的内部的数据就是一系列的二进制流或字符流组成,又称为流式文件(Windows操作系统中的.txt文件). 2.有结构文件:由一组相似 ...

  7. linux操作系统学习网站整理

    linux操作系统学习网站整理(100个) 评选出的这100个优秀站点,将按照下述20个类别作以评介: (一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) ...

  8. 操作系统学习(八)进程同步与通信

    目录 学习建议: 基本内容: 一.概述: 二.进程的顺序性: 三.进程的并发性: 四.与时间有关的错误: 五.临界区的概念: 六.进程的互斥: (一)PV操作: (二)临界区的管理: (三)用PV操作 ...

  9. 哈工大李治军老师的操作系统学习笔记

    文章目录 1 什么是操作系统 2 操作系统启动 3 操作系统接口 命令行发生了什么? 图形按钮怎么回事? 操作系统接口(系统调用) 4 操作系统调用 不应该随意访问内核 怎么不让你访问内核 不让我访问 ...

最新文章

  1. 超过C++、压制Java与C,Python拔得TIOBE年度编程语言!
  2. 阻碍GIS产业发展的三大问题
  3. 广域网安全建设的思路和部署
  4. 国际化(1)---JS文件国际化
  5. WPF 4 Ribbon 开发 之 标签工具栏(Tab Toolbar)
  6. boost::multi_index模块相关的测试程序
  7. 调整xfce中的鼠标大小到48以上-目前还没有完成
  8. 未来通信设备的体系构架
  9. 16篇最新推荐系统论文送你(文末附打包下载链接)
  10. 《计算机网络》学习笔记 ·003【数据链路层】
  11. 什么是缩量、放量、堆量
  12. php对象复制,PHP 对象复制 - 对象复制 - phpStudy
  13. android弹出键盘高度,Android 解决全面屏 软键盘弹出会有高度约50dp的白条。
  14. Hololens中的虚拟物体通过Vuforia的码实现虚实融合打开hololens像机
  15. 一个简单易用的m3u8下载器,支持下载m3u8链接或文件为mp4或ts格式
  16. 三星手机怎么看html5,三星手机查看硬件信息方法
  17. hach vue 跳转_Vue路由实现、路由导航、路由模式
  18. HTTPS中CA证书的签发及使用过程
  19. shell 变量五 字符串掐头去尾
  20. 日常Java练习题(每天进步一点点系列)【含通知】

热门文章

  1. OpenvSwitch完全使用手册
  2. 记录一下在学习HAL库时感觉必须要知道的基础知识
  3. 什么是Firebug
  4. Wave Driver介绍-5(Waveform Audio Driver Test测试Case描述)
  5. unity塔防游戏怪物转向_萌宠打怪物手游下载-萌宠打怪物官方版下载
  6. Python数据可视化 Pyecharts 制作 Line3D 3D折线图
  7. PS中可选颜色的计算方法(绝对量)
  8. 西门子博途1500SCL程序和梯形图两者结合编程,包括西门子v90伺服profinet通讯控制
  9. 用JSONObject转json,报找不到net/sf/ezmorph/Morpher
  10. AT8400 串口控制语音芯片 UART设置MP3芯片 无损dsp硬解码