2017年国防科学技术大学F0606数据结构与算法复试仿真模拟三套题
● 摘要
一、应用题
1. 假设计算机系统采用CSCAN (循环扫描)磁盘调度策略。使用2KB 的内存空间记录16384个磁盘块的空闲状态。
(1)请说明在上述条件下如何进行磁盘空闲状态的管理。
(2)设某单面磁盘旋转速度为每分钟6000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为lms 。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如下图
,所示)磁道号请求队列为50, 90, 30, 120, 对请求队列中的每个磁道需要读取1个随机分布的扇区,则读完这4个扇区总共需要多少时间? 要求给出计算过程。
图
SSD 等),(3)如果将磁盘替换为随机访问的FLash 半导体存储器(如U 盘、是否有比CSCAN
更高效的磁盘调度策略? 若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
【答案】(1)采用位示图法管理磁盘空闲块,每一位表示一个磁盘块的状态,共需要16384/32=512个字节即2KB 的空间,正好可放在系统提供的内存中。
(2)采用CSCAN 调度算法,访问磁道的顺序和移动的磁道数如下表所示:
故移动的磁道数为20+90+20+40=170, 所花的时间为170ms 。由于转速为
花的时间为0.4ms 。综上所述,读取磁道上所有扇区所花的总时间为
第 2 页,共 20 页 则平均旋 转延迟为5ms ,总的旋转延迟时间为20ms ,读取一个扇区的平均时间为0.1ms , 故读取4个扇区所(3)采用先来先服务(FCFS )调度策略更高效,因为Flash 半导体存储器的物理结构不需要
考虑寻道时间和旋转延迟,可直接按
2. 请阅读下列算法,回答问题。
请求的先后顺序服务。
问题一:这是什么类型的排序算法,该排序算法稳定吗?
问题二:设置|的作用是什么? 若将WHILE--DO 语句中判断条件改为该算法将会有什么变化,是否还能正确工作?
【答案】问题一:此为直接插入排序算法,该算法稳定。
问题二:
采用的作用是监视哨,免去每次检测文件是否到尾,提高了排序效率。 描述算法后,算法变为不稳定排序,但能正常工作。
3. 设G=(V , E)以邻接表存储,如图所示,试画出图1的深度优先生成树和广度优先生成树。
图1
【答案】设从顶点1开始遍历,则深度优先生成树如图2所示,广度优先生成树如图3所示:
图2 图3
第 3 页,共 20 页
4. 某32位计算机,CPU 主频为800MHz ,Cache 命中时的CPI 为4, Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40ns ; 存储器总线宽度为32位,总线时钟频率为200MHz , 支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备 数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。请回答下列问题,要求给出理由或计算过程。
(1)CPU 和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?
(2)Cache 缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
(3)存储器总线完成一次读突发传送总线事务所需的时间是多少?
(4)若程序BP 执行过程中,共执行了100条指令,平均每条指令需进行1.2次访存,Cache 缺失率为5%, 不考虑替换等开销,则BP 的CPU 执行时间是多少?
【答案】
(1)因为CPU 主频为800MHz ,故CPU 的时钟周期为:
总线时钟频率为200MHz ,故总线的时钟周期为:
总线宽度为32bit=4B,故总线带宽为
存块。
(3)—次读突发传送总线事务包括一次地址传送和32B 数据传送:用1个总线时钟周期传输地址;
每隔,第一个体读数据花费40ns ,之后数据启动一个体工作(各进行1次存取)
存取与数据传输重叠;用8个总线时钟周期传输数据。读突发传送总线事务时间
:
s
BP 的CPU 执行时间包括Cache 命中时的指令执行时间和Cache 缺失时带来的额外开销。(4)
即执行时间=指令条数
间
:时钟周期*命中率+访存次数*缺失率*缺失损失。命中时的指令执行时指令执行过程中
的CPU 执行时间
:Cache 缺失时的额外开
销 (2)因为Cache 块大小为32B , 因此Cache 缺失时需要一个读突发传送总线事务读取一个贮
5. 试叙述动态存储分配伙伴系统的基本思想,它和边界标识法不同点是什么?
【答案】(1)动态存储分配伙伴系统的基本思想
在伙伴系统中,无论占用块或空闲块,其大小均为(k 为大于等于0的正整数)。若内存容
量为
则空闲块大小只能是由同一大块分裂而得的两个小块互称“伙伴空
(若)
,
如内存大小为
间”
或的块分裂成两个大小为的块。只有两个“伙伴空间”才能合并成一个大(若
(2)和边界标识法的不同
边界标识法在每块的首尾均有“占用”/“空闲”标志,空闲块合并方便。伙伴系统算法简单、速度快,但只有互为伙伴的两个空闲块才可合并,因而易产生虽空闲但不能归并的碎片。
第 4 页,共 20 页 空间。起始地址为P ,
大小为的内存块,其伙伴的起始地址为:)。