s***c 发帖数: 50 | 1 【 以下文字转载自 Computation 讨论区 】
发信人: sharc (sharc), 信区: Computation
标 题: 一个关于 critical section 的作业题
发信站: BBS 未名空间站 (Fri Aug 1 11:57:25 2008)
suppose two concurrent process are running the following code:
shared total = 0;
void foo()
{
for(int count=1; count<=50; count++)
total++;
}
2个process 共享那个total 变量。The two processes may execute at any relative
speed.
问: what's the lower bound of value of "total" when both processes have
completed.
多谢了先!! |
s***c 发帖数: 50 | 2 搞定了。Lower bound 是 2.
只要counter的计数值 >= 2,这个lower bound就是2. |
h*******e 发帖数: 225 | 3 yes u r right
【在 s***c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 搞定了。Lower bound 是 2. : 只要counter的计数值 >= 2,这个lower bound就是2.
|
a****l 发帖数: 8211 | 4 why?
【在 h*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : yes u r right
|
h*******e 发帖数: 225 | 5 process 1 process 2
reg<-total (=0)
reg <- total (=0)
reg++
total <- reg (=1)
. . . .
reg <- total (=48)
reg++
total <- reg (=49)
reg++
total <- reg (=1)
reg <- total (=1)
. . . .
reg <- total (=49)
reg++
total <- reg (=50)
【在 a****l 的大作中提到】![](/moin_static193/solenoid/img/up.png) : why?
|
a****l 发帖数: 8211 | 6 果然是个脑筋急转弯的好题目.
【在 h*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : process 1 process 2 : reg<-total (=0) : reg <- total (=0) : reg++ : total <- reg (=1) : . . . . : reg <- total (=48) : reg++ : total <- reg (=49) : reg++
|