๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

์šด์˜์ฒด์ œ ์Šคํ„ฐ๋”” ์งˆ๋ฌธ ์ •๋ฆฌ ๋ณธ๋ฌธ

Computer Science/์šด์˜์ฒด์ œ

์šด์˜์ฒด์ œ ์Šคํ„ฐ๋”” ์งˆ๋ฌธ ์ •๋ฆฌ

sehaan 2023. 12. 16. 23:28

๐Ÿ’ก ์šด์˜์ฒด์ œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

- ์šด์˜์ฒด์ œ๋ž€ ์œ ์ €์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์ปดํ“จํ„ฐ์˜ ์ž์›๋“ค์„ ๋Œ€์‹  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

- ์—ฌ๊ธฐ์„œ ์ž์›์€ ๋ฉ”๋ชจ๋ฆฌ , CPU ๊ทธ๋ฆฌ๊ณ  I/O ๋””๋ฐ”์ด์Šค๋“ค์ด ์žˆ๋‹ค.

- ์šด์˜์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์œ ์ €๋Š” ๋™์ž‘์›๋ฆฌ๋ฅผ ์•Œ์ง€ ๋ชปํ•ด๋„ PC๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

(ex. ์œˆ๋„์šฐ , ๋ฆฌ๋ˆ…์Šค , ์œ ๋‹‰์Šค)

๐Ÿ’ก ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

- ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์ž‘์—…์„ ํ• ๋‹น๋ฐ›๋Š” ์ž‘์—…์˜ ๋‹จ์œ„์ด๋ฉฐ , ์Šค๋ ˆ๋“œ๋Š” ๊ทธ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰์˜ ๋‹จ์œ„์ด๋‹ค.

- ํ”„๋ž˜์„ธ์Šค ๋‚ด์— ์Šค๋ ˆ๋“œ๋Š” ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์†Œ ํ•œ ๊ฐœ ์ด์ƒ์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค.

๐Ÿ’ก ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ์žฅ์  ๋ฐ ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

- ์Šค๋ ˆ๋“œ๋Š” ์„œ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ๊ฐ€๋ณ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

- ์ด๋Š” ํ†ต์‹  ๋น„์šฉ ๊ฐ์†Œ ๋ฐ ์‹œ์Šคํ…œ ์ž์›์˜ ํšจ์œจ์ ์ธ ์‚ฌ์šฉ์œผ๋กœ ์ด์–ด์ง„๋‹ค.

- ๋˜ํ•œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋ฅผ ๋น„์šฉ์ด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์— ๋น„ํ•ด ์ค„์–ด๋“ ๋‹ค.

 

- ํ•˜์ง€๋งŒ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ํŠน์„ฑ์€ ๊ณง ์—ฌ๋Ÿฌ ๋‹จ์ ์„ ๋‚ณ๋Š”๋‹ค.

- ๋Œ€ํ‘œ์ ์œผ๋กœ ๋™๊ธฐํ™”์˜ ๋ฌธ์ œ์ธ๋ฐ, ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•œ ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ์˜๋„์น˜ ์•Š์€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

- ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ ํ•˜๋‚˜๊ฐ€ ์ข…๋ฃŒ ๋˜๋ฉด ํ•ด๋‹น ์ž์›์„ ๊ณต์œ ํ•˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋“ค์—๊ฒŒ๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•œ๋‹ค.

- ๋”ฐ๋ผ์„œ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ•„์ˆ˜์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

- ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋งŒ์˜ ์žฅ์ ์€ ์ž์›์„ ์„œ๋กœ ๊ณต์œ ํ•จ์œผ๋กœ์จ ์Šค๋ ˆ๋“œ๊ฐ„ ํ†ต์‹  ๋น„์šฉ์ด ๊ฐ์†Œํ•˜๊ณ  ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์“ด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

- ๋”ฐ๋ผ์„œ ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฑฐ๋‚˜, ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.

 

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

๐Ÿ’ก ์Šค๋ ˆ๋“œ์— ์Šคํƒ์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ์ด์œ ?

- ์Šค๋ ˆ๋“œ์—๊ฒŒ ์ตœ์†Œํ•œ์˜ ๋…๋ฆฝ์ ์ธ ์‹คํ–‰์„ ๋ณด์žฅํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

- ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์Šคํƒ์„ ํ• ๋‹นํ•ด์คŒ์œผ๋กœ์จ ์ด๋ฅผ ๋ณด์žฅํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก PC๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ์ด์œ ?

- ์Šค๋ ˆ๋“œ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋Š” "๋งˆ์ง€๋ง‰ ์ƒํƒœ"๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- ์˜ˆ๋ฅผ ๋“ค์–ด ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ž‘ํ•˜๋‹ค๊ฐ€ ์Šค์ผ€์ค„๋ง์— ์˜ํ•ด CPU ์ ์œ ๊ถŒ์ด ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค๋ฉด ์Šค๋ ˆ๋“œ๋Š” ๋งˆ์ง€๋ง‰ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ๋œ๋‹ค.

- ์ด ์ƒํƒœ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์ด PC ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

๐Ÿ’ก ์ž๋ฐ” ์Šค๋ ˆ๋“œ๋ž€?

- ๊ธฐ์กด ์Šค๋ ˆ๋“œ ๊ฐœ๋…๊ณผ ๋™์ผํ•˜๊ฒŒ JVM ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๊ด€๋ฆฌ๋˜์–ด ์ง€๋Š” ์‹คํ–‰ ๋‹จ์œ„์ด๋‹ค. 

- ์ฒ˜์Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด main ํ•จ์ˆ˜์—์„œ ์Šค๋ ˆ๋“œ ํ•˜๋‚˜๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ, ํ•„์š”์— ๋”ฐ๋ผ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋‹จ ์ด ๊ฒฝ์šฐ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๐Ÿ’ก Thread-safe๊ฐ€ ๋ญ์—์š”?
- ๋ฉ€ํ‹ฐ ์Šค๋ ˆ์Šค ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์‹คํ–‰ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์„ "์Šค๋ ˆ๋“œ ์„ธ์ดํ”„" ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

- ์ฆ‰ ๋ ˆ์ด์Šค ์ปจ๋””์…˜ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™”๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

Mutual exclusion (์ƒํ˜ธ ๋ฐฐ์ œ)

- ๋ฝ์„ ์‚ฌ์šฉํ•ด ๊ณต์œ  ์ž์›์— ๋™์‹œ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

- ๋Œ€ํ‘œ์ ์œผ๋กœ ์Šคํ•€ ์˜คํ”„ , ๋ฎคํ…์Šค , ์„ธ๋งˆํฌ์–ด๊ฐ€ ์žˆ๋‹ค.

 

Atomic operation (์›์ž ์—ฐ์‚ฐ)

- ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์›์ž ์—ฐ์‚ฐ ํ˜น์€ ์›์ž์ ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค. 

*์›์ž์ ์ด๋ž€ ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๋˜์ง€ ์•„๋‹ˆ๋ฉด ๋ชจ๋‘ ์‹คํŒจํ•˜๋Š” ์ง€๋ฅผ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

Thread-local storage (์“ฐ๋ ˆ๋“œ ์ง€์—ญ ์ €์žฅ์†Œ)

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

- ์ „์—ญ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ์„ ๋ง‰์Œ์œผ๋กœ์จ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Re-entrancy (์žฌ์ง„์ž…์„ฑ)

- ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์‹คํ–‰๋˜๋”๋ผ๋„ ์‹คํ–‰ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

- ๋ชจ๋“  ์žฌ์ง„์ž… ํ•จ์ˆ˜๋Š” ์Šค๋ ˆ๋“œ-์•ˆ์ „ํ•˜์ง€๋งŒ, ๋ชจ๋“  ์Šค๋ ˆ๋“œ ํ•จ์ˆ˜๊ฐ€ ์žฌ์ง„์ž…์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

 

๐Ÿ’ก ์„ธ๋งˆํฌ์–ด์™€ ๋ฎคํ…์Šค๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

- ๋ฎคํ…์Šค๋Š” ๊ณต์œ  ์ž์›์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฝ์„ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ๋ฝ์€ ์Šฌ๋ฆฝ ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

- ์„ธ๋งˆํฌ์–ด๋Š” ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

- ์„ธ๋งˆํฌ์–ด์˜ ์ œํ•œ์„ 1๋กœ ๋‘ ์œผ๋กœ์จ ๋ฎคํ…์Šค ํ™˜๊ฒฝ์„ ์–ด๋Š์ •๋„ ๊ตฌํ˜„ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋ฎคํ…์Šค๋Š” ๋ฝ์„ ๊ฐ€์ง„ ์ž๋งŒ์ด ๋ฝ์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.