상호배제 (2) 썸네일형 리스트형 [개발자 면접] 교착상태란 무엇인지? 교착상태의 4가지 조건에 대해서 실제로 면접 2군데에서 물어본 질문임. Q. 교착 상태(데드락)에 대해서 설명하고 4가지 조건에 대해서 설명하세요. 교착 상태란 자원을 소유한 스레드 사이에서, 각 스레드가 다른 스레드가 소유한 자원을 요청하여 모든 스레드가 무한정 대기하는 현상을 말한다. 교착상태의 4가지 조건은 다음과 같다. 상호배제, 점유대기, 비선점, 순환대기 상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적 통제권을 요구함 점유대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원 기다림 비선점 : 프로세스가 어떤 자원의 사용을 끝날 때까지 그 자원을 뺏을 수 없음 순환대기 : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있음 이 4가지 조건 중 하나라도 만족하지 않으면 교착상태는 발생하지 않는다. .. [개발자 면접] 스레드 동기화와 동기화 구현방식에 대해서 Q. 스레드 동기화에 대해서 설명해보세요. 스레드 동기화는 멀티스레드 환경에서 다수의 작업이 실행해서 공유데이터에 동시에 접근할 경우 문제가 발생하는데 이런 접근을 막는 것을 말한다. Q. 상호배제, 임계구역, Race condition에 대해서 설명해보세요. 여러 스레드가 임계구역에 대해서 경쟁(Race condition)을 할 때 상호배제가 이루어져야만 스레드 동기화가 보장된다. # Race condtion 두 개 이상의 프로세스가 공통 자원을 병행적으로 읽거나 쓸 때, 공용 데이터에 대한 접근이 순서에 따라 실행 결과가 달라지는 상황 Race Condition이 발생하게 되면, 모든 프로세스에 원하는 결과가 발생하는 것을 보장할 수 없음. 따라서 이러한 상황은 피해야 하며 임계구역 상호배제를 통해 .. 이전 1 다음