개발놀이터
면접 준비 : 프로세스 동기화 본문
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 |