전통적 동기화 예제 (2) 공유 데이터베이스 접근
Programming/운영체제

전통적 동기화 예제 (2) 공유 데이터베이스 접근

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 : 우선권 부여하지 않는다.