Q. 프로세스 동기화에 대해 설명해주세요.
A. 프로세스 동기화는 다중 프로세스 환경에서 공유자원에 하나의 프로세스만 접근가능하도록 하는 것입니다. 프로세스 동기화를 하지 않으면 데이터의 일관성이 깨지기 때문에 연산결과가 잘못 반환될 가능성이 존재하므로 주의해야합니다. 각 프로세스에는 Critical Section이라고 부르는 임계구역이 존재합니다. 한 프로세스가 자신의 임계구역에서 작업하는 동안에는 다른 프로세스가 그들의 임계구역에 들어갈 수 없습니다. 임계구역에 접근한는 것을 제어하기 위해 세마포어, 뮤텍스와 같은 매커니즘을 사용합니다. 이런 임계구역 문제는 여러 프로세스나 스레드가 동기화 매커니즘 없이 자원에 접근하려는 상황인 race condition을 막을 수 있는 해결책이 됩니다. 임계구역 문제를 해결하기 위한 조건은 한 프로세스가 임계구역에서 동작중이면 다른 프로세스는 접근할 수 없는 Mutual Exclusion, 임계구역에서 작업중인 프로세스가 없다면 임계구역으로 진입하려는 프로세스를 적절히 선택해서 진입할 수 있도록 하는 Progress, 한 프로세스가 임계영역으로 진입을 요청한 후 다른 프로세스는 진입이 유한한 횟수로 제한되어야 한다는 Bounded Waiting이 있습니다.
'CS 지식 > 면접준비' 카테고리의 다른 글
면접 준비 : 교착상태와 기아상태 (0) | 2023.04.24 |
---|---|
면접 준비 : 데이터베이스 인덱스 (0) | 2023.04.21 |
면접 준비 : Thread-safe의 정의와 구현방법 (0) | 2023.04.13 |
면접 준비 : 멀티스레딩 (0) | 2023.04.09 |
면접 준비 : 프로레스와 스레드 (0) | 2023.04.08 |