# Readers/Writers problem

producer/consumer보다 더 일반적인 문제

어떤 데이터 영역을 여러 프로세스가 공유할때 생기는 문제

이 문제는
1. reader는 여러 파일을 읽을 수 있다
2. 하나의 writer는 파일에 write가능
3. writing중에 reader는 읽을 수 없다.



reader가 우선하는 방법
몇명이 읽는지 관리하는 변수 필요, 읽는동안은 writer 쓸수 없음



writer가 우선하는 방법
writer가 하나라도 생기면 rsem에 의해 reader들은 진행 불가




Message Passing을 가지고 Readers/Writers problem 해결
count는 reader의 개수를 의미
writer가 존재하면 -100을 해서 0보다 작게 만든다 (이 시스템에서 reader의 최대개수는 100으로 가정)



#

mutex - 동기화 대상이 하나인 경우
공유된 자원의 데이터 혹은 임계영역(Critical Section) 등에 하나의 Process 혹은 Thread가 접근하는 것을 막아줌 (동기화 대상이 하나)

semaphore - 동기화 대상이 하나 이상인 경
공유된 자원의 데이터 혹은 임계영역(Critical Section) 등에 여러 Process 혹은 Thread가 접근하는 것을 막아줌 (동기화 대상이 하나 이상)