경쟁상태1 [OS] 임계구역과 경쟁상태 그리고 동기화 목표: 멀티 프로세스/쓰레드 환경에서 핵심적인 문제인 동기화가 무엇인지 살펴봅니다. BankAccount 예제를 통해서 경쟁 상태와 임계 구역 문제에 대해 알아봅니다. 쓰레드에 대한 기본 개념이 없으신 분들은 이 글을 참조해주세요. 경쟁상태와 임계구역 현대의 운영체제 대부분은 멀티 쓰레드를 지원합니다. 근데 이때 공유 자원(shared data)에 여러 쓰레드가 접근해 값을 수정하면 데이터의 일관성(consistency)이 깨지게 되는데, 이를 경쟁 상태(Race Condition)라고 합니다. 이 경쟁 상태를 해결하기 위한 것이 동기화(Synchronization)입니다. 예를 들어보죠. 하나의 은행 계좌(공유 자원)에 부모님은 돈을 입금하고 자식은 돈을 출금하는 상황을 코드로 구현해 보겠습니다. 우선.. 2021. 4. 10. 이전 1 다음