필요 개념 정리

고전적인 동기화 문제들

유한 버퍼 문제 (생산자 - 소비자 문제)

생산자-소비자 문제에서 생산자는 데이터를 만들어 버퍼에 저장하고 소비자는 버퍼에 있는 데이터를 꺼내서 소비하는 프로세스를 말한다. 이들 사이에서 버퍼는 공유자원이므로 버퍼에 대한 접근들이 상호배제되어야한다. 이를 세마포어를 통해 구현해본다.

1.png

생산자와 소비자는 위와 같은 자료구조를 공유한다.

mutex 변수는 상호배제를 위한 변수, empty와 full 은 버퍼의 상태를 나타내는 변수이다.

생산자 프로세스 구조와 소비자 프로세스 구조는 다음과 같다.

생산자 프로세스 구조

2.png

소비자 프로세스 구조

3.png