ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์‹œ์™€ ๋ชฉ์ , ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์›์น™์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

1. ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”๋ž€?

ํ•˜๋‚˜์˜ ์ž์›์„ ํ•œ ์ˆœ๊ฐ„์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค(์“ฐ๋ ˆ๋“œ)๋งŒ์ด ์ด์šฉํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ๊ฒƒ

1.1 ๋ฐฐ๊ฒฝ

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

ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—๋Š” cooperating process๊ฐ€ ํ›จ์”ฌ ๋งŽ์ด ์กด์žฌํ•˜๊ณ , ์ด๋“ค์€ ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋‚˜ ํ๋ฆ„์— ๋Œ€ํ•œ ๋™๊ธฐํ™”๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด์— ๋™๊ธฐํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”(Process Synchronization) ๋ผ๊ณ  ํ•œ๋‹ค.(ํ˜„์žฌ์—๋Š” ๋Œ€๋ถ€๋ถ„ ์“ฐ๋ ˆ๋“œ ๊ธฐ์ค€์œผ๋กœ ์Šค์œ„์นญ์„ ํ•˜๋ฏ€๋กœ, Thread synchronization์œผ๋กœ ๋งŽ์ด ๋ถˆ๋ฆฐ๋‹ค.)

1.2 ํ•„์š”์„ฑ

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

1.3 ๋ชฉํ‘œ

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

Reference