Chapter 12 프로세스 동기화 문제 - goorm-6th-Als/for_study_Algorithm GitHub Wiki

🫠 아기다리고기다리던 Chapter 12 복습~

작성자 : 서다영

[문제 1번]

난알쓰조가 프로세스 동기화에 대해 공부하기로 한 날 수지는 강원도와 제주도와..더보기 여행을 가느라 참석하지 못했다.
현빈이 조장으로서 난알쓰조의 장부를 관리하기로 했는데, 조원들 기념품을 깜빡한 수지가 미안한 마음에 장부 정리를 돕기로 하였다.
다음 장부관리표엔 문제가 있는데, 그 이유를 설명하시오.
스크린샷 2024-03-27 15 20 22

정답 장부 정리(프로세스 동기화) 과정에서 상호 배제가 지켜지지 않아서이다.

* 상호 배제: 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘
현빈과 수지가 '잔액'이라는 데이터를 동시에 사용하는데, 현빈의 기록이 끝나기도 전에 수지가 잔액을 확인해 버렸기 때문이다.
올바른 장부 정리를 위해서는 한 명이 장부를 정리하고 있을 때 나머지 사람은 기다려야 한다.

[문제 2번]

acquire 함수는 임계 구역이 잠겨 있는지를 반복적으로 확인한다고 했습니다.
아래 빈칸에 알맞은 답을 말하시오.
스크린샷 2024-03-27 15 03 22

정답 while
acquire 함수는 임계 구역 진입 전, 구역이 잠겨 있을 경우 반복적으로 lock을 확인합니다.

[문제 3번]

봄 맞이 옷 쇼핑을 간 난알쓰조... 수연의 "옷은 입어보고 사야지!" 발언에 탈의실을 이용하기로 한다.
아래 그림 속 에이랜드 탈의실무신사 탈의실동기화 도구로 비유하면 무엇인지 고르시오.

<보기>
뮤텍스 락, 세마포, 모니터

스크린샷 2024-03-27 15 05 30
정답 에이랜드 탈의실: 뮤텍스 락
무신사 탈의실: 세마포


* 뮤텍스 락: 하나의 공유 자원(동시에 접근해서는 안 되는 자원)의 동시 접근을 막는 동기화 도구
* 세마포: 뮤텍스 락과 비슷하지만, 공유 자원이 여러 개 있는 상황에서도 적용이 가능한 동기화 도구

[문제 4번]

빈칸에 들어갈 알맞은 말을 보기에서 고르시오.

<보기>
실행 순서 제어, 상호 배제, 입출력장치

세마포를 이용하면 동시에 실행되는 프로세스 혹은 스레드 간에 [ ]를 위한 동기화와 [ ]를 위한 동기화를 할 수 있습니다.

정답 상호 배제, 실행 순서 제어

[문제 5번]

조건 변수 x와 y가 있다고 가정해보겠습니다. 스레드 A는 실행 과정에서 x.wait을 호출하였고 스레드 B는 y.wait을 호출했습니다. 스레드 C가 y.signal을 호출했을 때 스레드 A와 B 중 실행이 재개되는 스레드는 무엇일까요?

정답 스레드 B
스레드 B가 조건 변수 y에 대해 대기 상태(wait)에 있으므로 y.signal을 호출하면 스레드 B가 실행됩니다.
⚠️ **GitHub.com Fallback** ⚠️