[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ (1)

2021. 12. 19. 18:51ยท๐Ÿ“ Book/โœ Game Server

1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ

 

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

 

1. ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค

ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค

 

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋งํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น์–ด ๋ชจ์Œ์ด ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฝ”๋“œ(code)์™€ ๋ฐ์ดํ„ฐ(data)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์€ ๋””์Šคํฌ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์กด์žฌํ•œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ํ•œ ์ค„์”ฉ ์‹คํ–‰๋˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์€ ๋ญ”๊ฐ€ ํ™œ๋™์„ ํ•˜๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋กœ๋”ฉ๋œ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ, ํž™(heap), ์Šคํƒ(stack)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
    • ์Šคํƒ์—๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ•จ์ˆ˜๋“ค์˜ ํ˜ธ์ถœ ๊ธฐ๋ก๊ณผ ์‚ฌ์šฉ ์ค‘์ธ ๋กœ์ปฌ ๋ณ€์ˆ˜๋“ค์ด ๋“ค์–ด์žˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค๋Š” RAM ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ(multi-processing)์ด๋ผ ํ•œ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค์—๋Š” ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์žˆ์œผ๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ์ƒ๋Œ€๋ฐฉ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์—†๋‹ค.

 

2. ์Šค๋ ˆ๋“œ

์Šค๋ ˆ๋“œ ์—ญ์‹œ ํ”„๋กœ์„ธ์Šค์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ํ•œ ์ค„์”ฉ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค.

  • ํ•œ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋‹ค.
  • ํ•œ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์žˆ๋Š” ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์•ˆ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•œ๋‹ค.
  • ๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์Šคํƒ์„ ๊ฐ€์ง€๋Š”๋ฐ, ์ด๋Š” ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜๋“ค์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

์‹ฑ๊ธ€ ์Šค๋ ˆ๋”ฉ

 

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

 

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ

 

ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์ด๋ผ ํ•œ๋‹ค.

 

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋ ๊นŒ?

 

์ผ๋‹จ ํ˜ธ์ถœ ์Šคํƒ์„ ๋จผ์ € ์•Œ์•„์•ผ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”์ธ ํ•จ์ˆ˜๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ๋งŽ์€ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ๊ทธ ํ•จ์ˆ˜๋“ค์€ ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์„ ์‹คํ–‰ํ•œ๋‹ค. ํ•จ์ˆ˜๋Š” ์‹คํ–‰์ด ๋๋‚˜๋ฉด ์ž์‹ ์„ ํ˜ธ์ถœํ–ˆ๋˜ ์ง€์ ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š”๋ฐ, ์ด ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ ๊ณณ์„ ํ˜ธ์ถœ ์Šคํƒ์ด๋ผ ํ•˜๋ฉฐ ์•ˆ์—๋Š” ๊ฐ ํ•จ์ˆ˜ ์•ˆ์— ์„ ์–ธ๋œ ์ง€์—ญ ๋ณ€์ˆ˜๋„ ๊ฐ™์ด ๋“ค์–ด์žˆ๋‹ค.

 

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

 

ํ˜ธ์ถœ ์Šคํƒ

 

๋”ฐ๋ผ์„œ ๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋‹ค๋ฅธ ์‹คํ–‰ ์ง€์ ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœ ์Šคํƒ์„ ๋”ฐ๋กœ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

 

์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ๋˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ž‘๋™ํ•˜๋Š” ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ ๊ตฌํ˜„

 

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

 

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์Šค๋ ˆ๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๊ฐ–๋Š”๋‹ค.

 

์Šค๋ ˆ๋“œ ์ƒํƒœ

 

3. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์–ธ์ œ ํ•ด์•ผ ํ• ๊นŒ?

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋‚จ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์˜คํžˆ๋ ค ๋น„ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์กฐ๊ธˆ๋งŒ ์‹ค์ˆ˜ํ•ด๋„ ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋ฉฐ ์‹ฌ์ง€์–ด ์˜ค๋ฅ˜๋ฅผ ์ฐพ๊ธฐ ํž˜๋“ค ๋•Œ๋„ ๋งŽ๋‹ค.

 

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

 

4. ์Šค๋ ˆ๋“œ ์ •์ฒด

CPU๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ธฐ๊ธฐ๋ผ๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ?

 

์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์šด์˜์ฒด์ œ๋Š” ์Šค๋ ˆ๋“œ๋“ค์„ ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์‹คํ–‰ํ•œ๋‹ค.

๊ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋‹ค ๋ง๊ณ  ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋กœ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜(context switch)๋ผ ํ•œ๋‹ค.

  • CPU์™€ ์Šค๋ ˆ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์œผ๋ฉด ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜

 

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

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜ ํšŸ์ˆ˜๋ฅผ ์ตœ๋Œ€๋กœ ์ค„์ด๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?

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

 

๊ฒฐ๋ก ์ ์œผ๋กœ ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜ ์‹คํ–‰์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ๋žŒ ์ž…์žฅ์—์„œ ์พŒ์ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๊ธ‰์  ๊ธด ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

์ด ์‹œ๊ฐ„ ๋‹จ์œ„๋ฅผ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค(time slice)๋ผ๊ณ  ํ•œ๋‹ค. (์‚ฌ๋žŒ ์ž…์žฅ์—์„œ๋Š” ์งง์ง€๋งŒ, ์ปดํ“จํ„ฐ ์ž…์žฅ์—์„œ๋Š” ๊ธด ์‹œ๊ฐ„์ด๋‹ค.)

 

5. ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ์˜ ์‚ฌํ•ญ

์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ์‹คํ–‰๋œ๋‹ค. ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ์ผ์–ด๋‚˜๋ฉฐ ํ•œ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด๋ฅผ ๋‹ค ์‹คํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋ฅผ ํ•œ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•œ ๊ตฌ๋ฌธ์„ ์‹ค์ œ๋ก  ์—ฌ๋Ÿฌ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค.

์†Œ์Šค์˜ ํ•œ ์ค„ ๊ตฌ๋ฌธ ์•ˆ์— ์žˆ๋Š” ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋‹ค ๋ง๊ณ  ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋ฅผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์Šค๋ ˆ๋“œ 2๊ฐœ๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ณด์ž.

๋‘ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•œ ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์— ํŠน๋ณ„ํ•œ ์กฐ์น˜๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ๊ฐ’์€ ์–ด๋–ค ์ƒํƒœ๊ฐ€ ๋ ์ง€ ์•„๋ฌด๋„ ๋ชจ๋ฅด๊ฒŒ ๋œ๋‹ค.

 

์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ๊ทธ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ๊ฒฝ์Ÿ ์ƒํƒœ ํ˜น์€ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์Šค๋ผ ํ•œ๋‹ค.

  • ์›์ž์„ฑ(atomicity): ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•˜๊ณ  ์žˆ์„ ๋•Œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ฐ”๊พธ๋“ ์ง€, ์•„๋‹ˆ๋ฉด ํ•˜๋‚˜๋„ ๋ฐ”๊พธ์ง€ ์•Š๋“ ์ง€ ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ผ๊ด€์„ฑ(consistency): ๋ฐ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

 

์›์ž์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋™๊ธฐํ™”(synchronize)๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๋Œ€ํ‘œ์ ์œผ๋กœ ์ž„๊ณ„ ์˜์—ญ, ๋ฎคํ…์Šค(์ƒํ˜ธ ๋ฐฐ์ œ), ์ž ๊ธˆ(lock) ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Book/โœ Game Server' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (2)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ (3)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ (2)
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ (1)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”