传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 489|回复: 0
收起左侧

[学C/C++] Career ride里的一个OS的题目,关于deadlock的

[复制链接] |试试Instant~ |关注本帖
swing 发表于 2015-10-4 07:46:27 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
Q2. The two processes P1 and P2 which are accessing the shared variables A and B are protected by two binary semaphores Na and Nb respectively and both initialized to 1. Let X and Y be the usual semaphore operators. X decrements the semaphore value and Y increments the semaphore value. The code of P1 and P2 are given below:

P1
While true do {
M1: ……………..
M2: ………………
A = A+1;
B = B-1;
Y (Na);
Y (Nb);

P2
While true do {
M3: ……………..
M4: ………………
B = B+1;
A = B-1;
Y (Nb);
Y (Na);

What should be the correct operators at M1, M2, M3 and M4 in order to avoid deadlock condition?

1.    X(Na), X(Nb), X(Nb), X(Na)
2.    X(Na), X(Nb), X(Na), X(Nb)
3.    X(Nb), X(Na), X(Nb), X(Na)
4.    X(Nb), X(Na), X(Na), X(Na)
View Answer / Hide Answer

ANSWER: 2. X(Na), X(Nb), X(Na), X(Nb)

为什么answer 3不可以要求,原理不是一样的吗~

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-23 06:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表