哪种代码适合Peterson的算法?

时间:2018-02-23 02:56:31

标签: operating-system interprocess

最近我开始学习Inter进程通信。 为了实现彼得森的算法,我找到了两个代码:

1.#define N 2  2. #define TRUE 1  3. #define FALSE 0  4. int INTERESTED [N] = FALSE  5.转TURN;  6. void Entry_Section(int process)  7. {  8. int其他;  9.其他= 1 - 过程;  10.有兴趣[process] = TRUE;  11. TURN =过程;  12. while(有兴趣的[其他] == TRUE&& TURN =流程)  13.}  14. void Exit_Section(int process)  15. {  16.有兴趣[进程] =错误;  17.}

1.do  2. {  3.flag [I] = TRUE;  4.转= j;  5. while(flag [j]&& turn == j); // 危急。 6.section flag [i] = False; //余数7.section  8.} while(True);

所以我想知道哪一个是真的。

我认为第二个是正确的。 因为: (第1代码) 在设置标志值' turn = process'之后发生上下文切换时(进程意味着它指向自己),下一个进程来自enter_regin()函数。这两个值都是[2]'数组将是真的。它之后的while循环(作为陷阱)将是真的,并且进程的非循环可以脱离它。

我只是想知道我是对还是错。

0 个答案:

没有答案