다음은 프로세스 P1, P2, P3과 main을 실행하는 주 프로세스로 구성된 총 네 개의 프로세스가 병행적(concurrently)으로 실행되는 프로그램이다. 네 개의 프로세스가 공유하는 전역 변수 x의 초기 값은 0이고, P1, P2, P3은 공유되지 않는 자신의 지역변수 y를 갖고 있다. P1, P2, P3은 주 프로세스에 의하여 동시에 실행이 시작된다. 선언문 혹은 할당문(assignment statement)은 모두 원자적(atomic)으로 실행된다고 가정한다.
global variable int x = 0;process P1local variable int y = 0;y := x;x := y + 1;endprocess P1process P2local variable int y = 0;y := x;x := y + 2;endprocess P2process P3local variable int y = 0;y := x;x := y + 4;endprocess P3mainstart {P1, P2, P3}endmain
세 개의 프로세스가 모두 종료된 후에 공유변수 x가 가질 수 없는 값은?
- ①0
- ②4
- ③6
- ④7
선지를 골라 바로 채점해 보세요.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)