병행성(동시성, Concurrency)에대해 설명해주세요.
프로세스가 동시에 실행되는 것처럼 보이는 것을 말한다.
병렬성(Parellelism)에 대해 설명해주세요.
MultiProcessor 환경에서 여러 프로세스가 서로 다른 CPU에서 동시에 실행되는 것을 말한다.
Critical Section(임계영역)에 대해 설명해주세요.
프로세스가 공유 데이터 영역에 접근하는 코드를 말한다.
Race Condition이 무엇인가요?
여러 프로세스들이 동시에 공유 데이터를 접근하는 상황에서
데이터의 최종 연산 결과가 프로세스의 접근 순서 등에 의해 달라질 수 있는 상태를 말한다.
X = X + 1
한 줄이지만Race Condition을 어떻게 해결할 수 있나요?
공유 데이터에 접근하는 프로세스들을 동기화하여 해결할 수 있다.
프로세스 동기화 방법에는 3가지 정도를 들 수 있다.
Mutual Exclusion에 대해 설명해주세요.
상호 배제를 의미한다.
Mutual Exclusion을 할 수 있는 방법은?
세마포어나 모니터를 이용하여 상호 배제를 구현할 수 있다.
세마포어에 대해 설명해주세요.
프로세스를 동기화하기 위한 로직을 추상화시킨 자료형
모니터에 대해 설명해주세요.
프로세스를 동기화하기 위한 로직을 구현해놓은 고수준의 구조체
좋았던 점
실제 개발하면서 동기화와 관련된 문제가 자주 등장하는데, 동기화에 대한 기틀을 튼튼히 할 수 있어서 앞으로 일을 하는데도 도움이 많이 될 것 같다.
아쉬운 점
내용이 어려워서 이해하는데 많은 시간이 걸렸다..
아직도 이해 못한 부분이 많은 데 나중에 시간내서 다시 살펴봐야겠다.