1.DMA方式和中断控制方式的主要区别是什么?
2.面向块设备和面向流设备有何区别?各举一些例子
面向块的设备将信息保存在块中,块的大小通常是固定的,传送过程中一次传送一块。通常可以通过块号访问数据。磁盘和USB智能卡都是面向块的设备。
面向流的设备已字节流的方式输入/输出数据,没有块结构。终端打印机鼠标及其他大多数非辅存设备,都属于面向流的设备。
3. 在假设计算机系统采用循环扫描磁盘调度策略C-SCAN,使用2KB的内存空间记录16384个磁盘块的空闲状态。
(1)请说明在上述条件下如何进行磁盘块空闲状态的管理;(4分)
(2)设某单面磁盘的旋转速度为6000r/min,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms,若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号请求队列为50,90,30,120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多长时间?(10分)
(3)如果将磁盘替换为司机访问的flash存储器(如固态硬盘),是否有比循环扫描更高效的磁盘调度策略?并说明理由。(6分)
解答:
(1) 2KB=2*1024*8bit=16384bit。
可用位示图进行磁盘空闲状态的管理,每1bit表示一个磁盘块是否空闲。
(2) 采用C-SCAN调度算法,访问磁道的顺序和移动的磁道数如下:
访问磁道的顺序 移动的磁道数
120 20
30 90
50 20
90 40
移动的磁道数为20+90+20+40=170,总移动磁道时间为70*1ms=170ms。
由于转速为6000r/min,则平均旋转延迟为5ms,4个的延迟时间为20ms。
每分钟6000转,转一圈的时间为0.01s,共有100个扇区,则通过一个扇区的时间为0.0001s,即0.1ms,读4个,共需0.4。
所以,读完这4个扇区点共需要 170ms + 20+0.4ms = 190.4ms。
(3) 采用先来先服务调度策略更高效,应为flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按照I/O请求的先后顺序服务。
4.某软盘有40个磁道,磁头从一个磁道移至相邻磁道需要6ms,文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为13磁道,每块的旋转延迟时间及传输时间分别为100ms和25ms,问读取一个100块的文件需要多少时间?若系统对磁盘进行了整理,让同一文件的磁盘块尽可能靠拢,从而使逻辑上相邻数据块的平均距离降为2磁道,此时读取一个100块的文件需要多少时间?
解答:
磁盘整理前,逻辑上相邻数据块的平均距离为13磁道,读取一块数据需要的时间为13*6+100+25=203ms
因此,读取一个100块的文件需要时间为 203*100=20300ms。
磁盘整理后,逻辑上相邻的数据块的平均距离为2磁道,读取一块数据需要的时间为 2*6+100+25=137ms
因此,读取一个100块的文件需要的时间为: 137*100=13700ms
5.假定一个盘组共有100个柱面,每个柱面上有16个磁道,每个磁道分为四个扇区。
1)整个磁盘空间共有多少个存储块。
2)若用字长32位的单元来构造位示图,共需要多少个字?
3)位示图中第18个字的第16位对应的块号是多少?
解答:
1)整个磁盘空间的存储块数目为4*16*1000=6400个。
2)位示图应为6400个位,如果字长为32位的单元来构造位示图,那么需要6400/32=200个字。
3)位示图中的第18个字的第16位(即i8,j=16)对应的块号为32*(18-1)+16=560.