河南城建学院操作系统课后习题Word文件下载.docx
- 文档编号:18127252
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:14
- 大小:426.78KB
河南城建学院操作系统课后习题Word文件下载.docx
《河南城建学院操作系统课后习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《河南城建学院操作系统课后习题Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
signal(d);
beginwait(b);
S3;
signal(e);
beginwait(c);
S4;
signal(f);
beginwait(d);
S5;
signal(g);
beginwait(e);
S6;
signal(h);
beginwait(f);
wait(g);
wait(h);
S7;
parend
end
b.略
23.在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?
如果缺少了signal(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行wait(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。
如果缺少了signal(empty),例如在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。
25.我们为某临界资源设置一把锁W,当W=1时表示关锁;
当W=0时表示锁已打开,试写出开锁和关锁原语,并利用它们去实现互斥。
整型信号量:
lock(W):
whileW=1dono-op
W:
=1;
unlock(W):
=0;
记录型信号量:
=W+1;
if(W>
1)thenblock(W.L)
=W-1;
0)thenwakeup(W.L)
例子:
VarW:
semaphore:
=0;
repeat
lock(W);
criticalsection
unlock(W);
remaindersection
untilfalse;
26.试修改下面生产者——消费者问题解法中的错误:
producer:
……
produceaniteminnextp;
wait(mutex);
wait(full);
buffer(in):
=nextp;
……
signal(mutex);
consumer:
begin
wait(empty);
nextc:
=buffer(out);
out:
=out+1;
consumeiteminnextc;
【或】producer:
repeat
.
produceaniteminnextp;
wait(mutex);
wait(full);
/*应为wait(empty),而且还应该在wait(mutex)的前面*/
/*缓冲池数组游标应前移:
in:
=(in+1)modn;
*/
/*signal(full);
untilfalse;
end
consumer:
wait(empty);
/*应为wait(full),而且还应该在wait(mutex)的前面*/
nextc:
/*考虑循环,应改为:
out:
=(out+1)modn;
/*signal(empty);
consumeriteminnextc;
end
27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
三种解决方法中的任意一种即可(略)。
P62
设初始值为1的信号量c[I]表示I号筷子被拿(I=1,2,3,4,...,2n),其中n为自然数.
send(I):
Begin
ifImod2==1then
{
P(c[I]);
P(c[I-1mod5]);
Eat;
V(c[I-1mod5]);
V(c[I]);
}
else
End
28.在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;
计算任务从该单缓冲区中取出数据进行计算。
试写出利用信号量机制实现两任务共享单缓冲区的同步算法。
a.Varmutex,empty,full:
=1,1,0;
gather:
gatherdatainnextp;
buffer:
signal(full);
compute:
=buffer;
signal(empty);
computedatainnextc;
b.Varempty,full:
=1,0;
buffer:
compute:
38.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较.
a.调度性。
在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;
b.并发性。
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;
c.拥有资源。
无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;
d.开销。
由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。
第三章
20.在银行家算法中,若出现下述资源分配情:
Process
Allocation
Need
Available
P0
0032
0012
1622
P1
1000
1750
P2
1354
2356
P3
0332
0652
P4
0014
0656
试问:
⑴该状态是否安全?
⑵若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
⑴该状态是安全的,因为存在一个安全序列<
P0P3P4P1P2>
。
下表为该时刻的安全序列表。
资源情况
进程
Work
Work+Allocation
Finish
1622
1654
1987
19911
29911
0012
0652
0656
1750
2356
0032
0333
0014
1000
1354
3121417
true
⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。
第四章P142
23.在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。
FIFO:
432143543215
M=3
M=4
4
1
5
3
2
M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为75%;
M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为83%。
由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。
LRU:
1.某系统采用动态分区分配方式管理内存,内存空间为640K,高端40K用来存放操作系统。
在内存分配时,系统优先使用空闲区低端的空间。
对于下列的请求序列:
作业1申请130K、作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放60K,请分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情况。
解:
分析:
首次适应算法将空闲区按起始地址递增的次序建立链表,而最佳适应算法则将空闲分区大小递增的次序建立链表。
在分配时,它们都是从链首开始顺序查找,直到找到一个足够大的空闲分区为止,然后按作业大小从该分区中划出一块内存空间分配给请求者,余下的分区仍按照上述原则留在空闲分区链中;
而在释放时,则需分别按地址递增或大小递增的次序将空闲分区插入空闲分区链,都需要空闲分区的合并。
具体过程如下表.
2已知某分页系统,主存容量为64k,页面大小为1k,对一个4页大的作业,第0、1、2、3页被分配到内存的2、4、6、7块中。
求:
1将十进制的逻辑地址1023、2500、4500转换成物理地址。
2以十进制逻辑地址1023为例地址变换过程图。
解:
1:
(1)1023/1K,得到页号为0,页内地址1023。
又对应的物理块号为2,故物理地址为2*1k+1023=3071
(2)2500/1K,得到页号为2,页内地址452。
又对应的物理块号为6,故物理地址为6*1k+452=6596
(3)4500/1K,得到页号为4,页内地址404。
因为页号不小于页表长度,故产生越界中断
3某采用段式存储管理的系统为装入主存的一个作业建立了下表所示的段表。
段号
段长
主存起始地址
660
2219
140
3300
100
90
580
1237
960
1959
回答下列问题:
(1)、计算该作业访问[0,432],[1,10],[2,500],[3,400]时([段号,段内地址])的绝对地址
(2)、总结段式存储管理的地址转换过程
[0,432],432<
660(先判断是否越界)
所以绝对地址=2219+432=2651(主存地址+段内地址)
[1,10],10<
140
所以绝对地址=3300+10=3310
[2,500]500>
100
该逻辑地址越界,系统将会发出”地址越界”程序性中断事件
[3,400]400<
580
所以绝对地址=1237+400=1637
段式存储管理的地址转换过程如下:
l根据逻辑地址中的段号找到段表中对应的表目
l根据段内地址<
该段限长,判断是否越界
l若越界,发出”地址越界”程序性中断事件
l若不越界,则绝对地址=段起始地址+段内地址
第五章P181
10.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
?
在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T;
操作系统将缓冲区数据传送给用户区的时间为M;
而CPU对这一块数据进行计算得时间为C。
在单缓冲情况下,由于设备的输入操作和CPU的处理操作可以并行,所以系统对每一整块数据的处理时间为max(C,T)+M。
11.为什么在双缓冲情况下,系统对一块数据的处理时间为max(C,T)?
该方式又称缓冲对换方式,在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。
此时操作系统可以从第一缓冲区移出数据,并送入用户进程。
接着由CPU对数据进行计算。
在双缓冲区中,不仅设备的输入操作和CPU的处理操作可以并行,设备的输入操作和数据的传送操作也可以并行,因此耗时大约为max(C+M,T)。
考虑到M是内存中数据块的“搬家”耗时,非常短暂可以省略,因此近似地认为是:
max(C,T)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 河南 城建 学院 操作系统 课后 习题