69. 다음과 같은 형태로 임계 구역의 접근을 제어하는 상호배제 기법은?
① Dekker Algorithm ② Lamport Algorithm
③ Peterson Algorithm ❹ Semaphore
문제:
다음과 같은 형태로 임계 구역의 접근을 제어하는 상호배제 기법은?
P(S) : while S <= 0 do skip;
S := S - 1;
V(S) : S := S + 1;
해설
이 문제는 상호배제(Mutual Exclusion) 를 구현하는 기법을 묻고 있습니다. 상호배제는 여러 프로세스나 스레드가 공유 자원(임계 구역)을 동시에 접근하지 못하게 하는 기법입니다. 해당 코드는 **세마포어(Semaphore)**를 사용하는 방식으로, 세마포어는 임계 구역의 접근을 제어하는데 매우 유용한 도구입니다.
선택지 분석
- ① Dekker Algorithm
- Dekker Algorithm은 두 프로세스 간의 상호배제를 구현하는 알고리즘으로, 두 프로세스가 공유 변수를 통해 임계 구역을 보호합니다. 하지만 Dekker 알고리즘은 세마포어를 사용하지 않습니다. 또한 주어진 코드와 형태는 Dekker 알고리즘의 특징과 다릅니다.
- ② Lamport Algorithm
- Lamport Algorithm은 두 개 이상의 프로세스를 위한 상호배제 알고리즘입니다. Lamport 알고리즘은 각 프로세스가 시간 스탬프를 사용하여 임계 구역에 접근하도록 설계되어 있습니다. 주어진 코드와는 다르게, Lamport 알고리즘에서는 세마포어나 주어진 코드와 유사한 형태의 연산을 사용하지 않습니다.
- ③ Peterson Algorithm
- Peterson Algorithm은 두 프로세스 간의 상호배제를 위한 알고리즘입니다. 주어진 코드와 유사한 점이 있지만, 세마포어를 사용하지 않고 공유 변수를 사용하여 임계 구역을 제어합니다. Peterson 알고리즘은 두 프로세스에 대한 상호배제를 제공하며, 주어진 코드와 형태가 다르므로 정답은 아닙니다.
- ❹ Semaphore
- **세마포어(Semaphore)**는 다수의 프로세스가 공유 자원에 접근하는 것을 제어하기 위해 사용되는 기법으로, 주어진 코드에서 볼 수 있는 **P(S)**와 V(S) 연산은 바로 세마포어에서 사용하는 연산입니다.
- P(S)는 wait 연산으로, S 값이 0 이하일 경우 대기하고, 그렇지 않으면 S를 1 감소시킵니다.
- V(S)는 signal 연산으로, S를 1 증가시켜 다른 프로세스가 대기하고 있다면 그 프로세스를 깨우게 됩니다.
- 이 구조는 세마포어를 이용한 상호배제 기법에 해당합니다.
- **세마포어(Semaphore)**는 다수의 프로세스가 공유 자원에 접근하는 것을 제어하기 위해 사용되는 기법으로, 주어진 코드에서 볼 수 있는 **P(S)**와 V(S) 연산은 바로 세마포어에서 사용하는 연산입니다.
결론
**정답은 ❹ 세마포어(Semaphore)**입니다.
주어진 코드에서 사용된 P(S)와 V(S) 연산은 세마포어의 기본 연산으로, 상호배제를 구현하는 데 사용되는 기법입니다.
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 1회 정보처리기사 기출문제 71번 (0) | 2025.03.06 |
---|---|
2022년 1회 정보처리기사 기출문제 70번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 68번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 67번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 66번 (0) | 2025.03.06 |