《操作系统导论》第三十八章作业

38.1

解:

RAID-0级

运行指令:./raid.py -n 5 -L 1 5 -R 20 -5 LS
可以得到如下结果:
在这里插入图片描述
采用RAID-0,只是简单的条带化。所以磁盘序号=地址%磁盘数,偏移量=地址/磁盘数,磁盘数是4,所以结果如下:
在这里插入图片描述
-c验证可以得到如下的结果:
在这里插入图片描述
发现结果是相同的。

RAID-1级

运行指令:python2 raid.py -n 5 -L 1 -R 30
可以得到如下的运行结果:
在这里插入图片描述
RAID-1每个块都有镜像对,所以磁盘序号=地址2 % 磁盘数(/ +=1),偏移量=地址2 / 磁盘数,磁盘数是4.
在这里插入图片描述
使用-c进行验证:
在这里插入图片描述

RAID-4

运行指令:python2 raid.py -n 5 -L 4 -R 30
可以得到如下的结果:
在这里插入图片描述
如图,RAID-4最后一个磁盘是奇偶校验,所以磁盘序号=地址 % (磁盘数-1),偏移量=地址 / (磁盘数-1),磁盘数是4 。
在这里插入图片描述
-c进行验证可以得到如下的结果:
在这里插入图片描述

RAID-5

运行指令:./raid.py -s 1 -n 5 -L 5 -R 20 -5 LS -c
可以得到如下的结果:
在这里插入图片描述
上述指令可以模拟大小为20个块使用左对称RAID5策略,随机读5个数据的结果。

不断改变-s的值,进行多次的读取,可以推出在左对称算法下数据块在磁盘的布局:
在这里插入图片描述
同样的方法,使用命令:./raid.py -s 1 -n 5 -L 5 -R 20 -5 LA -c
可以模拟大小为21个块使用左不对称RAID5策略,随机读5个数据的结果:
在这里插入图片描述
不断改变-s的值,进行多次的读取,可以推出在左不对称算法下数据块在磁盘的布局:
在这里插入图片描述
从上面经过多次模拟得到的结果来看,在Raid5的左对称与左不对称算法下,数据块在磁盘布局上将会有较大的区别。左对称算法下每行数据块每次从校验位开始依次顺序放入不同磁盘,左不对称算法下每行数据块每次从Disk0开始依次顺序放入不同磁盘。

38.2

与第一个问题一样,但这次使用-C来改变大块的大小。大块的大小如何改变映射?

解:

根据书本上的知识,我们可以知道改变大块大小,将改变在每个磁盘上放置的块的数量,当大块大小为N倍的块大小时,将会在一个磁盘连续放置N个数据块之后移动至下一个磁盘。
接下来使用指令来进行验证:

首先,在RAID0的策略情况下:

运行指令:./raid.py -s 1 -C 8192 -n 5 -L 0 -R 20 -c
可以得到如下的运行结果:
在这里插入图片描述
上述指令模拟一共有20个块,大块大小为8192,随机读5个数据块的结果。

据此,可以推出数据块在磁盘的布局:
在这里插入图片描述
发现与我们估计的相同,所以可以知道我们分析的结果是正确的。

38.3

执行上述测试,但使用-r标志来反转每个问题的性质。

解:

就是说用-r标志,使得问题反转,之前是告诉逻辑地址,求物理地址;现在是告诉物理地址,求逻辑地址。
运行指令:python2 raid.py -n 10 -L 1 -D 4 -R 30 -r -c
可以得到如下的结果:
在这里插入图片描述
运行指令:./raid.py -s 1 -n 5 -L 0 -R 20 -r -c
可以得到如下的结果:
在这里插入图片描述
以RAID0策略为例:
在未反转情况下,给定逻辑地址,我们可以得到对应的磁盘和偏移:
i = A%N ,j = A/N
在反转情况下,给定磁盘和偏移,同样可以得到对应的逻辑地址:
A = i + N x j

38.4

现在使用反转标志,使用-S标志增加每个请求的大小。尝试指定8KB、12KB和16KB的大小,同时改变RAID级别。当请求的大小增加时,底层I/O模式会发生什么?请务必在顺序工作负载上尝试此操作(-W sequential)。对于什么请求大小,RAID-4和RAID-5的I/O效率更高?

解:

8KB

先是8k的写请求,大块的大小是4k,所以会是连续写两个大块,相当于对地址和地址+1的请求。
在RAID-0级策略下:
运行指令:python2 raid.py -R 30 -n 5 -L 0 -S 8k -w 100 -c
可以得到如下的结果:
在这里插入图片描述
显然,每次直接写入两个块,2次写操作。

12KB

在RAID-5策略下:
运行指令:python2 raid.py -R 30 -n 5 -L 5 -S 12k -w 100 -c(只需要修改-L后面的数字就可以得到RAID-1,2,4策略情况)
可以得到如下的结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16KB

运行指令:python2 raid.py -R 30 -n 5 -L 0 -S 16k -w 100 -c(这里只需要修改-L后面的数字即可)
在这里插入图片描述
当请求大小为16k时,RAID-4和RAID-5效率更高。因为连续的写入4个块,能更多地用到上述的连续块节省I/O的方法。

RAID 0是后面几种策略的基础,这里重点讨论RAID 1与RAID 4/5,当磁盘请求较少的情况下,这几种策略没有较大的差别,在请求数据量增大时,对于RAID 1考虑单个磁盘,它在接收一个请求之后,每个磁盘都会接收到每个其他块的请求。其在跳过的块上旋转时,不会为客户提供有用的带宽。因此,每个磁盘只能提供一半的峰值带宽;而相比RAID 1,RAID 4/5在请求较大时效率更高,一般超过一半峰值带宽。

38.5

使用模拟器的定时模式(-t)来估计100次随机读取到RAID的性能,同时改变RAID级别,使用4个磁盘。

解:

根据题目,我们可以知道这里只需要运行几个RAID级别即可。(使用4个磁盘)
运行指令:./raid.py -n 100 -L 0 -R 1000 -W rand -t -c(修改-L后面的数字即可改变RAID的级别)

RAID-0级别:

在这里插入图片描述

RAID-1级别:

在这里插入图片描述

RAID-4级别:

在这里插入图片描述

RAID-5级别:

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统导论》是一本关于操作系统基本概念和原理的教材。操作系统是计算机系统中最核心的软件之一,它管理和控制计算机硬件资源,并提供给用户和应用程序一个简单易用、高效稳定的接口。 《操作系统导论》主要内容包括操作系统的历史、发展背景,以及操作系统的基本概念、功能和特性等。通过对操作系统的研究,读者能够了解操作系统的架构和组成,掌握操作系统的重要原理和算法,并能够利用这些知识进行操作系统的设计和开发。 在《操作系统导论》中,读者将深入学习操作系统的各个模块,比如进程管理、内存管理、文件系统等。通过对这些模块的学习,读者能够理解操作系统的核心功能,并能够掌握操作系统的基本工作原理。此外,书中还介绍了操作系统的各种经典算法和策略,如调度算法、页面置换算法等,这些算法是实现操作系统功能的基础。 除了基本概念和原理外,《操作系统导论》还涵盖了一些研究热点和前沿技术,如分布式系统、虚拟化技术和云计算等。通过深入了解这些新领域的内容,读者可以了解到操作系统在不同领域的应用和发展趋势。 总之,《操作系统导论》是一本系统介绍操作系统的教材,内容丰富、深入浅出,适合计算机科学与技术相关专业的学生和从业人员阅读使用。通过学习这本书,读者能够全面了解操作系统的基本概念和原理,提高操作系统的设计和开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值