【操作系统导论】第40章课后习题解答

本文档详细分析了使用vsfs.py模拟文件系统创建、删除、链接和写入等操作的过程,通过不同种子值观察了文件和目录的分配、引用计数变化,并探讨了系统资源分配策略。实验结果表明,系统遵循最近可分配原则,并需要保留至少一个空闲的数据块和inode。
摘要由CSDN通过智能技术生成

前言

内容仅作记录,请谨慎参考,另外,感谢本学期的陪伴 (✿◠‿◠)

40.1

题目描述

在这里插入图片描述

分析及解答

使用命令:./vsfs.py -s 17进行文件创建的模拟
将产生如下结果:
在这里插入图片描述
首先是初始状态,可以看到在初始状态下只有一个类型为d的项,这是一个目录,第二个参数a:0表明第0个数据块属于该目录,第三个参数r:2表明目录的引用计数为2
在这里插入图片描述
之后可以看到indoes中增加了一条[d a:1 r:2]的条目,同时inodes[0]中的r由2变为了3,这说明在根目录下新创建了一个目录,数据块1属于该目录,同时数据块0中增加了(u,1)条目,说明在根目录下创建了名为u的目录
在这里插入图片描述
这一步可以看到inodes中增添了[f a:-1 r:1]条目,结合数据块0中新增的(a,1)条目,这说明创建了一个新的名为a的文件,但未为其分配数据块
在这里插入图片描述
这一步之后inodes条目中的[f a:-1 r:1]条目消失不见,这说明上一步创建的文件a被删除了
在这里插入图片描述
这一步可以看到indoes中增加了一条[d a:2 r:2]的条目,同时inodes[0]中的r由3变为了4,这说明在根目录下新创建了一个目录,数据块2属于该目录,同时数据块0中增加了(z,2)条目,说明在根目录下创建了名为z的目录
在这里插入图片描述
这一步可以看到indoes中增加了一条[d a:3 r:2]的条目,同时inodes[0]中的r由4变为了5,这说明在根目录下新创建了一个目录,数据块3属于该目录,同时数据块0中增加了(s,3)条目,说明在根目录下创建了名为s的目录
在这里插入图片描述
这一步可以看到inodes条目中新增了[f a:-1 r:1]条目,同时数据块2中新增了(x,4)条目,这说明在目录z下创建了名为x的文件
在这里插入图片描述
这一步中inodes条目中[f a:-1 r:2]条目中r的值由1变为了2,说明这一步实现了link /z/x,同时可以发现数据块1中新增了条目(b,4)这说明实现了link u/b
在这里插入图片描述
这一步与上一步的结果对比可以发现数据块1中的条目(b,4)消失不见,这说明这一步实现了unlink u/b
在这里插入图片描述
这一步中可以发现inodes条目[f a:4 r:1]条目,也就是说为原本的文件x分配了数据块4,说明这一步实现了打开文件/z/x,写入文件,最后关闭文件的过程
在这里插入图片描述
这一步inodes新增条目[f a:-1 r:1],同时数据块1新增条目(b,5) 说明在目录u下新建了文件b
以上就是对种子为17时创建文件系统的模拟结果的分析,可以在命令后加上-c选项查看分析与结果是否一致,当种子为18、19、20时同理:
./vsfs.py -s 18
./vsfs.py -s 19
./vsfs.py -s 20

40.2

题目描述

在这里插入图片描述

分析及解答

使用命令:./vsfs.py -s 21 -r进行种子为21时的模拟,可以看到结果如下:
在这里插入图片描述
从模拟的结果可以看出操作系统每次将按照最近可分配的原则分配inodes和数据块
种子为22、23、24时同理,在此不再进行模拟。

40.3

题目描述

在这里插入图片描述

分析及解答

使用命令:./vsfs.py -d 2 -n 100 -s ? -c进行模拟,得到如下结果:
./vsfs.py -d 2 -n 100 -s 1 -c
在这里插入图片描述
./vsfs.py -d 2 -n 100 -s 2 -c
在这里插入图片描述
./vsfs.py -d 2 -n 100 -s 3 -c
在这里插入图片描述
./vsfs.py -d 2 -n 100 -s 7 -c
在这里插入图片描述
./vsfs.py -d 2 -n 100 -s 8 -c
在这里插入图片描述
可以得到如下结论:创建目录会失败,创建文件成功,写入文件会失败,可以创建多个文件,可以unlink。同时可以看到,vsfs必须留出一个空闲的数据块。

40.4

题目描述

在这里插入图片描述

分析及解答

使用命令:./vsfs.py -i 2 -n 100 -s ? -c进行模拟,得到如下结果:
./vsfs.py -i 2 -n 100 -s 1 -c
在这里插入图片描述
./vsfs.py -i 2 -n 100 -s 3 -c
在这里插入图片描述
可以看到创建文件和目录均不能成功,vsfs必须留下一个空闲的inodes块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼树C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值