- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统作业结果解析
第二章 进程管理——P82-83
22题:(b)
Var a,b,c,d,e,f,g,h,i,j:semaphore:=0,0,0,0,0,0,0,0;
Begin
Parbegin
Begin S1:signal(a);signal(b);end;
Begin wait(a);S2;signal(c);signal(d);end;
Begin wait(b);S3;signal(e);signal(f);end;
Begin wait(c);S4;signal(g);end;
Begin wait(d);S5;signal(h);end;
Begin wait(e);S6;signal(i);end;
Begin wait(f);S7;signal(j);end;
Begin wait(g);wait(h);wait(i);wait(j);S8;end;
Parend;
End;
23题:
如果缺少了signal(full)或signal(empty)操作,生产者可以不断地往缓冲池送消息,如果缓冲池满,就会覆盖原有数据,造成数据混乱.而消费者因wait(full)操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待。
24题:
wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0而进行等待,使full始终为0,这样就形成了死锁。
而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的。
25题:
开锁原语:
unlock(W):
W=0;
关锁原语:
lock(W);
if(W==1) do no_op;
W=1;
利用开关锁原语实现互斥:
var W: semaphore:=0;
begin
parbegin
process :
begin
repeat
lock(W);
critical section
unlock(W);
remainder section
until false;
end
parend
26题:
producer:
begin
repeat
. . .
producer an item in nextp;
wait(mutex);
wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */
buffer(in):=nextp;
/* 缓冲池数组游标应前移: in:=(in+1) mod n; */
signal(mutex);
/* signal(full); */
until false;
end
consumer:
begin
repeat
wait(mutex);
wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */
nextc:=buffer(out);
out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */
signal(mutex);
/* signal(empty); */
consumer item in nextc;
until false;
end
27题:
设初始值为1的信号量c[I]表示I号筷子被拿(I=1,2,3,4,...,2n),其中n为自然数.
send(I):
Begin
if I mod 2==1 then
{
P(c[I]);
P(c[I+1 mod n]);
Eat;
V(c[I+1 mod n]);
V(c[I]);
}
else
{
P(c[I+1 mod n]);
P(c[I]);
Eat;
V(c[I]);
V(c[I+1 mod n]);
}
End
28题:
int mutex=1;
int empty=n;
int full=0;
int in=0;
int out=0;
main()
{
cobegin
send();
coend
}
send()
{
while(1)
{ . .
collect data in nextp;
. .
wait(empty);
wait(mutex);
buffer(in)=nextp;
in=(in+1) mod n;
您可能关注的文档
- 操作系统习题及结果解析四.doc
- 操作系统作业部分参考结果解析1.doc
- 操作系统原理习题集结果解析.doc
- 操作系统内存储器空间及管理及实验报告.doc
- 操作系统原理试卷及结果解析.doc
- 操作系统复习及结果解析.doc
- 操作系统原理在线作业第一二章结果解析.doc
- 操作系统复习题及参考结果解析.doc
- 操作系统复习题结果解析.doc
- 操作系统文件管理练习及结果解析.doc
- 皖2016S215_预制装配式混凝土排水检查井.pdf
- DB32∕T 4111-2021 预应力混凝土实心方桩基础技术规程.pdf
- DB32T4353_2022_房屋建筑和市政基础设施工程档案资料管理规程.pdf
- 各地汽车生产商名单.doc
- 岳麓版高中历史选修四第1单元第4课“千古一帝”秦始皇(课件2)(共36张).ppt
- Unit8task课件-牛津译林版八年级英语下册.pptx
- 2025年广西壮族自治区高中学业水平合格性考试模拟二历史试题.docx
- 安徽省庐巢联盟2024-2025学年高一下学期段考历史试题(二)(解析版).docx
- 福建省三明市2024-2025学年高二下学期期末质量检测历史试题(解析版).docx
- 2025届山西省高三下学期高考冲刺历史试题.docx
最近下载
- (高清版)B-T 16886.4-2022 医疗器械生物学评价 第4部分:与血液相互作用试验选择.pdf VIP
- 小学语文教师业务考试试题库(含答案).docx VIP
- 东芝CV600CV620故障代码.pdf VIP
- 2025年重庆市名校联中小升初数学模拟试卷附答案解析.pdf VIP
- 中信证券 2025 A股十大主题展望.pdf VIP
- 短视频:策划、制作与运营PPT课件(全套完整版).pptx
- 管道流速对照表.doc VIP
- 如何找到心流体验.pptx VIP
- 中国行业标准 GA/T 2100-2023移动警务 服务总线技术要求.pdf
- 2025年燃气从业人员考试题库2.docx VIP
文档评论(0)