๊ต์ฐฉ ์ƒํƒœ๋Š” ์–ด๋– ํ•œ ์ž์›์„ ๊ฐ–๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ž๋™์ฐจ ๊ต์ฐจ๋กœ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. A์ž๋™์ฐจ๋„ ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•˜๊ณ , B ์ž๋™์ฐจ๋„ ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ์ž๋™์ฐจ๊ฐ€ ์›€์ง์ด๋Š” ๊ฒƒ์— ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๊ฐ€ ์—†์ง€๋งŒ, ๋‘ ์ž๋™์ฐจ๊ฐ€ ๊ฐˆ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ”๋กœ ์ถœ๊ทผ ์‹œ๊ฐ„ ๊ธธ ๋ง‰ํž˜์ด๋‹ค. ๊ธธ์ด ๋ง‰ํ˜€ ์•„๋ฌด๋Ÿฐ ๋™์ž‘๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๊ต์ฐฉ์ƒํƒœ๋ผ ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰์„ ์œ„ํ•ด CPU, ๋ฉ”๋ชจ๋ฆฌ, ํŒŒ์ผ ๋“ฑ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด ์ž์›์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ฅผ ์šด์˜์ฒด์ œ์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ž์›์„ ์ ์ ˆํžˆ ๋ถ„๋ฐฐํ•ด์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ A ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ B ์ž์›์„ ์š”๊ตฌํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ B ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ์—ญ์‹œ ์š”๊ตฌํ•˜๊ณ  ์žˆ๋Š” ์ž์›์ธ๋ฐ, ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์ž์›์„ ๋ถ„๋ฐฐํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋˜๋ฉด ๊ต์ฐฉ์ƒํƒœ์— ๋น ์ง€๊ฒŒ ๋œ๋‹ค.

1. ๊ต์ฐฉ์ƒํƒœ ํ•„์š” ์กฐ๊ฑด(Necessary Conditions)

๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์ผ์–ด๋‚˜๊ธฐ ์œ„ํ•œ ํ•„์š” ์กฐ๊ฑด์ด ๋„ค ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด๋Š” ํ•„์š” ์กฐ๊ฑด์ด๋ฏ€๋กœ, ๋„ค ๊ฐ€์ง€๊ฐ€ ๋ชจ๋‘ ํ•ด๋‹น๋œ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹จ์ง€ ์ผ์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ๋ฐœ์ƒํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๋„ค๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ํ•ด๋‹น๋˜์ง€ ์•Š์œผ๋ฉด ๊ต์ฐฉ ์ƒํƒœ๋Š” ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, 4๊ฐ€์ง€ ์กฐ๊ฑด์— ๋ชจ๋‘ ํ•ด๋‹น๋˜๋ฉด Deadlock์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋‚˜, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด Deadlock์€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

  1. Mutual exclusion (์ƒํ˜ธ๋ฐฐํƒ€)
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ์ด ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
      • ์ “๊ฐ€๋ฝ์€ ํ•œ ์ฒ ํ•™์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉด ์ด ์ “๊ฐ€๋ฝ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ƒํ˜ธ๋ฐฐํƒ€์ ์ด๋‹ค.
  2. No Preemption (๋น„์„ ์ )
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ค‘์—๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๊ฐ„์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.
      • ํ•œ ์ฒ ํ•™์ž๊ฐ€ ์ “๊ฐ€๋ฝ์„ ์ง‘์€ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ฒ ํ•™์ž๊ฐ€ ์ด ์ “๊ฐ€๋ฝ์„ ๋บ์„ ์ˆ˜ ์—†๋‹ค.
  3. Hold and wait (๋ณด์œ  ๋ฐ ๋Œ€๊ธฐ)
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋Œ€๊ธฐํ•œ๋‹ค.
      • ์ฒ ํ•™์ž๋Š” ์™ผ์ชฝ ์ “๊ฐ€๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ์˜ค๋ฅธ์ชฝ ์ “๊ฐ€๋ฝ์„ ์ง‘๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•œ๋‹ค.
  4. Circular wait (ํ™˜ํ˜•๋Œ€๊ธฐ)
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ž์›์˜ ๋ฐฉํ–ฅ์ด ์›ํ˜•์„ ์ด๋ฃฌ๋‹ค.
      • ๋ชจ๋“  ์ฒ ํ•™์ž๋Š” ์™ผ์ชฝ ์ “๊ฐ€๋ฝ๋ถ€ํ„ฐ ์ง‘์„ ์ˆ˜ ์žˆ๋‹ค.

๊ต์ฐฉ์ƒํƒœ๋Š” ์œ„ ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋”๋ผ๋„ ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์ด์ง€๋งŒ, ํ•œ ๋ฒˆ ๊ต์ฐฉ์ƒํƒœ์— ๋น ์ง€๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ ธ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ณ  ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž์›์€ ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ด๋Š” ์ „์ฒด ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์— ๋งค์šฐ ์น˜๋ช…์ ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ต์ฐฉ์ƒํƒœ์— ์˜ํ•œ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋Š” ๋งค์šฐ ํž˜๋“ค๋‹ค.

2. ์ž์›(Resources)

๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์›์ธ์€ ๊ฒฐ๊ตญ ์ž์›์˜ ๋ฌธ์ œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์ž์›์„ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•˜๊ณ  ์žˆ๋Š” ์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

ํ•˜๋“œ์›จ์–ด ์ž์›์€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๋™์ผํ•œ **ํ˜•์‹(type)**์˜ ์ž์›์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ™์€ CPU๊ฐ€ 2๊ฐœ์žˆ๋Š” ํ™˜๊ฒฝ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž์› ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ instance๋ผ๊ณ  ํ•œ๋‹ค.

์ž์›์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ , ์šด์˜์ฒด์ œ์— **์š”์ฒญ(request)**ํ•˜๋ฉด ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•ด์ค€๋‹ค. ๊ทธ ํ›„ ํ”„๋กœ์„ธ์Šค๋Š” ์ด ์ž์›์„ **์‚ฌ์šฉ(use)**ํ•˜๊ณ  ๋ชจ๋“  ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด ์ด๋ฅผ **๋ฐ˜๋‚ฉ(release)**ํ•œ๋‹ค.

์š”์ฒญ(request) -> ์‚ฌ์šฉ(use) -> ๋ฐ˜๋‚ฉ(release)

2.1 ์ž์› ํ• ๋‹น๋„(Resource Allocation Graph)

์ž์› ํ• ๋‹น๋„๋Š” ์–ด๋–ค ์ž์›์ด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ์–ด๋Š ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋Š ์ž์›์„ ํ• ๋‹น ๋ฐ›์œผ๋ ค๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋Š”์ง€๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.

|์šฉ์–ด|๋ชจ์–‘| |::----|::----| |Resource(์ž์›)|์‚ฌ๊ฐํ˜•| |Instance(์ธ์Šคํ„ด์Šค)|์ | |Process(ํ”„๋กœ์„ธ์Šค)|์›| |ํ• ๋‹น|ํ™”์‚ดํ‘œ|

R1์€ P1์— ํ• ๋‹น๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ด๊ณ , P2๋Š” R1์„ ์š”์ฒญํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

์ž์› ํ• ๋‹น๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๊ต์ฐฉ์ƒํƒœ์˜ ํ•„์š”์กฐ๊ฑด์„ ํ•œ ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ž์› ํ• ๋‹น๋„๋ฅผ ๋ถ„์„ํ•  ๋•Œ mutual exclusion(ํ•œ๋ฒˆ์— ํ•˜๋‚˜)๊ณผ no-preemption(๊ฐ•์ œ๋กœ ๋ชป ๋บ๋Š”๋‹ค.)์€ ๊ธฐ๋ณธ์œผ๋กœ ์ ์šฉ๋œ๋‹ค.

Hold and wait๋Š” ํ™”์‚ดํ‘œ๋ฅผ ํ†ตํ•ด ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹น๋ฐ›์•˜๊ณ  ๋‹ค๋ฅธ ์ž์›์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค๋ฉด, ์ด ์ƒํ™ฉ์€ Hold and wait์ธ ์ƒํƒœ์ด๋‹ค.

Circular wait ์—ญ์‹œ ํ™”์‚ดํ‘œ ๋ฐฉํ–ฅ์ด ์›ํ˜•์„ ์ด๋ฃจ๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋Š” ํ™˜ํ˜•๋Œ€๊ธฐ์ธ ์ƒํƒœ์ด๋‹ค.

์ด๋Ÿฐ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด Circular wait ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ต์ฐฉ ์ƒํƒœ์˜ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ ์‹์‚ฌํ•˜๋Š” ์ฒ ํ•™์ž ๋ฌธ์ œ๋ฅผ ์ž์› ํ• ๋‹น๋„๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํ•œ ๋ˆˆ์— Circular wait ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์ฒ ํ•™์ž(ํ”„๋กœ์„ธ์Šค)๋Š” ํ•œ ์ “๊ฐ€๋ฝ(์ž์›)์„ ํ• ๋‹น(ํŒŒ๋ž€์ƒ‰ ํ™”์‚ดํ‘œ)๋ฐ›๊ณ , ๋‹ค๋ฅธ ์ “๊ฐ€๋ฝ์„ ์š”์ฒญ(๊ฒ€์€์ƒ‰ ํ™”์‚ดํ‘œ)ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ Hold and wait ์กฐ๊ฑด ์—ญ์‹œ ๋งŒ์กฑํ•œ๋‹ค.

4. ๊ต์ฐฉ์ƒํƒœ ์ฒ˜๋ฆฌ

4.1 ๊ต์ฐฉ์ƒํƒœ ๋ฐฉ์ง€ (Deadlock Prevention)

๊ต์ฐฉ์ƒํƒœ ๋ฐฉ์ง€๋Š” ๊ต์ฐฉ์ƒํƒœ ํ•„์š”์กฐ๊ฑด ๋„ค ๊ฐ€์ง€ ์ค‘ ์ตœ์†Œ ํ•œ ๊ฐ€์ง€๋ฅผ ๋งŒ์กฑ์‹œํ‚ค์ง€ ์•Š๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ƒํ˜ธ๋ฐฐํƒ€(Mutual exclusion)
    • ์ƒํ˜ธ๋ฐฐํƒ€๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž์›์„ ๊ณต์œ  ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • ๋น„์„ ์ (No preemption)
    • ๋น„์„ ์ ์„ ์—†์• ๋Ÿฌ๋ฉด ๋ฐ˜๋Œ€๋กœ ์„ ์ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ด ์—ญ์‹œ ๋Œ€๋ถ€๋ถ„์˜ ์ž์›์—๊ฒŒ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. CPU๋Š” ๊ฐ•์ œ๋กœ ์Šค์œ„์นญํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ€๋ น ํ”„๋ฆฐํ„ฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด๋ฅผ ์„ ์ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณด์œ  ๋ฐ ๋Œ€๊ธฐ(Hold & Wait)
    • ์ด ์กฐ๊ฑด์„ ์—†์• ๋ ค๋ฉด ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋„๋ก ๋งŒ๋“ ๋‹ค. ๋งŒ์•ฝ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์›์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ•„์š”ํ•œ ๋ชจ๋“  ์ž์›์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น ์ž์›์„ ์š”์ฒญํ•œ๋‹ค. ๋˜๋Š” ํ•„์š”ํ•œ ์ž์› ์ค‘ ์ผ๋ถ€๋งŒ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ๋ชจ๋‘ ์šด์˜์ฒด์ œ์— ๋ฐ˜๋‚ฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์€ ์ž์›์˜ ํ™œ์šฉ๋ฅ ์„ ์ €ํ•˜์‹œํ‚ค๊ณ , starvation ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
    • ์™ผ์ชฝ ์ “๊ฐ€๋ฝ์„ ๊ฐ€์ง„ ์ƒํƒœ์—์„œ ์˜ค๋ฅธ์ชฝ ์ “๊ฐ€๋ฝ์„ ์š”์ฒญํ–ˆ๋Š”๋ฐ, ์ด๋ฏธ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค๋ฉด, ์™ผ์ชฝ ์ “๊ฐ€๋ฝ๋„ ํ• ๋‹นํ•ด์ œ ํ•œ๋‹ค.
  • ํ™˜ํ˜•๋Œ€๊ธฐ(Circular wait)
    • ์ด ์กฐ๊ฑด์„ ์—†์• ๋Š” ๊ฒƒ์€ ์œ„ ์„ธ ๊ฐ€์ง€ ์กฐ๊ฑด๋ณด๋‹ค๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ํ™•๋ฅ ์ด ๋†’๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” ๋ชจ๋“  ์ž์›์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์ด ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ž์›์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์—ญ์‹œ ์ž์›์˜ ํ™œ์šฉ๋ฅ ์„ ์ €ํ•˜์‹œํ‚ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ ๊ฐ€์žฅ ํ˜„์‹ค์ ์ธ ๋ฐฉ๋ฒ•์€ hold & wait๋‚˜ circular wait ์กฐ๊ฑด์„ ์—†์• ๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋‘˜ ๋‹ค ์ž์›์„ ๋น„ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด์™€ ๊ฐ™์ด ๊ต์ฐฉ์ƒํƒœ ๋ฐฉ์ง€ ๋ฐฉ๋ฒ•์€ ๊ตฐ์‚ฌ, ์šฐ์ฃผ, ์˜๋ฃŒ์™€ ๊ฐ™์€ ํฌ๋ฆฌํ‹ฐ์ปฌํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ฒ ํ•™์ž ๋ฌธ์ œ์— ์ ์šฉ

์œ„ ๊ทธ๋ฆผ์€ ์‹์‚ฌํ•˜๋Š” ์ฒ ํ•™์ž ๋ฌธ์ œ๋ฅผ ์ž์› ํ• ๋‹น๋„๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํ•œ ๋ˆˆ์— Circular wait ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์ฒ ํ•™์ž(ํ”„๋กœ์„ธ์Šค)๋Š” ํ•œ ์ “๊ฐ€๋ฝ(์ž์›)์„ ํ• ๋‹น(ํŒŒ๋ž€์ƒ‰ ํ™”์‚ดํ‘œ)๋ฐ›๊ณ , ๋‹ค๋ฅธ ์ “๊ฐ€๋ฝ์„ ์š”์ฒญ(๊ฒ€์€์ƒ‰ ํ™”์‚ดํ‘œ)ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ Hold and wait ์กฐ๊ฑด ์—ญ์‹œ ๋งŒ์กฑํ•œ๋‹ค.

Circular wait ์กฐ๊ฑด์„ ์—†์• ๊ธฐ ์œ„ํ•ด ์ง์ˆ˜ ๋ฒˆํ˜ธ ์ฒ ํ•™์ž๋Š” ์™ผ์ชฝ ์ “๊ฐ€๋ฝ, ์˜ค๋ฅธ์ชฝ ์ “๊ฐ€๋ฝ ์ˆœ์„œ๋กœ, ํ™€์ˆ˜ ๋ฒˆํ˜ธ ์ฒ ํ•™์ž๋Š” ๋ฐ˜๋Œ€ ์ˆœ์„œ์ธ ์˜ค๋ฅธ์ชฝ ์ “๊ฐ€๋ฝ, ์™ผ์ชฝ ์ “๊ฐ€๋ฝ ์ˆœ์„œ๋กœ ์ง‘๋Š”๋‹ค๊ณ  ํ•˜์ž.

์œ„ ๊ทธ๋ฆผ์€ circular wait ์กฐ๊ฑด์„ ์—†์•ค ์‹์‚ฌํ•˜๋Š” ์ฒ ํ•™์ž ๋ฌธ์ œ์˜ ์ž์› ํ• ๋‹น๋„์ด๋‹ค. ํ™”์‚ดํ‘œ๊ฐ€ ์›ํ˜•์„ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

// Philosopher Thread run function
public void run() {
    try {
        while (true) {
            if (id % 2 == 0) {
                lstick.acquire();
                rstick.acquire();
            }
            else {
                rstick.acquire();
                lstick.acquire();
            }
            eating();
            lstick.release();
            rstick.release();
            thinking();
        }
    }catch (InterruptedException e) { }
}

์ด์ „ ๊ธ€์—์„œ ์žˆ๋˜ ์ฒ ํ•™์ž๊ฐ€ ์ “๊ฐ€๋ฝ์„ ์ง‘๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฌดํ•œ ๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚˜์ง€์•Š๊ณ  ์ •์ƒ์ ์œผ๋กœ ๊ณ„์†๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

4.2 ๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ (Deadlock Avoidance)

๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ์™€ ๋ฐฉ์ง€์˜ ์ฐจ์ด์ ์€ ๊ต์ฐฉ์ƒํƒœ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ์—์„œ๋Š” ๊ต์ฐฉ์ƒํƒœ๋ฅผ ์ž์› ์š”์ฒญ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์Šน์ธ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค. OS๋‹จ์—์„œ ์š”์ฒญ์— ๋Œ€ํ•ด ์ž˜ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฌํ•œ ์ ‘๊ทผ์€ ์€ํ–‰๊ณผ ๋น„์Šทํ•˜๋‹ค. ์€ํ–‰์ด ํˆฌ์ž๋ฅผ ํ•  ๋•Œ, ์•ˆ์ „ํ•œ ๊ณณ๊ณผ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ณณ์„ ์ž˜ ๋ถ„๋ฆฌํ•˜์—ฌ ํˆฌ์žํ•ด์•ผ, ์œ„๊ธฐ ์ƒํ™ฉ์—์„œ ๋ถ€๋„๊ฐ€ ๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, OS์—์„œ deadlock์ด ๋‚˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ• ๋‹นํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๊ต์ฐฉ ์ƒํƒœ ํšŒํ”ผ์ด๋‹ค.

๋”ฐ๋ผ์„œ, ๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ์—์„œ๋Š” ์•ˆ์ „ํ•œ ํ• ๋‹น(Safe allocation)๊ณผ ๋ถˆ์•ˆ์ •ํ•œ ํ• ๋‹น(Unsafe allocation) ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

์•ˆ์ „ํ•œ ํ• ๋‹น

ํ˜„์žฌ ์šด์˜์ฒด์ œ์—๋Š” magnetic tape ์ž์›์ด ์ด 12๊ฐœ๊ฐ€ ์žˆ๊ณ , ์ด๋ฅผ ์š”์ฒญํ•˜๋Š” 3๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค.

processMax needsCurrent needs
P0105
P142
P292
  • Current needs
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•œ ๋ฒˆ ์š”์ฒญ์„ ํ•  ๋•Œ ์š”๊ตฌํ•˜๋Š” ๊ฐœ์ˆ˜
  • Max needs
    • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋๋‚ด๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ด ๊ฐœ์ˆ˜

์šด์˜์ฒด์ œ ์ž…์žฅ์—์„œ 3๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋‘ ์ˆ˜ํ–‰๋  ๋•Œ๊นŒ์ง€ ์ž์›์„ ๋ถ„๋ฐฐํ•ด๋ณด์ž.

  • order : ์ˆœ์„œ
  • process : ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„
  • needs : ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” tape์˜ ๊ฐœ์ˆ˜
  • possible : ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•œ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ณ€์ˆ˜
  • state : ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ง„ํ–‰ ์ƒํƒœ
  • dealloc : ํ• ๋‹น ํ•ด์ œ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ณ€์ˆ˜
  • tapeSize : ํ˜„์žฌ๊นŒ์ง€ ํ• ๋‹น๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” tape์˜ ๊ฐœ์ˆ˜
  • wait : ํ• ๋‹น ๋ฐ›์ง€ ๋ชปํ•ด ๋Œ€๊ธฐํ•˜๋Š” ์ง€ ์œ ๋ฌด
orderprocessneedspossiblestatedealloctapeSizewait
1P05O5/10X12โ†’7X
2P12O2/4X7โ†’5X
3P22O2/9X5โ†’3X
4P05X5/10X3O
5P12O4/4O3โ†’1โ†’5X
6P05O10/10O5โ†’0โ†’10X
7P22O4/9O10โ†’8โ†’12X
8P22O6/9O12โ†’10โ†’12X
9P22O8/9O12โ†’10โ†’12X
10P22O9/9O12โ†’11โ†’12X
  1. P0์—๊ฒŒ 5๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(5/10) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 7
  2. P1์—๊ฒŒ 2๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(2/4) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 5
  3. P2์—๊ฒŒ 2๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(2/9) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 3
  4. ๋‹ค์‹œ P0๊ฐ€ 5๊ฐœ๋ฅผ ์š”๊ตฌํ•˜์ง€๋งŒ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜๋Š” 3๊ฐœ์ด๋ฏ€๋กœ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์—†๋‹ค.
  5. P1์—๊ฒŒ 2๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(4/4) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 1
    • P1์€ ํ•„์š”ํ•œ 4๊ฐœ์˜ magnetic tape์„ ๋ฐ›์•˜์œผ๋ฏ€๋กœ, ์ •์ƒ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ์‚ฌ์šฉํ•œ ์ž์›์„ ๋ฐ˜๋‚ฉํ•œ๋‹ค. โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 5
  6. ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋˜ P0์—๊ฒŒ 5๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(10/10) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 0
    • P0 ์—ญ์‹œ ํ•„์š”ํ•œ ์ž์›์„ ๋ชจ๋‘ ํ• ๋‹น๋ฐ›์•˜์œผ๋ฏ€๋กœ, ์ข…๋ฃŒ ํ›„ ์ž์›์„ ๋ฐ˜๋‚ฉํ•œ๋‹ค. โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 10
  7. P2๋Š” ํ˜„์žฌ ํ•„์š”ํ•œ magnetic tape ๊ฐœ์ˆ˜๊ฐ€ 7๊ฐœ์ด๊ณ , ํ˜„์žฌ ๋‚จ์•„์žˆ๋Š” magnetic tape ๊ฐœ์ˆ˜ 10๊ฐœ์ด๋ฏ€๋กœ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๊ฐ€๋Šฅํ•˜๋‹ค. (7~10)

์ด ์˜ˆ์ œ์—์„œ๋Š” 3๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์ž์›์„ ํ• ๋‹น๋ฐ›๊ณ  ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ์•ˆ์ „ํ•œ ํ• ๋‹น์ด๋ผ ํ•œ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ณด์ž.

๋ถˆ์•ˆ์ „ํ•œ ํ• ๋‹น

processMax needsCurrent needs
P0105
P142
P293

์ด ์˜ˆ์ œ ์—ญ์‹œ ์šด์˜์ฒด์ œ๊ฐ€ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์ด magnetic tape ๊ฐœ์ˆ˜๋Š” 12๊ฐœ์ด๊ณ , 3๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ž์›์„ ๋ถ„๋ฐฐํ•ด๋ณด์ž.

orderprocessneedspossiblestatedealloctapeSizewait
1P05O5/10X12โ†’7X
2P12O2/4X7โ†’5X
3P23O3/9X5โ†’2X
4P05X5/10X2O
5P12O4/4O2โ†’0โ†’4X
6P05X5/10X4O
7P23O6/9X4โ†’1X
8P05X5/10X1O
9P23X6/9X1O
10P05X5/10X1O
11P23X6/9X1O
  1. P0์—๊ฒŒ 5๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(5/10) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 7
  2. P1์—๊ฒŒ 2๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(2/4) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 5
  3. P2์—๊ฒŒ 3๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(3/9) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 2
  4. ๋‹ค์‹œ P0๊ฐ€ 5๊ฐœ๋ฅผ ์š”๊ตฌํ•˜์ง€๋งŒ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜๋Š” 2๊ฐœ์ด๋ฏ€๋กœ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์—†๋‹ค.
  5. P1์—๊ฒŒ 2๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(4/4) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 0
    • P1์€ ํ•„์š”ํ•œ ์ž์›์„ ๋ชจ๋‘ ํ• ๋‹น๋ฐ›์•˜์œผ๋ฏ€๋กœ, ์ •์ƒ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ์‚ฌ์šฉํ•œ ์ž์›์„ ๋ฐ˜๋‚ฉํ•œ๋‹ค. โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 4
  6. ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋˜ P0๋Š” ์•„์ง ํ• ๋‹น๋ฐ›์œผ๋ฅด ์ˆ˜ ์—†๋‹ค.
  7. P2์—๊ฒŒ 3๊ฐœ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.(6/9) โ‡’ ํ˜„์žฌ magnetic tape ๊ฐœ์ˆ˜: 1
  8. ํ˜„์žฌ ๋‚จ์•„์žˆ๋Š” magnetic tape ๊ฐœ์ˆ˜๋Š” 1๊ฐœ์ด๊ณ , P0๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๊ฐœ์ˆ˜๋Š” 5๊ฐœ, P2๋Š” 3๊ฐœ์ด๋ฏ€๋กœ ๋‘ ํ”„๋กœ์„ธ์Šค ๋ชจ๋‘ ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์—†๋‹ค. (8~)

์ด ์˜ˆ์ œ์—์„œ ๋‚จ์€ magnetic tape ๊ฐœ์ˆ˜๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๊ฐœ์ˆ˜๋ณด๋‹ค ์ ์œผ๋ฏ€๋กœ ์ž์›์„ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ P0, P2 ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ํ•˜์—ผ์—†์ด ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ๋ถˆ์•ˆ์ „ํ•œ ํ• ๋‹น์ด๋ผ ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๊ต์ฐฉ์ƒํƒœ์— ๋น ์ง€๊ฒŒ ๋œ๋‹ค.

๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ๋Š” ๋งˆ์น˜ ๋Œ€์ถœ์ „๋ฌธ ์€ํ–‰๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฏ€๋กœ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ Bankerโ€™s Algorithm์ด๋ผ ํ•œ๋‹ค. ๋ˆ์ด ์žˆ์–ด์•ผ ๊ฐ’์ง€

4.3 ๊ต์ฐฉ์ƒํƒœ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ (Deadlock Detection & Recovery)

๊ต์ฐฉ์ƒํƒœ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ๋Š” ๊ต์ฐฉ์ƒํƒœ ์ž์ฒด๊ฐ€ ๋งค์šฐ ๋“œ๋ฌธ ํ˜„์ƒ์ด๋ฏ€๋กœ ์ž์œ ๋กญ๊ฒŒ ์ž์›์„ ๋ถ„๋ฐฐํ•˜๋‹ค๊ฐ€ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ ์ •์ƒ์ ์ธ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

1๋ฒˆ๊ณผ 2๋ฒˆ ๋ฐฉ๋ฒ•์€ ์‚ฌ์ „์— ๊ต์ฐฉ์ƒํƒœ๋ฅผ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๊ต์ฐฉ์ƒํƒœ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ ๋ฐฉ๋ฒ•์€ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค. ๊ทธ ๋Œ€์‹ , ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ์ด๋ฅผ ์ธ์ง€ํ•˜๊ณ  ๋ณต๊ตฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋Š”์ง€ ๊ฒ€์‚ฌํ•ด์•ผํ•œ๋‹ค. ๊ทธ ์ฃผ๊ธฐ์˜ ๊ธธ์ด๊ฐ€ ์งง์œผ๋ฉด ๊ทธ ๋งŒํผ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ณ , ์ฃผ๊ธฐ๊ฐ€ ๊ธธ๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ณต๊ตฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„์ง„๋‹ค.

๋ณต๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๋“ฏ์ด ๋ฉ”๋ชจ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด๋†“๊ณ  ๋งŒ์•ฝ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๊ทธ ์™ธ์—๋„ ์ผ๋ถ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์ž์›์„ ๊ฐ•์ œ๋กœ ์„ ์ ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹นํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ์žˆ๋‹ค.

์ •์ƒ์ ์ธ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ๋ณต๊ตฌ๋ฅผ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๊ฒ€์ถœ์„ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

4.3 ๊ต์ฐฉ์ƒํƒœ ๋ฌด์‹œ

๊ต์ฐฉ์ƒํƒœ์˜ ํ•„์š”์กฐ๊ฑด ๋„ค ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋”๋ผ๋„ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ  ํ–ˆ๋“ฏ์ด, ๊ต์ฐฉ์ƒํƒœ๋Š” ๋งค์šฐ ๋“œ๋ฌธ ์ƒํ™ฉ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด๋ฅผ ์œ„ํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฐ์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ธ ํ™˜๊ฒฝ๋„ ์กด์žฌํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํ™˜๊ฒฝ์€ ๊ต์ฐฉ์ƒํƒœ์— ๋Œ€ํ•œ ์•„๋ฌด๋Ÿฐ ์กฐ์น˜๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

Reference