|
发表于 2016-7-9 12:25:40
|
显示全部楼层
一、选择题
CDDCBBCADA
二、综合应用题
(45)
设信号量empty表示水缸还能容纳几桶水,初值为10;信号量full表示水缸中还有几桶水可用,初值为0;设信号量S表示可用水桶数目,初值为3;信号量mutex1表示从井中打水者互斥使用水井,初值为1;mutext2表示从缸中取水者互斥使用水缸,初值为1。
从井中打水和从缸中取水的算法描述如下:
empty, full, S, mutex1, mutex2 : semaphore;
empty=1; full=0; S=3; mutex1=1; mutext2=1;
cobegin
从井中打水: 从缸中取水:
begin begin:
L1: P(empty); L2: P(full);
P(S); P(S);
P(mutext1); P(mutext2);
从井中打水; 从缸中取水;
V(mutext1); V(mutext2);
P(mutext2); V(empty);
倒水入缸 V(S);
V(mutex2); goto L2;
V(full); end
V(S);
goto L1;
end
coend
(46)
磁盘旋转一周的时间 = 60/360 = 1/6s
查找一个扇区平均需要的时间为1/2周,即1/12s。访问一个扇区需要的时间 = 1/6/80 = 1/480s。
(a) CPU使用中断驱动I/O从磁盘读取一个扇区,每个字节产生一个中断时,处理每个中断需要2.5s,CPU花在处理I/O上的时间占的百分比为(512*2.5)/((1/12 + 1/480)+(512*2.5))≈ 99.99%
(b) 若采用DMA方式,假定一个扇区产生一个中断,处理机处理一个中断的时间不变,CPU花在处理I/O上的时间占的百分比为2.5/((1/12 + 1/480)+ 2.5)≈ 97.5% |
|