Readers-Writers ๋ฌธ์ œ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ณตํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค(readers, writers)๊ฐ€ ์ ‘๊ทผํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ž„๊ณ„๊ตฌ์—ญ์œผ๋กœ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค. ์ฆ‰, ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.

๋น„ํšจ์œจ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์ข…๋ฅ˜๋ฅผ reader์™€ writer๋กœ ๋‚˜๋ˆˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  reader๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ์ •๋ณด๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์ฝ๊ธฐ๋งŒ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋ฏ€๋กœ, ์—ฌ๋Ÿฌ reader ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค. writer๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ์„ ๋ฐ”๊พธ๋Š” ํ”„๋กœ์„ธ์Šค์ด๋ฏ€๋กœ ๋‹น์—ฐํžˆ mutual exclusion ์„ ๋ณด์žฅํ•ด์•ผํ•œ๋‹ค.

2.1 ๋ถ„๋ฅ˜

Readers-Writers ๋ฌธ์ œ๋Š” ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  1. The first R/W problem (readers-preference): ์ด ๋ฐฉ๋ฒ•์€ reader ํ”„๋กœ์„ธ์Šค์— ์šฐ์„ ๊ถŒ์„ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ, ํ•œ reader ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฝ๊ณ  ์žˆ๋Š” ๋™์•ˆ writer ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ค๋ฉด ๋‹น์—ฐํžˆ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ๋‹ค๋ฅธ reader ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๋ฉด, writer ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ์ฝ๋Š”๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๋‘ reader๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฝ๋Š” ์ƒํ™ฉ์ด ๋œ๋‹ค.
  2. The second R/W problem (writers-preference): ์œ„ ๋ฐฉ๋ฒ•๊ณผ ๋ฐ˜๋Œ€๋กœ writer ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํ™ฉ์—์„œ ๋‹ค๋ฅธ reader ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๋ฉด, ๊ธฐ์กด์˜ writer ํ”„๋กœ์„ธ์Šค ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ธฐ๋‹ค๋ ค์•ผํ•œ๋‹ค.
  3. The third R/W problem: ์•„๋ฌด์—๊ฒŒ๋„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

Reference