동기화 문제

    [운영체제] Ch7. 고전적인 동기화 문제들

    [운영체제] Ch7. 고전적인 동기화 문제들

    공룡책(운영체제)을 읽고 정리한 글입니다. 유한 버퍼 문제 소비자와 생산자가 아래 데이터를 공유한다고 가정하자. 길이가 n인 버퍼가 있고, 상호 배제를 제공하는 이진 세마포가 있다. 그리고 현재 버퍼의 빈 공간의 개수와 가득 찬 버퍼의 개수를 기록하는 empty, full 세마포가 있다. 생산자 프로세스의 코드이다. empty 세마포가 0보다 클 때(빈 공간이 있을 때) + mutex가 존재할 때(락을 얻을 수 있을 때) 임계구역에 진입해서 버퍼에 데이터를 입력할 수 있다. 소비자 프로세스의 코드이다. full 세마포가 0보다 클 때(버퍼에 데이터가 있을 때), mutex가 존재할 때(락을 얻을 수 있을 때) 임계구역에 진입해서 버퍼를 소비할 수 있다. Readers - Writers 문제 하나의 DB가..