생산자와 소비자 문제 및 공유 자원과 임계 구역
·
운영체제/동기화란
생산자와 소비자 문제 및 공유 자원과 임계 구역이 글에서는 상호 배제를 위한 동기화의 개념을 이해하기 위해 고전적인 사례인 생산자와 소비자 문제를 살펴보고, 이어서 공유 자원과 임계 구역, 그리고 이로 인해 발생할 수 있는 레이스 컨디션에 대해 논의합니다.1. 생산자와 소비자 문제생산자와 소비자 문제는 두 프로세스(또는 스레드)가 공유된 버퍼에 데이터를 추가하거나 제거할 때 발생하는 전형적인 동기화 이슈입니다.생산자 (Producer):버퍼에 데이터를 넣고, 공유 변수인 총합을 1 증가시킵니다.소비자 (Consumer):버퍼에서 데이터를 제거하고, 총합을 1 감소시킵니다.두 프로세스는 동일한 총합 변수를 공유하기 때문에, 초기에 물건이 10개 있을 경우 총합은 10으로 설정됩니다.(그림 출처: 혼자 공부..