DevLog

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ: ๊ณต์œ  ์ž์›๊ณผ ๋‹จ๋… ์ž์›์˜ ์ฐจ์ด ๋ณธ๋ฌธ

๐Ÿ’ป CS ์ •๋ฆฌ

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ: ๊ณต์œ  ์ž์›๊ณผ ๋‹จ๋… ์ž์›์˜ ์ฐจ์ด

Seungjae Lee 2025. 3. 12. 11:21

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ๊ณต์œ  ์ž์›๊ณผ ๋‹จ๋… ์ž์›์˜ ์ฐจ์ด

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ํšจ์œจ์ ์ธ ์ž‘์—… ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

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

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ๊ณต์œ  ์ž์›๊ณผ ๋‹จ๋… ์ž์›์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ž€?

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

2. ๊ณต์œ  ์ž์›๊ณผ ๋‹จ๋… ์ž์›์˜ ๊ฐœ๋…

๊ณต์œ  ์ž์› (Shared Resources)

๊ณต์œ  ์ž์›์€ ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์ž…๋‹ˆ๋‹ค.

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

๋‹จ๋… ์ž์› (Thread-specific Resources)

๋‹จ๋… ์ž์›์€ ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ณด์œ ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ž์›์œผ๋กœ, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์™€ ๊ณต์œ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

3. CPU ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋ฌธ๋งฅ ์ „ํ™˜

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

๋ฌธ๋งฅ ์ „ํ™˜ ๊ณผ์ •

  1. ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ์˜ CPU ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ์ €์žฅ(๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก).
  2. ๋‹ค์Œ ์‹คํ–‰ํ•  ์Šค๋ ˆ๋“œ์˜ ์ด์ „ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋ณต์›.
  3. ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์‹คํ–‰.

์ด ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ์ž์‹ ๋งŒ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


4. ๊ณต์œ  ์ž์› vs ๋‹จ๋… ์ž์›์˜ ๋น„๊ต

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

 


5. ๊ฒฐ๋ก 

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

์ด ๋‘ ๊ฐ€์ง€ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ๊ด€๋ฆฌํ•˜๋ฉด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ํ™˜๊ฒฝ์—์„œ ๋” ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Comments