프로세스 동기화 문제를 해결하기 위한 방법인 세마포어(Semaphore… | [계리직 컴퓨터일반] 14년 1회차 기출문제 상세 페이지
1[계리직 컴퓨터일반] 14년 1회차
프로세스 동기화 문제를 해결하기 위한 방법인 세마포어(Semaphore) 알고리즘에 대한 설명으로 옳지 않은 것은?
1
세마포어 알고리즘은 상호배제 문제를 해결할 수 없다.
2
세마포어 변수는 일반적으로 실수형 변수를 사용하지 않는다.
3
세마포어 알고리즘은 P 연산(wait 연산)과 V 연산(signal 연산)을 사용한다.
4
P 연산과 V 연산의 구현 방법에 따라 바쁜 대기(busy waiting)를 해결할 수 있다.
해설
세마포어가 상호배제 문제를 해결할 수 없다는 설명이 옳지 않다. 세마포어는 상호배제를 구현하기 위해 고안된 대표적 동기화 기법이다.
세마포어는 정수형 변수와 이를 원자적으로 조작하는 P(wait)·V(signal) 연산으로 임계구역 진입을 제어한다.
- 세마포어 변수는 자원 개수를 세는 값이므로 실수형이 아닌 정수형을 사용한다.
- P 연산은 값을 감소시키며 진입을 시도하고, V 연산은 값을 증가시키며 대기 프로세스를 깨운다.
- P 연산에서 대기 프로세스를 큐에 넣어 잠들게(block) 하도록 구현하면 바쁜 대기를 없앨 수 있다.
오류나 개정된 내용이 보이면 알려주세요