Readers - Writers Problem
1) 공통 데이터베이스
- Readers : read data, never modify it
- Writers : read data and modify it
- 상호배타 : 한 번에 한개의 프로세스만 접근가능하도록 => 공유 데이터베이스에서 비효율적
2) 효율성 제고
공유 데이터에 대한 읽기, 쓰기는 임계구역 내에서 발생한다.
Writer 간에는 상호배타를 보장해야 한다. 즉, 한 번에 한 Writer만 공유 데이터에 접근가능하도록 만든다.
Reader 간에는 상호배타를 적용하지 않는다. 그래서 다수의 Reader 가 동시에 공유데이터를 읽을 수 있도록 한다.
물론, Writer가 공유 데이터에 접근할 때 Reader는 접근할 수 없고, Reader가 접근할 때 Writer는 접근할 수 없다.
3) 변종
- The first R/W problem (readers-preference) : Reader에게 접근가능한 우선권을 부여한다.
- The second R/W problem (writers-preference) : Writer에게 접근가능한 우선권을 부여한다.
- The Third R/W problem : 우선권 부여하지 않는다.
'Programming > 운영체제' 카테고리의 다른 글
교착상태 처리 (0) | 2021.08.27 |
---|---|
전통적 동기화 예제 (3) 식사하는 철학자 문제 (0) | 2021.08.27 |
전통적 동기화 예제 (1) 생산자 - 소비자 문제 (0) | 2021.08.25 |
세마포 예제(Java) (0) | 2021.07.30 |
프로세스 동기화 도구 - 세마포 (0) | 2021.07.28 |