[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐ŸŒท ์ฝ”๋‹ค์˜ Process vs Thread

Meustarยท2025๋…„ 12์›” 18์ผ

์ถœ์ฒ˜: https://www.youtube.com/watch?v=1grtWKqTn50

movie

์ถœ์ฒ˜: https://lilys.ai/digest/7296769/7862479/

๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

ํ•ญ๋ชฉํ”„๋กœ์„ธ์Šค์Šค๋ ˆ๋“œ
๊ฐœ๋…++ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ ๋ฌด์–ธ๊ฐ€๋กœ, ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง++++ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋‚˜๋‰˜์–ด์ง„ ํ•˜๋‚˜ ์ด์ƒ์˜ ์‹คํ–‰ ๋‹จ์œ„๋กœ, ์ž์›์„ ๊ณต์œ ํ•จ++
์ž์› ๊ณต์œ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ (์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™, ์Šคํƒ ๋ชจ๋‘ ๊ฐœ๋ณ„)์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™ ๊ณต์œ ; ์Šคํƒ๋งŒ ๊ฐœ๋ณ„
ํ†ต์‹ IPC (Inter-Process Communication) ํ•„์š”๊ณต์œ  ์ž์›์„ ํ†ตํ•ด ์ง์ ‘ ํ†ต์‹  ๊ฐ€๋Šฅ
์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ๋น„์šฉ์ด ํฌ๊ณ  ๋ฌด๊ฑฐ์›€๋น„์šฉ์ด ์ ๊ณ  ํšจ์œจ์ ์ž„
๋…๋ฆฝ์„ฑ๋†’์Œ (ํ•˜๋‚˜์˜ ๋ฌธ์ œ๊ฐ€ ์ „์ฒด์— ์˜ํ–ฅ ์ ์Œ)๋‚ฎ์Œ (ํ•˜๋‚˜์˜ ๋ฌธ์ œ๊ฐ€ ์ „์ฒด ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ ์ค„ ์ˆ˜ ์žˆ์Œ)

๋ชฉ์ฐจ

1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ๊ฐœ๋… ์ •๋ฆฝ ๋ฐ ์šฉ์–ด ์ •๋ฆฌ

  1. ๋ฉด์ ‘ ์ƒํ™ฉ ๊ฐ€์ • ๋ฐ ์ฃผ์˜ ์‚ฌํ•ญ ์ œ์‹œ
    1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ๋น„๊ต๋Š” ๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ์ด๋ฉฐ, ๋‹ต๋ณ€ ์‹œ ์šฉ์–ด ํ˜ผ๋™์— ๋น ์ง€๊ธฐ ์‰ฝ๋‹ค
    2. ์ฃผ์˜ํ•ด์•ผ ํ•  ์ƒํ™ฉ์€ ์šฉ์–ด์— ๋น ์ง€์ง€ ์•Š๊ณ  ๋‹จ์–ด๋“ค์„ ํ˜ผ๋™ํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค
    3. ํ”„๋กœ์„ธ์Šค ์„ค๋ช… ์‹œ ๋ฉ€ํ‹ฐ, ์ด๋ธŒ, ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ, ์ฝ”์–ด ๋“ฑ ๋น„์Šทํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋‹จ์–ด๋“ค์ด ๋งŽ์ด ๋“ฑ์žฅํ•œ๋‹ค
    4. '๋™์‹œ์—'๋ผ๋Š” ๊ฐœ๋…์ด ํ‰์†Œ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•œ์ˆœ๊ฐ„์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ๋„ ํ˜ผ๋ž€์Šค๋Ÿฌ์›€์„ ๊ฐ€์ค‘์‹œํ‚จ๋‹ค
  2. ๋ฐœํ‘œ๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ์šฉ์–ด ์ •์˜
    1. ์‹คํ–‰ ๋‹จ์œ„: ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ, 1 CPU ์ฝ”์–ด์— ํ•œ ์ˆœ๊ฐ„์— ํ•œ ๊ฐœ์”ฉ ์ ์žฌ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค
    2. ํ”„๋กœ์„ธ์Šค (๋ถ€์—ฐ ์„ค๋ช… ์—†์„ ์‹œ): ๋‹จ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๊ฐ€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์•„๋‹˜์„ ๊ฐ•์กฐํ•œ๋‹ค
    3. ๋™์‹œ์—/๋™์‹œ์„ฑ: ํ•œ ์ˆœ๊ฐ„์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ผ์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜๋˜๋ฉด์„œ ๋™์‹œ์— ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•œ๋‹ค

2. ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋Š” ๊ณผ์ • ๋ฐ ์‹คํ–‰ ์›๋ฆฌ

  1. ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ์ •์˜
    1. ํ”„๋กœ๊ทธ๋žจ์€ ํ”ผ์ž ๋ ˆ์‹œํ”ผ๊ฐ€ ์ ํžŒ ์ข…์ด์™€ ๊ฐ™์œผ๋ฉฐ, ์‹คํ–‰์‹œํ‚ค๊ธฐ ์ „์—๋Š” ์ฝ”๋“œ๊ฐ€ ๊ตฌํ˜„๋œ ํŒŒ์ผ์ผ ๋ฟ์ด๋‹ค
    2. ํ”„๋กœ์„ธ์Šค๋Š” ์ข…์ด ๋ ˆ์‹œํ”ผ๊ฐ€ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ํ”ผ์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋œ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค
  2. ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ผ (๋ฉ”๋ชจ๋ฆฌ ํ™•๋ณด ๋ฐ PCB ์ƒ์„ฑ)
    1. ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์žฌ๋ฃŒ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„๋‹ค
      1. ์‹คํ–‰ ๋ช…๋ น์„ ํฌํ•จํ•œ ์ฝ”๋“œ ์˜์—ญ
      2. ์Šคํƒœํ‹ฑ์ด๋‚˜ ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋ฅผ ๋‹ด๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ
      3. ๋™์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์œ„ํ•œ ํž™ ์˜์—ญ
      4. ์ง€์—ญ ๋ณ€์ˆ˜, ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋“ฑ์˜ ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ์Šคํƒ ์˜์—ญ์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•œ๋‹ค
    2. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” PCB(Process Control Block) ๋ธ”๋ก์ด ํ•จ๊ป˜ ๋งŒ๋“ค์–ด์ง„๋‹ค
      1. PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ(์ค€๋น„/๋Œ€๊ธฐ ์ƒํƒœ), ํ ๊ตฌํ˜„์„ ์œ„ํ•œ ํฌ์ธํ„ฐ, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ(Process State), ๊ณ ์œ ๋ฒˆํ˜ธ(PID), ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋“ฑ ๋งŽ์€ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค
  3. ๋‹ค์ˆ˜ ํ”„๋กœ์„ธ์Šค์˜ ๋™์‹œ ์‹คํ–‰ ์›๋ฆฌ (์‹œ๋ถ„ํ•  ๋ฐ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ)
    1. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค (์˜ˆ: ์œ ํŠœ๋ธŒ, ์ธํ…”๋ฆฌJ, ์Šฌ๋ž™, ํฌ๋กฌ, ์นด์นด์˜คํ†ก ๋™์‹œ ์‚ฌ์šฉ)
    2. ์›๋ž˜๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ƒํƒœ์— ์žˆ์„ ์ˆ˜ ์—†๋‹ค
    3. ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด, ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ๋ถ„ํ• (์งง์€ ํ…€)๋กœ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ „ํ™˜ ์‹คํ–‰์‹œํ‚จ๋‹ค
    4. ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ(Context Switching) ๊ณผ์ •:
      1. ํ”„๋กœ์„ธ์Šค 1์ด ์‹คํ–‰ ์ƒํƒœ์—์„œ ์ค€๋น„ ์ƒํƒœ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค
      2. ํ”„๋กœ์„ธ์Šค 2๊ฐ€ CPU์— ์ ์žฌ๋˜์–ด ์‹คํ–‰ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค
      3. ํ”„๋กœ์„ธ์Šค 2๊ฐ€ ๋‹ค์‹œ ์ค€๋น„ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๊ณ , ํ”„๋กœ์„ธ์Šค 1์ด CPU์— ์˜ฌ๋ผ์™€ ์‹คํ–‰๋œ๋‹ค
    5. ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ ๋‹จ 2๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์œผ๋กœ๋„ ๊ต‰์žฅํžˆ ํ”ผ๊ณคํ•˜๊ณ  ํž˜๋“  ์ž‘์—…์ด๋‹ค

3. ์Šค๋ ˆ๋“œ์˜ ๋“ฑ์žฅ๊ณผ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ ์ ˆ๊ฐ

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

4. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ๋น„๊ต ๋ฐ ์ฐจ์ด์ 

  1. ๋ฉ€ํ‹ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์ •์˜
    1. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋Š” ๋ชจ๋‘ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์ผ์ข…์ด๋ฉฐ, ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค
    2. ๋‹จ์ˆœํžˆ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ผœ ๋†“์€ ๊ฒƒ์„ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ์ •์˜ํ•˜๋ฉด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ๋น„๊ตํ•˜๊ธฐ ์–ด๋ ต๋‹ค
  2. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ ๋ฐฉ์‹
    1. ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋งค๋ฒˆ ํ•˜๋‚˜์˜ ๋กœ๊ทธ์ธ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๋™์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค (์˜ˆ: ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•˜๋Š” ์ƒํ™ฉ)
    2. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌํฌ(fork)๋ฅผ ํ•ด์„œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์–ด์„œ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค
    3. ์ด๋•Œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ์™€ ๋ณ„๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ™•๋ณดํ•˜๊ฒŒ ๋œ๋‹ค
  3. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹
    1. ์Šค๋ ˆ๋“œ๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๊ตฌ๋ถ„์ด ์ง€์–ด์ง„ ์‹คํ–‰ ๋‹จ์œ„์ด๋‹ค
    2. ๋งŒ์•ฝ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ํ•˜๋‚˜๋ฐ–์— ์—†๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค
    3. ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋กœ ๋‚˜๋ˆ„์–ด ์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๊ทธ๊ฒƒ์ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋œ๋‹ค
    4. ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ž‘์—… ๋‹จ์œ„๊ฐ€ ๋‚˜๋‰˜์–ด์งˆ ๋•Œ (์˜ˆ: ์ฝ”๋“œ ์ˆ˜์ •, ์ถ”์ฒœ ์ฝ”๋“œ ํ‘œ์‹œ, ํ…Œ์ŠคํŠธ ์‹คํ–‰, ์Šค์ฟผ๋“œ ์ „์†ก), ๊ฐ๊ฐ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ทธ ์ž‘์—…๋“ค์„ ๋‹ด๋‹นํ•œ๋‹ค
  4. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ์žฅ๋‹จ์  ๋น„๊ต
    1. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค:
      1. ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— IPC(Inter-Process Communication)๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํ†ต์‹ ํ•ด์•ผ ํ•œ๋‹ค (๋‘ ๋ช…์ด ๋‹ค๋ฅธ ํšŒ์˜์‹ค์—์„œ ๋…ผ์˜ํ•  ์ผ์ด ์ƒ๊ธฐ๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜์™€ ์ด์•ผ๊ธฐํ•ด์•ผ ํ•จ)
      2. ์ž์›์ด ์†Œ๋ชจ์ ์ด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ์ฐจ์ง€ํ•œ๋‹ค
      3. ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ์ด ํฌ๋‹ค
      4. ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋™๊ธฐํ™” ์ž‘์—…์— ์‹ ๊ฒฝ์„ ๋œ ์จ๋„ ๋œ๋‹ค
    2. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ:
      1. ๊ณต์œ  ์ž์›์ด ๋งŽ์œผ๋ฏ€๋กœ ๊ธด๋ฐ€ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค
      2. ๋™๊ธฐํ™”์— ์‹ ๊ฒฝ ์จ์•ผ ํ•œ๋‹ค
      3. ๊ณต์œ  ์ž์›์œผ๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํšจ์œจ์ ์ด๊ณ  ํ†ต์‹  ๋ณ‘๋ชฉ์ด ์ ˆ๊ฐ๋œ๋‹ค (๋‘ ๋ช…์ด ํ•œ ํšŒ์˜์‹ค์— ์•‰์•„ ๋ง๋งŒ ๊ฑธ๋ฉด ๋จ)
      4. ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜ ๋น„์šฉ์ด ์ ๋‹ค
  5. ์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€ (์ต์Šคํ”Œ๋กœ๋Ÿฌ vs ํฌ๋กฌ)
    1. ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ (๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ): ๊ธด๋ฐ€ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด ํ•œ ์Šค๋ ˆ๋“œ(1 ํƒญ)์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ „์ฒด ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์ด ๊ฐ„๋‹ค (์˜ค๋ฅ˜ ํ™”๋ฉด ๋ฐœ์ƒ ์‹œ ์ฐฝ ์ „์ฒด๊ฐ€ ๊ฑฐ๋œ ๋‚  ์ˆ˜ ์žˆ์Œ)
    2. ๊ตฌ๊ธ€ ํฌ๋กฌ (๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค): ๋‹ค์†Œ ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ ํƒญ ๊ฐ„์— ์˜ํ–ฅ์„ ๋œ ๋ฐ›๋Š”๋‹ค

4-1. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์˜ ํ†ต์‹  ๋ฐฉ์‹: IPC (Inter-Process Communication)

์ž๋ฃŒ์—์„œ๋Š” ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค(Multi-process)๊ฐ€ ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹ ์„ ์œ„ํ•ด ipc๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ipc๋Š” ๋…๋ฆฝ๋œ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ  ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.

  • IPC์˜ ์ •์˜์™€ ํ•„์š”์„ฑ:
    • IPC๋Š” Inter-Process Communication์˜ ์•ฝ์ž๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ฑฐ๋‚˜ ์ž‘์—…์„ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ†ต์‹  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…๋ฆฝ๋œ ๊ณต๊ฐ„(๋ฉ”๋ชจ๋ฆฌ)์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋งˆ์น˜ ์„œ๋กœ ๋‹ค๋ฅธ ํšŒ์˜์‹ค์— ์žˆ๋Š” ํŒ€์›๋“ค์ฒ˜๋Ÿผ ์ง์ ‘ ๋Œ€ํ™”ํ•  ์ˆ˜ ์—†์–ด ๋ณ„๋„์˜ ํ†ต์‹  ์ˆ˜๋‹จ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” IPC ํ†ต์‹  ๋ฐฉ์‹ (๋น„์œ ๋ฅผ ํ†ตํ•ด ์ดํ•ดํ•˜๊ธฐ):
    • IPC๋Š” ํฌ๊ฒŒ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹๊ณผ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.
IPC ๋ฐฉ์‹์„ค๋ช…์ƒํ™œ ์† ๋น„์œ 
๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ (Shared Memory)ํ”„๋กœ์„ธ์Šค๋“ค์ด ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜์—ฌ ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐฉ์‹. ๊ฐ€์žฅ ๋น ๋ฆ„.๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ™”์ดํŠธ๋ณด๋“œ์— ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ.
๋ฉ”์‹œ์ง€ ์ „๋‹ฌ (Message Passing)์šด์˜์ฒด์ œ์˜ ์ปค๋„์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ)๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹.์šฐ์ฒดํ†ต(๋ฉ”์‹œ์ง€ ํ)์ด๋‚˜ ์ „ํ™”(์†Œ์ผ“)๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ.
  • IPC์˜ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•:
    • ํŒŒ์ดํ”„(Pipe): ํ•œ์ชฝ์œผ๋กœ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ํ๋ฅด๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  ์ฑ„๋„ (์˜ˆ: ์ต๋ช… ํŒŒ์ดํ”„, ์ด๋ฆ„ ์žˆ๋Š” ํŒŒ์ดํ”„/FIFO).
    • ์†Œ์ผ“(Socket): ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ฐ™์€ ์ปดํ“จํ„ฐ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ ๊ฐ„์˜ ํ†ต์‹ ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”์‹œ์ง€ ํ(Message Queue): ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ ์— ๋ฉ”์‹œ์ง€๋ฅผ ๊บผ๋‚ด ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

5. ๋ฉ€ํ‹ฐ ์ฝ”์–ด์™€ ๋™์‹œ์„ฑ/๋ณ‘๋ ฌ์„ฑ์˜ ์ฐจ์ด

  1. ๋ฉ€ํ‹ฐ ์ฝ”์–ด์˜ ๊ด€์  (ํ•˜๋“œ์›จ์–ด)
    1. ๋ฉ€ํ‹ฐ ์ฝ”์–ด๋Š” ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค/๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šฐ๋ฉฐ, ์ด๋ฆ„๋„ ๋น„์Šทํ•˜๊ณ  ๋ฌด์–ธ๊ฐ€๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋А๋‚Œ์ด ๋“ ๋‹ค
    2. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค/๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๋ถ„์•ผ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋ผ๋ฉด, ๋ฉ€ํ‹ฐ ์ฝ”์–ด๋Š” ํ•˜๋“œ์›จ์–ด ์ธก๋ฉด์— ๊ฐ€๊น๋‹ค
  2. ๋™์‹œ์„ฑ(Concurrency)์˜ ๊ฐœ๋…
    1. ์‹ฑ๊ธ€ ์ฝ”์–ด๋ฅผ ๊ฐ€์ง„ CPU๊ฐ€ ์—ฌ๋Ÿฌ ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ, ๋น ๋ฅธ ํ…€์œผ๋กœ ์ „ํ™˜๋˜๋ฉด์„œ ์‹คํ–‰๋˜๋Š” ๊ฐœ๋…์ด ๋™์‹œ์„ฑ์ด๋‹ค
    2. ์—ฌ๋Ÿฌ ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ๋ฒˆ๊ฐˆ์•„ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋™์‹œ์— ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
    3. ๋™์‹œ์„ฑ์€ ์งง์€ ์ˆœ๊ฐ„์— CPU ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•ด์„œ ๋™์‹œ์— ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•œ๋‹ค
  3. ๋ณ‘๋ ฌ์„ฑ(Parallelism)์˜ ๊ฐœ๋…
    1. ๋ฉ€ํ‹ฐ ์ฝ”์–ด๋Š” ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค
    2. ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์ˆ˜์˜ ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ํ•œ ์ˆœ๊ฐ„์— ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค
    3. ํ•œ๊บผ๋ฒˆ์— ๋‘ ๊ฐœ์˜ ์ฝ”์–ด์—์„œ ๊ฐ๊ฐ ์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ๊ฐ™์ด ์ง„ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค
    4. ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์„œ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ๊ฐ™์ด ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค

6. ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ์˜ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ (๋ฒˆ์™ธ)

  1. ๋ฆฌ๋ˆ…์Šค์ปค๋„์˜ ๊ด€์ 
    1. "๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์ผํ•˜๊ฒŒ ๋ด…๋‹ˆ๋‹ค"๋ผ๋Š” ํ‘œํ˜„์€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ํ‘œํ˜„์ด๋‹ค
    2. ์ด ๋ฌธ์žฅ์€ "๋ฆฌ๋ˆ…์Šค์ปค๋„์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์ผํ•˜๊ฒŒ ๋ด…๋‹ˆ๋‹ค"๋กœ ๊ณ ์ณ์„œ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค
  2. ์Šค๋ ˆ๋“œ ๋ชจ๋ธ๊ณผ ๋ผ์ดํŠธ์›จ์ดํŠธ ํ”„๋กœ์„ธ์Šค
    1. ์Šค๋ ˆ๋“œ๋Š” ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์Šค๋ ˆ๋“œ๋กœ ๋‚˜๋‰œ๋‹ค (๊ฐ๊ฐ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ๊ณผ ์ปค๋„ ๋ ˆ๋ฒจ์—์„œ ๋‹ด๋‹น)
    2. ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์Šค๋ ˆ๋“œ ๊ฐ„์—๋Š” ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ชจ๋ธ(1๋Œ€1, ๋‹ค๋Œ€1, ๋‹ค๋Œ€๋‹ค)์ด ์žˆ๋‹ค
    3. ๋ฆฌ๋ˆ…์Šค๋Š” 1๋Œ€1 ๋ชจ๋ธ์„ ์ฑ„ํƒํ•˜๋ฉฐ, ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ๋‹น ์ปค๋„ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜ ๋งค์นญ๋œ๋‹ค
    4. ๋ฆฌ๋ˆ…์Šค์ปค๋„ ์ž…์žฅ์—์„œ๋Š” ๊ฐ๊ฐ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์ฒ˜๋Ÿผ ํ‘œํ˜„๋œ๋‹ค
    5. ์ด ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ด์ „์— ์†Œ๊ฐœ๋œ ํ”„๋กœ์„ธ์Šค์™€ ๋‹ฌ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ, ์ด๋ฅผ ๋ผ์ดํŠธ์›จ์ดํŠธ ํ”„๋กœ์„ธ์Šค(Lightweight Process, LWP)๋ผ๊ณ  ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ถ€๋ฅธ๋‹ค
  3. ID์˜ ๊ด€์  ์ฐจ์ด (PID, TGID, TID)
    1. ๋ฆฌ๋ˆ…์Šค์—์„œ ์ƒ์„ฑ๋œ ์Šค๋ ˆ๋“œ๋Š” ๋ชจ๋‘ ๊ฐ™์€ PID(ํ”„๋กœ์„ธ์Šค ๊ณ ์œ ๋ฒˆํ˜ธ)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
    2. ๋” ์ž์„ธํžˆ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด TGID(์Šค๋ ˆ๋“œ ๊ทธ๋ฃน ID)์™€ TID(์Šค๋ ˆ๋“œ ID)๊ฐ€ ์กด์žฌํ•œ๋‹ค
    3. ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ์—์„œ๋Š” TGID๊ฐ€ PID๋กœ ๋ณด์—ฌ์ง„๋‹ค
    4. ์ปค๋„ ๋ ˆ๋ฒจ์—์„œ๋Š” TID๊ฐ€ PID๋กœ ์ธ์‹๋œ๋‹ค
    5. ๊ด€์ ์„ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ ์ดํ•ดํ•ด์•ผ ํ•˜๋ฉฐ, ์ปค๋„ ์ž…์žฅ์—์„œ๋Š” ๊ฐ๊ฐ์ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๋ณด์ด๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค

6-1. ๋ฆฌ๋ˆ…์Šค์˜ ํŠน๋ณ„ํ•œ ์Šค๋ ˆ๋“œ ๊ตฌํ˜„: ๊ฒฝ๋Ÿ‰ ํ”„๋กœ์„ธ์Šค (LWP)

์ž๋ฃŒ์˜ ํ›„๋ฐ˜๋ถ€์—์„œ๋Š” "๋ฆฌ๋ˆ…์Šค์ปค๋„์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์ผํ•˜๊ฒŒ ๋ด…๋‹ˆ๋‹ค."๋ผ๋Š” ๋‹ค์†Œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๋ฌธ์žฅ์„ ์„ค๋ช…ํ•˜๋ฉฐ ๊ฒฝ๋Ÿ‰ ํ”„๋กœ์„ธ์Šค(Light-weight Process, LWP) ๊ฐœ๋…์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • LWP์˜ ์ •์˜:
    • LWP๋Š” Light-weight Process์˜ ์•ฝ์ž๋กœ, ์ปค๋„(์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ)์ด ์Šค์ผ€์ค„๋งํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ์ „ํ†ต์ ์ธ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ(Solaris ๋“ฑ)์—์„œ๋Š” ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์Šค๋ ˆ๋“œ ์‚ฌ์ด์— LWP๋ผ๋Š” ์ค‘๊ฐ„ ๊ณ„์ธต์ด ์กด์žฌํ–ˆ์ง€๋งŒ, ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ์ด ๊ฐœ๋…์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฆฌ๋ˆ…์Šค์ปค๋„์˜ ๊ด€์ :
    • ๋ฆฌ๋ˆ…์Šค์ปค๋„์€ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ , ๋ชจ๋‘ 'ํƒœ์Šคํฌ(Task)'๋ผ๋Š” ๋™์ผํ•œ ๊ตฌ์กฐ์ฒด๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋•Œ, ์Šค๋ ˆ๋“œ๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›(๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„, ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ ๋“ฑ)์„ ๊ณต์œ ํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์„ค์ •๋œ ํ”„๋กœ์„ธ์Šค๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ LWP์ž…๋‹ˆ๋‹ค.
    • ์ฆ‰, ๋ฆฌ๋ˆ…์Šค์ปค๋„ ์ž…์žฅ์—์„œ ๋ณด๋ฉด, ์ผ๋ฐ˜ ํ”„๋กœ์„ธ์Šค๋“  ์Šค๋ ˆ๋“œ๋“  ๋ชจ๋‘ ์Šค์ผ€์ค„๋ง ๋Œ€์ƒ์ธ LWP๋กœ ๋ณด์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • LWP์™€ ์Šค๋ ˆ๋“œ์˜ ๊ด€๊ณ„ (1:1 ๋ชจ๋ธ):
    • ๋ฆฌ๋ˆ…์Šค๋Š” 1:1 ์Šค๋ ˆ๋”ฉ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ(User Thread) ๋‹น ํ•˜๋‚˜์˜ ์ปค๋„ ์Šค๋ ˆ๋“œ(LWP)๊ฐ€ ์ •ํ™•ํžˆ ๋งค์นญ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ์—์„œ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ์ปค๋„์€ ์ด์— ๋Œ€์‘ํ•˜๋Š” LWP๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด LWP๊ฐ€ CPU์—์„œ ์‹คํ–‰๋˜๋Š” ๋‹จ์œ„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    • ์ด LWP๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ฐ˜์ ์ธ ๋…๋ฆฝ ํ”„๋กœ์„ธ์Šค(๊ฐ์ž ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง)์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฝ๋Ÿ‰ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฐ๊ฒฝ์ง€์‹์„ ํ†ตํ•ด, ์ž๋ฃŒ์—์„œ ์–ธ๊ธ‰๋œ ipc์˜ ํ•„์š”์„ฑ(๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค)๊ณผ LWP๋ฅผ ํ†ตํ•œ ๋ฆฌ๋ˆ…์Šค์ปค๋„์˜ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹(๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ)์„ ๋”์šฑ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7. ์ตœ์ข… ์š”์•ฝ

1. ํ•ต์‹ฌ ์ค‘์˜ ํ•ต์‹ฌ: ํ”„๋กœ์„ธ์Šค vs. ์Šค๋ ˆ๋“œ (๋…๋ฆฝ์„ฑ vs. ๊ณต์œ )

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‘ ๊ฐœ๋…์ด ์ž์›์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ๋Š”์ง€์— ๋Œ€ํ•œ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ฐจ์ด๊ฐ€ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ์žฅ๋‹จ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

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

์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ '๊ณต์œ 'ํ•จ์œผ๋กœ์จ ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2. ๋™์‹œ์„ฑ์˜ ๋น„๋ฐ€: ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ (Context Switching)

์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ๋กœ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์ด์œ , ์ฆ‰ ๋™์‹œ์„ฑ(Concurrency)์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๋ฐ”๋กœ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ž…๋‹ˆ๋‹ค.

  • ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด๋ž€?
    • CPU๊ฐ€ ํ•œ ์ˆœ๊ฐ„์— ํ•˜๋‚˜์˜ ์‹คํ–‰ ๋‹จ์œ„(ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ์Šค๋ ˆ๋“œ)๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋ ค๊ณ  ์งง์€ ํ…€์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
  • ์ž‘๋™ ๋ฐฉ์‹:
    • ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ(Context, PCB ๋ธ”๋ก ๋“ฑ)๋ฅผ ์ €์žฅํ•˜๊ณ , ๋‹ค์Œ์— ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์™€ CPU์— ์ ์žฌํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
  • ๋น„์šฉ ์ฐจ์ด:
    • ํ”„๋กœ์„ธ์Šค ์Šค์œ„์นญ์€ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ „์ฒด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์™€์•ผ ํ•˜๋ฏ€๋กœ ๋น„์šฉ์ด ํฌ๊ณ  ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค.
    • ์Šค๋ ˆ๋“œ ์Šค์œ„์นญ์€ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™ ์˜์—ญ์„ ๊ณต์œ ํ•˜๊ณ  ์Šคํƒ๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ์ด ํ›จ์”ฌ ์ ๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. ํ•˜๋“œ์›จ์–ด์˜ ์—ญํ• : ๋™์‹œ์„ฑ vs. ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ

์ด ๋‘ ๊ฐœ๋…์€ '๋™์‹œ์—'๋ผ๋Š” ๋‹จ์–ด ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฝ์ง€๋งŒ, ํ•˜๋“œ์›จ์–ด(CPU ์ฝ”์–ด)์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

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

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

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

0๊ฐœ์˜ ๋Œ“๊ธ€