혼공단

[혼공단 9기] 혼공컴운 5주차

kyj0015 2023. 2. 12. 13:09

기본 미션

p.363의 확인 문제 1번 풀고 인증하기

 

 

선택 미션

Ch,12(12-1)  임계 구역, 상호 배제 개념을 정리하기

임계 구역 : 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역

상호 배제 : 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없도록 해야 상호 배제를 위한 동기화가 이루어진다. 

 

 

개념 정리

12-2장 동기화 기법

1. 뮤텐스 락

동시에 접근해서는 안 되는 자원에 동시에 접근하지 않도록 만드는 동기화 도구이다. 전역 변수 lock, acquire 함수, release 함수를 이용한다. lock을 획득할 수 없다면 기다리고, 있다면 임계구역을 잠근 뒤 작업을 진행하고, 임계 구역에서 빠져나올 때엔 다시 lock을 해제한다. 

2. 세마포

뮤텐스 락과 유사하지만 공유 자원이 여러 개 있는 상황에서도 적용이 가능한 동기화 도구이다. 전역 변수 S, wait 함수, signal 함수를 이용한다. 만약 임계 구역에 진입할 수 있는 프로세스 개수가 0 이하라면 사용할 수 있는 자원이 있는지 반복적으로 확인하고, 임계 구역에 진입할 수 있는 프로세스 개수가 하나 이상이면 S를 1 감소시키고 임계 구역에 진입한다. 

3. 모니터

세마포에 비해 사용자가 사용하기 편리한 동기화 도구로 조건 변수를 사용합니다. 

 

메모

모니터는 잘 모르겠다... 대충 조건 변수와 공유 자원이 많을 때 쉽게 관리하기 위해 큐를 만들어 사용한다는 것 같다.