1、上机操作题-试卷 46 及答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.有一南北向的单行车道,在车道 A、B 两端以外一段距离处有减速标志和自动计数系统,A、B 两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B 两端红绿灯同时变换,一方红变绿时另一方绿变红。绿灯保持到同一方向进入的车辆全部驶入 AB 段,当 AB 之间无车辆行驶时,允许到达 A 端(或 B 端)的车辆驶入 AB 段,但只准某一方向的车辆进入;当一方最后一辆车进入 AB 段后,双向亮红灯让车辆全部通过(假设 2min),然后让己在等待的任何一方向的车辆驶入。试用 PV
2、 操作管理 AB 路段车辆的行驶。(分数:2.00)_二、简单应用题(总题数:1,分数:4.00)某计算机的 CPU 主频为 500MHz,CPI 为 5(即执行每条指令平均需 5 个时钟周期)。假定某外设的数据传输率为 0.5MB/s,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含 18 条指令,中断服务的其他开销相当于 2 条指令的执行时间。请回答下列问题,要求给出计算过程。(分数:4.00)(1).在中断方式下,CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少?(分数:2.00)_(2).当该外设的数据传输率达到 5MB/s 时,改用
3、DMA 方式传送数据。假定每次 DMA 传送大小为 5000B,且DMA 预处理和后处理的总开销为 500 个时钟周期,则 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少?(假设 DMA 与 CPU 之间没有访存冲突)。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)2.在测温系统中要完成采样、转换和显示等任务。采样过程把从传感器上得到的整型微电压值存入一个缓冲区,转换过程把微电压值从缓冲区中取出,计算转换成温度值再存入该缓冲区,显示过程把缓冲区中的温度值取出并显示。试用 PV 操作实现三个过程共享缓冲区的同步问题。(分数:2.00)_上机操作题-试卷 4
4、6 答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.有一南北向的单行车道,在车道 A、B 两端以外一段距离处有减速标志和自动计数系统,A、B 两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B 两端红绿灯同时变换,一方红变绿时另一方绿变红。绿灯保持到同一方向进入的车辆全部驶入 AB 段,当 AB 之间无车辆行驶时,允许到达 A 端(或 B 端)的车辆驶入 AB 段,但只准某一方向的车辆进入;当一方最后一辆车进入 AB 段后,双向亮红灯让车辆全部通过(假设 2min),然后让己在等待的任何一方向的车辆驶入。试用 PV 操作管理 AB 路段
5、车辆的行驶。(分数:2.00)_正确答案:(正确答案:本题可参考读者写者问题,相当于两组读者使用一个共享文件的互斥问题。对共享资源 AB 路段设一个信号量 s,对 A、B 两端的共享计数器 ca 和 cb 应设两个信号量 sa 和 sb。所设计的程序段如下: Begin s,sa,ab:semaphore; ca,cb:integer; s:=1; sa:=1; sb:=1; Cobegin Process car-ai; (i=1, 2, Begin p(sa); Ca:=ca+1; if ca=1 then p(s); V(sa); 使信号灯 A 端绿,B 端红,车辆从 A 端驶入 AB
6、段 p(sa); ea:=ca-1; if ca=0 then Begin A,B 两端都亮红灯 2 分钟 V(s); End End process car-bj; j=1,2 Begin p(sb); cb:=cb+1; if cb=1 then p(s); V(s); 使信号灯 B端绿,A 端红;车辆从 B 端驶入 AB 段 p(sb); cb:=cb-1; if cb=0 then Begin A,B 两端都亮红灯 2 分钟 V(s); End End Coend End)解析:二、简单应用题(总题数:1,分数:4.00)某计算机的 CPU 主频为 500MHz,CPI 为 5(即执行
7、每条指令平均需 5 个时钟周期)。假定某外设的数据传输率为 0.5MB/s,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含 18 条指令,中断服务的其他开销相当于 2 条指令的执行时间。请回答下列问题,要求给出计算过程。(分数:4.00)(1).在中断方式下,CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少?(分数:2.00)_正确答案:(正确答案:在中断方式下,每 32 位(4B)被中断一次,故每秒中断为: 0.5M,B/4B=0.510 6 /4=12.510 4 次 因为中断服务程序包含 18 条指令,一辛断服务的其他开销相当于 2 条
8、指令的执行时间,且执行每条指令平均需 5 个时钟周期 所以,1 秒之内用于中断的时钟周期数为: (18+2)512.510 4 =12.510 6 因为计算机的 CPU 主频为 500MHz,故 CPU 用于中断的时间占整个 CPU 时间的百分比是: (12.510 6 )/(50010 6 )100%=2.5%)解析:(2).当该外设的数据传输率达到 5MB/s 时,改用 DMA 方式传送数据。假定每次 DMA 传送大小为 5000B,且DMA 预处理和后处理的总开销为 500 个时钟周期,则 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少?(假设 DMA 与 CPU
9、之间没有访存冲突)。(分数:2.00)_正确答案:(正确答案:在 DMA 方式下,每秒进行 DMA 操作为: 5MB/5000B=510 6 /5000=110 3 次 因为 DMA 预处理和后处理的总开销为 500 个时钟周期,所以 1 秒之内用于 DMA 操作的时钟周期数为: 500110 3 =510 5 故 DMA 方式下,占整个 CPU 时间的百分比是: (510 5 )/(50010 6 )100%=0.1%)解析:三、综合应用题(总题数:1,分数:2.00)2.在测温系统中要完成采样、转换和显示等任务。采样过程把从传感器上得到的整型微电压值存入一个缓冲区,转换过程把微电压值从缓冲
10、区中取出,计算转换成温度值再存入该缓冲区,显示过程把缓冲区中的温度值取出并显示。试用 PV 操作实现三个过程共享缓冲区的同步问题。(分数:2.00)_正确答案:(正确答案:本题类似于两个生产者消费者问题。采样过程相当于生产者,转换过程相当于消费者,显示过程为消费者,而转换过程还充当生产者。为此设立三个信号量:SS 表示采集的微电压值能否存入缓冲区,初值为 1;SC 表示缓冲区中是否有微电压值要转换成温度值,初值为 0;sD 表示缓冲区是否有温度值要显示,初值为 0。解决此同步问题的程序段为: Begin Ss,sc,sd:semaphore; Buffer:integer; ss:=1; sc
11、:=0; sd:=0; Cobegin Process sample; Begin L1:get a sample; P(ss); buffer:=sample; V(sc); goto L1; End Proeess convert; Begin L2:P(sc); take a sample from buffer; convert the sample to temperature; buffer:=temperature; v(sd); goto L2; End process display; Begin L3:p(sd); take a temperature from buffer; display the temperature; goto L3; End Coend End)解析: