前言
- 课本: 操作系统原理(第五版)[费翔林,骆斌编著]
- 习题: 主要习题内容是第一章到第六章,具体内容如下表
章节 | 内容 | 链接 |
---|---|---|
第一章 | 思考题1,3,7、应用题7,12(1)~(4) | https://blog.csdn.net/Zchengjisihan/article/details/136243955 |
第二章 | 思考题1,3,10, 20, 26, 32, 38, 68、应用题7,8,12, 16, 25 | https://blog.csdn.net/Zchengjisihan/article/details/136243955 |
第三章 | 思考题1,2,7,8,9,22,25,27,28、应用题3,4,8,16(1),17,23,24,25,30,38(1),39(1),41,43(2),50 | https://blog.csdn.net/Zchengjisihan/article/details/136264182 |
第四章 | 思考题2,4,10,15,18,20, 36、应用题1,2,3,6,11(2),12,16,17,20,30,31,39,41 | https://blog.csdn.net/Zchengjisihan/article/details/136264485 |
第五章 | 课后习题1、4 | https://blog.csdn.net/Zchengjisihan/article/details/136264816 |
第六章 | 课后习题11、15 | https://blog.csdn.net/Zchengjisihan/article/details/136276626 |
第七章 | 课后习题2 | https://blog.csdn.net/Zchengjisihan/article/details/136277222 |
第八章 | 课后习题1 | https://blog.csdn.net/Zchengjisihan/article/details/136277222 |
习题六思考题
4. 什么是文件的逻辑结构? 它有哪几种组织方式?
解:文件的逻辑结构是从用户观点出发, 研究用户概念中抽象的信息组织方式, 这是用户所能观察到的、可加以处理的数据集合。它有流式文件和记录式文件两种组织方式。
5. 什么是文件的物理结构? 它有哪几种组织方式?
解:文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系这时的文件看做物理文件, 即相关物理块的集合。它有连续存储结构、链接存储结构、索引存储结构。
6. 试述文件的各种物理组织方式的主要优缺点
解:下面将介绍连续存储、链接存储、索引存储这三种结构的优缺点。
- 连续存储:优点是存储方式简单、对文件记录进行批量存取时,其存取效率较高、支持定长记录的直接存取,可以通过计算获得存储位置。缺点是存在外部碎片 (碎片整理开销大)、不便于记录的增加或删除操作。
- 链接存储:优点是非连续存储,提高了磁盘空间利用率,不存在外部碎片问题、有利于文件插入和删除,及其动态扩充。缺点是适合顺序存取,不适合随机存取(访问第 n 块,要读前面 n-1 块)、由于存储空间可能不连续,带来更多的寻道次数和寻道时间、需要牺牲一些空间存放链接指针,同时需要维护这些指针,增加了系统开销、内容和指针混合存放破换了数据块的完整性,存在可靠性问题,如指针出错,则指向其他文件内容。
- 索引存储:优点是能顺序存取, 又能直接存取、满足了文件动态增长、插入删除的要求、没有外碎片,外存空间利用率较高。缺点是块不连续,需要较多的寻道次数和寻道时间、索引表本身需要存储空间,同时对索引表的维护会增加系统开销。
10. 试述 Linux 虚拟文件系统的设计思想和实现要点。
解:Linux 虚拟文件系统的设计思想是为了能够同时支持多种文件系统,并且给用户提供一致性的接口,若开发出新的文件系统,则可以以模块的方式添加到操作系统中,并且采用面向对象的思想来。实现的要点在于保持块的一致性检查和文件的一致性检查。
28.Linux 把文件描述信息从文件目录项中分离出来, 为什么?
解:主要有三个理由将文件描述信息从文件目录项中分离出来。
- 多文件描述符指向同一文件:一个文件可以被多个进程同时打开,每个进程会获得一个独立的文件描述符。如果文件描述符信息与文件目录项紧密耦合,那么多个文件描述符指向同一文件时可能会导致一些问题,如文件偏移量共享等。将文件描述信息与文件目录项分离可以更好地支持多个进程共享同一文件的情况。
- 提高效率:将文件描述信息从文件目录项中分离可以提高系统的效率。当进程打开一个文件时,系统内部会维护一个文件表,其中包含有关该文件的信息,例如文件偏移量、打开模式等。如果将文件描述信息直接存储在文件目录项中,可能导致目录项变得庞大,而且频繁地更新目录项也会影响性能。将文件描述信息单独存储在文件表中更为灵活和高效。
- 支持文件系统的不同类型:不同类型的文件系统可能有不同的特性和需求。将文件描述信息分离出来使得文件系统的实现更加灵活,可以根据具体的文件系统类型进行优化和定制。打印机空闲时,守护进程将从请求打印队列的队首取出一张请求表,根据表中的 要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,守护进程再查看请求打印队列中是否还有等待打印的请求表,若 有,又取出第一张表,并根据其中的打印要求进行打印,如此下去,直至请求队 列空为止。
习题六应用题
8. 设某文件为连接文件, 由 5 个逻辑记录组成每个逻辑记录的大小与磁盘块大小相等, 均为 512B 并依次存放在 50、121、75、80、63号块要取文的第 1569 逻辑字节处的信息要访问哪一个磁盘块?
解:1569 除 512 等于 3 余 33,意味着第 1569 逻辑字节存储在第三个逻辑块中的第 33 字节处,又因为 75 块处于 50、121、75、80、63 的第三个逻辑块,所以要访问 1569 逻辑字节处的信息要访问第 75 磁盘块
16. 如果一个索引节点为 128B, 磁盘块指针长 4B 信息占用 68B 而每块小为 8KB。试问索引节点中有多大空间留给磁盘块指针? 使用直接一次间接二次间接和三次间接指针分别可表示多大的文件?
解:
索引节点中给磁盘块指针的空间为 s p a c e 1 = 128 B − 68 B = 60 B space_1 = 128B−68B = 60B space1=128B−68B=60B
直接一次可表示的空间为 s p a c e 2 = ( ( 60 B / 4 B ) − 3 ) ∗ 8 K B = 98304 B space_2 = ((60B/4B)−3) ∗ 8KB = 98304B space2=((60B/4B)−3)∗8KB=98304B
间接一次可表示的空间为 s p a c e 3 = ( 8 K B / 4 ) ∗ 8 K B = 2048 ∗ 8 K B = 16 M B space_3 = (8KB/4) ∗ 8KB = 2048 ∗ 8KB = 16MB space3=(8KB/4)∗8KB=2048∗8KB=16MB
间接二次可表示的空间为 s p a c e 4 = 2048 ∗ 2048 ∗ 8 K B = 32 G B space_4 = 2048 ∗ 2048 ∗ 8KB = 32GB space4=2048∗2048∗8KB=32GB
间接三次可表示的空间为 s p a c e 5 = 2048 ∗ 2048 ∗ 2048 ∗ 8 K B = 16 T B space_5 = 2048 ∗ 2048 ∗ 2048 ∗ 8KB = 16T B space5=2048∗2048∗2048∗8KB=16TB
17. 在一个操作系统中 inode 节点中分别含有 12 个直接地址索引和一二三级间接地址索引。若设每个盘块有 512B 大小每个盘块中可存放 128 个盘块地址一个 1MB 的文用多少间接盘块? 一个 25MB的文件占用多少间接盘块?
解:
- 12 个直接块容量:12 * 512B / 1024 = 6KB
- 一级间接容量:128*512B / 1024 = 64KB
- 二级间接容量:128128512B / 1024 = 8192KB
- 三级间接容量:128128128*512B / 1024 = 1048576KB
所以 1MB 的文件所占的间接盘为
1024 K B − 6 K B − 64 K B = 954 K B 1024KB−6KB−64KB = 954KB 1024KB−6KB−64KB=954KB
954 K B ∗ 1024 / 512 = 1908 954KB∗ 1024/512 = 1908 954KB∗1024/512=1908
因此 1MB 的文件占 128 个一级间接块,1908 个二级间接块。
同理可知 25MB 的文件所占间接盘块为
1024 K B ∗ 25 − 64 K B − 6 K B − 8192 = 17338 K B 1024KB∗ 25−64KB−6KB−8192 = 17338KB 1024KB∗25−64KB−6KB−8192=17338KB
17338 K B ∗ 1024 / 512 = 34676 17338KB∗ 1024/512 = 34676 17338KB∗1024/512=34676
因此 25MB 的文件占 128 个一级间接块,128*128 个二级间接块,34676 个三级间接块
20. 某文件系统用索引文结文件索引表的每个表用 3B 放的块的大小为 512B。此文件系统采用直接、二级和三级索引所能管理的最大磁盘空间是多少?
解:
- 直接索引: 512 B / 3 B ∗ 512 B = 85 K B 512B/3B∗ 512B = 85KB 512B/3B∗512B=85KB
- 二级索引: ( 512 B / 3 B ) 2 ∗ 512 B = 14450 K B (512B/3B)^2 ∗ 512B = 14450KB (512B/3B)2∗512B=14450KB
- 三级索引: ( 512 / 3 B ) 3 ∗ 512 B = 2456500 K B (512/3B)^3 ∗ 512B = 2456500KB (512/3B)3∗512B=2456500KB
23. 文件系统中 FAT 管理盘空间的一种数据结用来保存链接文件记录文件占用块和空闲磁盘块其结构如下图所示。设文件 A 首块号为 4 根据链接指针可知该文件占用磁盘块 2、4、6、7、9 如果磁盘物理块大小为 1 KB, 试计算以下几个问题
(1) 对 600 MB 的硬盘其 FAT 表需占用多少储空间。(2) 对 1.2GB 的硬盘其 FAT 表需用多少存储空间。
解:
- 600MB:因为 600 M B / 1 K B = 600 K 600MB/1KB = 600K 600MB/1KB=600K,并且 2 19 < 600 K < 2 20 2^{19} < 600K < 2^{20} 219<600K<220 所以该 FAT 表至
少需要 20 位,换算成字节位 2.5 字节,因此 FAT 表需要占用 2.5 ∗ 600 K B = 1500 K I B 2.5∗600KB =1500KIB 2.5∗600KB=1500KIB - 1.2GB:同理 1.2GB/1KB = 1200K,并且 2^{20} < 1200K < ^2{21},所以该 FAT表位 21 位,拓展成半个字节的整数倍后为 3 字节,因此 FAT 表需要占用 3 ∗ 1200 K B = 3600 K I B 3 ∗ 1200KB = 3600KIB 3∗1200KB=3600KIB
26. 在文件系统中为了加快文件目录的检索度, 可采用"FCB 分解法"。假设目录文件存放在磁盘上, 每个盘块的大小为 512B;FCB 占用 64B 其中文件名占 8B。通常将 FCB 分成两个部分第一部分占10B(包括文件名和文件内部号), 第二部分占 56 B(包含文件内部号和文件的其他描述信息)。某个目录文件共有 254 个 FCB 试分别给出用解法前后查录文件的 FCB 的平均访问磁盘次数。
解:
- 分解前平均访问磁盘次数: ( 64 B ∗ 254 / 512 ) / 2 = 16 (64B∗ 254/512)/2 = 16 (64B∗254/512)/2=16
- 分解后平均访问磁盘次数: ( 10 B ∗ 254 / 512 ) / 2 + 1 = 6 (10B∗ 254/512)/2+1 = 6 (10B∗254/512)/2+1=6
结束语
如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?你们的认可是我最大的分享动力!