0
下面是代碼需要的競爭條件的援助
#define MAX PROCESSES 255
int number_of_processes = 0;
/* the implementation of fork() calls this function */
int allocate process()
{
int new pid;
if (number_of_processes == MAX PROCESSES)
return -1;
else {
/* allocate necessary process resources */
++number_of_processes;
return new pid;
}
}
/* the implementation of exit() calls this function */
void release process()
{
/* release process resources */
--number_of_processes;
}
我知道比賽的條件是number_of_processes的一個例子。我想了解競賽狀況。我的問題是,如果我有一個帶有acquire()和release()操作的互斥鎖,我可以在哪裏放置鎖以避免競爭條件。我剛開始閱讀關於進程同步和它非常有趣的內容。也可以使用原子整數,例如atomic_t number_of_processes而不是int number_of_processes。我知道原子整數是用來避免上下文切換,但我不確定,但它可能嗎?
不客氣。如果您認爲滿意,請記得接受答案。 –