2016 操作系统 进程的互斥 选择题
第 30 题

进程 P1 和 P2 均包含并发执行的线程,部分伪代码描述如下所示。

进程 P1

int x = 0;
Thread1()
{
    int a;
    a = 1; x += 1;
}
Thread2()
{
    int a;
    a = 2; x += 2;
}

进程 P2

int x = 0;
Thread3()
{
    int a;
    a = x; x += 3;
}
Thread4()
{
    int b;
    b = x; x += 4;
}

下列选项中,需要互斥执行的操作是( )。

进程的互斥

A. a=1 与 a=2 B. a=x 与 b=x C. x+=1 与 x+=2 D. x+=1 与 x+=3

[tag_link]

正确答案:C

P1 中对 a 进行赋值,并不影响最终的结果,故 a = l 与 a = 2 不需要互斥执行;a = x 与 b = x 执行先后不影响 a 与 b 的结果,无须互斥执行;x+=1 与 x+=2 执行先后会影响 x 的结果,需要互斥执行;P1 中的 x 和 P2 中的 x 是不同范围中的 X,互不影响,不需要互斥执行。