Book

[ ๋ฉด์ ‘์„ ์œ„ํ•œ cs ์ „๊ณต์ง€์‹ ๋…ธํŠธ ์ •๋ฆฌ ] 3.์šด์˜์ฒด์ œ : ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ 2

PYT 2024. 4. 20. 02:38
๋ฐ˜์‘ํ˜•

(์ถœ์ฒ˜ :  https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95)

3.3 ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

3.3.5 ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ
3.3.6 ์Šค๋ ˆ๋“œ์™€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ
3.3.7 ๊ณต์œ  ์ž์›๊ณผ ์ž„๊ณ„ ์˜์—ญ
3.3.8 ๊ต์ฐฉ ์ƒํƒœ

 


3.3 ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

 

3.3.5 ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ

 

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

 

  • ์›น ๋ธŒ๋ผ์šฐ์ €
  • ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ์„ธ์Šค : ์ฃผ์†Œ ํ‘œ์‹œ์ค„, ๋ถ๋งˆํฌ ๋ง‰๋Œ€, ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ, ์•ž์œผ๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ๋“ฑ์„ ๋‹ด๋‹นํ•˜๋ฉฐ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด๋‚˜ ํŒŒ์ผ ์ ‘๊ทผ ๊ฐ™์€ ๊ถŒํ•œ์„ ๋‹ด๋‹นํ•œ๋‹ค.
  • ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค : ์›น์‚ฌ์ดํŠธ๊ฐ€ ๋ณด์ด๋Š” ๋ชจ๋“ ๊ฒƒ์„ ์ œ์–ดํ•œ๋‹ค.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ํ”„๋กœ์„ธ์Šค : ์›น ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์–ดํ•œ๋‹ค.
  • GPU ํ”„๋กœ์„ธ์Šค : GPU๋ฅผ ์ด์šฉํ•ด์„œ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ์ œ์–ดํ•œ๋‹ค.
  • IPC(Inter Process Communication, ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ )

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

  • ํŒŒ์ผ
    ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ํŒŒ์ผ ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•˜๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ํ•œ๋‹ค.

  • ์†Œ์ผ“
    ๋™์ผํ•œ ์ปดํ“จํ„ฐ์˜ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ TCP์™€ UDP๊ฐ€ ์žˆ๋‹ค.

  • ์ต๋ช… ํŒŒ์ดํ”„(unamed pipe)
    ํ”„๋กœ์„ธ์Šค ๊ฐ„์— FIFO๋ฐฉ์‹์œผ๋กœ ์ฝํžˆ๋Š” ์ž„์‹œ ๊ณต๊ฐ„์ธ ํŒŒ์ดํ”„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ, ๋‹จ๋ฐฉํ–ฅ ๋ฐฉ์‹์˜ ์ฝ๊ธฐ ์ „์šฉ, ์“ฐ๊ธฐ ์ „์šฉ ํŒŒ์ดํ”„๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ์ด๋Š” ๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ฐ„์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์ƒ์—์„œ๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ช…๋ช…๋œ ํŒŒ์ดํ”„(named pipe)
    ํŒŒ์ดํ”„ ์„œ๋ฒ„์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ดํ”„ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ช…๋ช…๋œ ๋‹จ๋ฐฉํ–ฅ ๋˜๋Š” ์ด์ค‘ ํŒŒ์ดํ”„๋ฅผ ๋งํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ณ„๋„์˜ ํŒŒ์ดํ”„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ํŒŒ์ดํ”„๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํ“จํ„ฐ์˜ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ ๋˜๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์ƒ์˜ ์ปดํ“จํ„ฐ์™€๋„ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณดํ†ต์€ ์„œ๋ฒ„์šฉ ํŒŒ์ดํ”„์™€ ํด๋ผ์ด์–ธํŠธ์šฉ ํŒŒ์ดํ”„๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ž‘๋™ํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ด๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์‹ ํ•œ๋‹ค.

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


3.3.6 ์Šค๋ ˆ๋“œ์™€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

 

  • ์Šค๋ ˆ๋“œ
    ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋ฅผ ๋งํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
    ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ํž™์„ ๊ฐ๊ฐ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€๋Š” ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ๋Š” ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™์€ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ์„œ๋กœ ๊ณต์œ ํ•˜๋ฉฐ ๊ทธ ์™ธ์˜ ์˜์—ญ์€ ๊ฐ์ž ์ƒ์„ฑ๋œ๋‹ค.

  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ
    ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋ฉฐ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ์„œ๋กœ ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ์ด ๋†’๋‹ค. 

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

    ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์˜ ์˜ˆ๋กœ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ํ”„๋กœ์„ธ์Šค ๋‚ด์—๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ, ์›Œ์ปค ์Šค๋ ˆ๋“œ, ์ปดํฌ์ง€ํ„ฐ ์Šค๋ ˆ๋“œ, ๋ ˆ์Šคํ„ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.


3.3.7 ๊ณต์œ  ์ž์›๊ณผ ์ž„๊ณ„ ์˜์—ญ

 

  • ๊ณต์œ ์ž์›(shared resoursce)

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

    ์˜ˆ๋ฅผ ๋“ค์–ด ์ข…์‹ ์ฝ”์ธ์€ 100๊ฐœ์ธ๋ฐ ํ”„๋กœ์„ธ์Šค A์™€ ํ”„๋กœ์„ธ์Šค B๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜์—ฌ ํƒ€์ด๋ฐ์ด ์„œ๋กœ ๊ผฌ์—ฌ ์ •์ƒ ๊ฒฐ๊ด๊ดŽ์€ 300์ธ๋ฐ 200์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

  • ์ž„๊ณ„์˜์—ญ(critical section)

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

  • ์„ธ๋งˆํฌ์–ด(semaphore)
    ์ผ๋ฐ˜ํ™”๋œ ๋ฎคํ…์Šค๋กœ, ๊ฐ„๋‹จํ•œ ์ •์ˆ˜ ๊ฐ’๊ณผ ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜ wait(Pํ•จ์ˆ˜๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•จ) ๋ฐ signal(Vํ•จ์ˆ˜๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•จ)๋กœ ๊ณต์œ  ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    wait()๋Š” ์ž์‹ ์˜ ์ฐจ๋ก€๊ฐ€ ์˜ฌ ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ•จ์ˆ˜์ด๋ฉฐ, signal()์€ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋กœ ์ˆœ์„œ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

    ํ”„๋กœ์Šค์„ธ๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ wait() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์„ ํ•ด์ œํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ signal() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์„ธ๋งˆํฌ์–ด์—๋Š” ์กฐ๊ฑด ๋ณ€์ˆ˜๊ฐ€ ์—†๊ณ  ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋•Œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.

    * ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด
    0๊ณผ 1์˜ ๋‘ ๊ฐ€์ง€ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์„ธ๋งˆํฌ์–ด์ด๋‹ค. ๊ตฌํ˜„์˜ ์œ ์‚ฌ์„ฑ์œผ๋กœ ์ธํ•ด ๋ฎคํ…์Šค๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋ฎคํ…์Šค๋Š” ์ž ๊ธˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ˜ธ๋ฐฐ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” '์ž ๊ธˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜'์ด๊ณ , ์„ธ๋งˆํฌ์–ด๋Š” ์‹ ํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ˜ธ ๋ฐฐ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” '์‹ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜'์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์‹ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํœด๋Œ€ํฐ์—์„œ ๋…ธ๋ž˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€ ์นœ๊ตฌ๋กœ๋ถ€ํ„ฐ ์ „ํ™”๊ฐ€ ์˜ค๋ฉด ๋…ธ๋ž˜๊ฐ€ ์ค‘์ง€๋˜๊ณ  ํ†ตํ™” ์ฒ˜๋ฆฌ ์ž‘์—…์— ๊ด€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ์‹œ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค.

    * ์นด์šดํŒ… ์„ธ๋งˆํฌํ„ฐ
    ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์„ธ๋งˆํฌ์–ด์ด๋ฉฐ ์—ฌ๋Ÿฌ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

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


3.3.8 ๊ต์ฐฉ ์ƒํƒœ

 

๊ต์ฐฉ์ƒํƒœ(deadlock)๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์ค‘๋‹จ๋œ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค A๊ฐ€ ํ”„๋กœ์„ธ์Šค B์˜ ์–ด๋–ค ์ž์›์„ ์š”์ฒญํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค B๋„ A๊ฐ€ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

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

    * ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์ด ์ž์›์˜ ์–‘๊ณผ ํ˜„์žฌ ํ• ๋‹นํ•œ ์ž์›์˜ ์–‘์„ ๊ธฐ์ค€์œผ๋กœ ์•ˆ์ • ๋˜๋Š” ๋ถˆ์•ˆ์ • ์ƒํƒœ๋กœ ๋‚˜๋ˆ„๊ณ  ์•ˆ์ • ์ƒํƒœ๋กœ ๊ฐ€๋„๋ก ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 

  3. ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์ดํด์ด ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณด๊ณ  ์ด์— ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ ๊ฐœ์”ฉ ์ง€์šด๋‹ค.
  4. ๊ต์ฐฉ ์ƒํƒœ๋Š” ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์šฉ์ด ๋” ์ปค์„œ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์ข…๋ฃŒํ•œ๋‹ค.
    (ํ˜„๋Œ€ ์šด์˜์ฒด์ œ๊ฐ€ ํƒํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ค‘ '์‘๋‹ต์—†์Œ' ์ด ๋ฐ”๋กœ ์ด๋Ÿฐ ๊ฒฝ์šฐ์ด๋‹ค.)
๋ฐ˜์‘ํ˜•