OS

피터슨 알고리즘

ndlessrain 2013. 4. 7. 20:24
728x90

#define FALSE 0

#define TRUE 1

#define N 2

int turn;

int interested[N];

void enter_region(int process){ // Peterson's Algorithm에서 사용하는 임계구역 진입함수

int other; //other thread number

other = 1 - process;

interested[process] = TRUE; // 진입 프로세스의 interested true 세팅

turn = process;

//진입 프로세스 차례고, interested 가 true일 경우에 바쁜 대기

while(turn == process && interested[other] == TRUE);

}

void leave_region(int process){ // Peterson's Algorithm에서 사용하는 임계구역 탈출함수

interested[process] = FALSE; // interested를 false로 세팅하고 leave

}

728x90