操作系统课程设计 I/O subsystem
Posted wwqdata
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统课程设计 I/O subsystem相关的知识,希望对你有一定的参考价值。
实验报告和代码见我的github https://github.com/ningmengwei-ata/Class-Project/tree/master/Operating%20System/ram%20test
实验要求
? 在MINIX3中安装一块X MB大小的RAM盘(minix中已有6块用户可用RAM盘,7块系统保留RAM盘),可以挂载并且存取文件操作。
? 测试RAM盘和DISK盘的文件读写速度,分析其读写速度差异原因(可用图表形式体现在实验报告中)。
性能测试: 1. RAM盘和Disk盘的性能测试中,需要采用多进程并发的同步读写,并发数要增加到设备接近“饱和”状态(吞吐量难以继续提升,但是I/O延时恶化)。在出现饱和前,总吞吐量随着并发数线性增长。
2. 性能测试的二个变量为“块大小”(推荐64B/256B/1KB/4KB/16KB/64KB)和“块扫描方式”(顺序/随机)。可以画四张曲线图对比RAM盘和Disk盘性能(随机读,随机写,顺序读,顺序写)。实验结果预计为RAM盘性能高于DISK盘,特别是随机读写性能。
注意事项
? 使用posix函数 open打开文件,利用O_SYNC参数使得write/read操作为同步模式。
? 一定要检查write/read函数的返回值,以及写入的字节数目,确定是否成功。
? 为了简化实验,可以为每个进程分配一个独立的文件。为了减小主机操作系
统的缓存机制造成的误差,文件总大小越大越好(例如300MB)。
? 随机读写时,可以采用lseek重新定位文件指针;顺序读写时,默认文件指针
自动移动,当读到文件末尾时,可以用lseek返回文件头。
? 每组的读写需要反复持续一段时间,过短的时间会造成误差较大。
? 通常情况下,7~15个进程达到饱和,吞吐量不会高于700MB/s (ram盘顺序读
写)。
? 如果minix虚拟机建在SSD下,会导致随机和顺序的差距减小,所以最好把虚
拟机放在机械硬盘上,实验效果更明显。
测试用例
? 分别测试在RAM盘和disk盘下的随机读,顺序读,随机写,顺序写速度。对
比在不同的blocksize下的性能,然后通过Excel把数据制作成图表。
以上是关于操作系统课程设计 I/O subsystem的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018-1 20155310 《信息安全系统设计基础》课程总结