๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ 

๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์†๋„๋Š” ๋นจ๋ผ์ง€๋Š” ๋Œ€์‹  ๊ฐ€๊ฒฉ์€ ๋น„์‹ธ์ง„๋‹ค.

์†๋„๊ฐ€ ๋น ๋ฅธ ์บ์‹œ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ €์žฅํ•ด๋†“์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•˜๋Š” ์ด์œ ๊ฐ€ ๊ฒฝ์ œ์„ฑ ๋•Œ๋ฌธ์ด๋‹ค.

 

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

 

์บ์‹œ

 

์œ„์—์„œ ๋งํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์บ์‹œ๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์ž„์‹œ ์ €์žฅ์†Œ์ด์ž ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

์บ์‹œ๋ฅผ ํ†ตํ•ด CPU์˜ ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์†๋„์˜ ์ฐจ์ด๋ฅผ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ณ„์ธต์  ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๊ทธ๋žฌ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋˜ํ•œ ์บ์‹œ๋ฅผ ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ L1, L2 ์บ์‹œ๋Š” CPU ์ฝ”์–ด ๋‚ด๋ถ€์— ์œ„์น˜ํ•˜๋ฉฐ L3๋Š” CPU๊ฐ€ ์•„๋‹Œ ๋ฉ”์ธ๋ณด๋“œ์— ์œ„์น˜ํ•œ๋‹ค.

 

์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ

 

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์บ์‹œ ํžˆํŠธ๋ผ๊ณ  ํ•˜๊ณ  ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์บ์‹œ ๋ฏธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. ๋‹น์—ฐํžˆ ์บ์‹œ ํžˆํŠธ๊ฐ€ ๋งŽ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฑด๋ฐ, ์ ์ค‘๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

*์บ์‹œ ํžˆํŠธ๋Š” CPU ๋‚ด๋ถ€ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์บ์‹œ ๋ฏธ์Šค๋Š” ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๋‹น์—ฐํžˆ CPU ๋‚ด๋ถ€ ๋ฒ„์Šค๊ฐ€ ๋” ๋น ๋ฅด๋‹ค!)

 

์ง€์—ญ์„ฑ์€ ๋‘๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค.

List<Integer> list = new ArrayList<>();

for(int i=0;i<10;i++) {
	list.add(i);
}

 

 

์‹œ๊ฐ„ ์ง€์—ญ์„ฑ

- CPU๋Š” ์ตœ๊ทผ์— ์‚ฌ์šฉํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

- ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ ๋ณ€์ˆ˜ i์— ๋Œ€ํ•ด์„œ ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค.

 

์ฐธ์กฐ ์ง€์—ญ์„ฑ

- CPU๋Š” ์ตœ๊ทผ์— ์‚ฌ์šฉํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๊ทผ์ฒ˜๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

- ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ list ๊ณต๊ฐ„์— ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผํ•˜๊ณ  ์žˆ๋‹ค.

 

์บ์‹œ ๋งคํ•‘

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋งค์šฐ ์ž‘๊ณ  ์ฃผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ•˜๋Š๋ƒ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ๋˜ํ•œ CPU์—์„œ ์บ์‹œ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

 

์ง์ ‘ ๋งคํ•‘

- ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 1~100์ด ์žˆ๊ณ  ์บ์‹œ๊ฐ€ 1~10์ด ์žˆ๋‹ค๋ฉด 1:1~10 , 2: 11:~20 .. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

- ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์ถฉ๋Œ(์Šค์™€ํ•‘)์ด ์žฆ๋‹ค.

 

์—ฐ๊ด€ ๋งคํ•‘

- ์ˆœ์„œ์™€ ๋ธ”๋ก ์ƒ๊ด€์—†์ด ์ž์œ ๋กญ๊ฒŒ ๋งคํ•‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ถฉ๋Œ์€ ๋œ ์ผ์–ด๋‚˜์ง€๋งŒ ๋ชจ๋“  ๋ธ”๋ก์„ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค.

 

์ง‘ํ•ฉ ์—ฐ๊ด€ ๋งคํ•‘

- ์ง์ ‘ ๋งคํ•‘๊ณผ ์—ฐ๊ด€ ๋งคํ•‘์˜ ์ ˆ์ถฉ์•ˆ์ด๋‹ค.

- ์ •ํ•ด์ง„ ์žฅ์†Œ(์ง์ ‘ ๋งคํ•‘) ๋‚ด์— ์–ด๋Š ์žฅ์†Œ์—๋‚˜(์—ฐ๊ด€ ๋งคํ•‘) ๋งคํ•‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ง์ ‘ ๋งคํ•‘์— ๋น„ํ•ด ์ €์žฅ์ด ๋น ๋ฅด๊ณ  ์—ฐ๊ด€ ๋งคํ•‘๋ณด๋‹ค ๊ฒ€์ƒ‰์ด ๋น ๋ฅด๋‹ค. 

 

์บ์‹œ์™€ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ฐจ์ด

 

๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด์—์„œ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋ฉฐ, ์บ์‹œ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ๊ฐ„์˜ ์†๋„ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด๋ถ€์— ์œ„์น˜ํ•ด ์žˆ์œผ๋ฉฐ ์บ์‹œ๋Š” CPU์™€๋Š” ๋ณ„๋„๋กœ ์กด์žฌํ•œ๋‹ค. 

CISC๋ž€?

CISC(Complex Instruction Set Computer)๋ž€ ๋งŽ์€ ์ˆ˜์˜ ๋‹ค์–‘ํ•˜๊ณ  ์ค‘๋ณต๋˜๋Š” ๋ช…๋ น์–ด ์ง‘ํ•ฉ์ด๋‹ค.

*๋ช…๋ น์–ด ์ง‘ํ•ฉ:CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์˜ ๋ชจ์Œ

 

์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”(๊ณ ๊ธ‰ ์–ธ์–ด) ํ•˜๋‚˜์— ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ธฐ๊ณ„ ๋ช…๋ น์–ด๋ฅผ ๋Œ€์ž… ์‹œํ‚ด์œผ๋กœ์จ ๋ช…๋ น์–ด์ˆ˜๊ฐ€ ๋งŽ๊ณ  ๊ฐ€๋ณ€ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„๋‹ค.

๋ช…๋ น์–ด ์ˆ˜๊ฐ€ ๋งŽ๊ณ  ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์ˆ˜์˜ ๋ช…๋ น์–ด๋กœ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ด ์ ๋‹ค.)

CISC์˜ ๋ช…๋ น์ด์˜ ๊ธธ์ด๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ด์œ ๋Š” ๊ฐ๊ฐ์˜ ๋ช…๋ น์–ด๊ฐ€ ํ”„๋กœ์„ธ์‹ฑ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๋„ ๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ๋ช…๋ น์–ด์˜ ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ  ์‹ค์ œ๋กœ๋Š” ์“ฐ์ด๋Š” ๋ช…๋ น์–ด๋“ค๋งŒ ์ฃผ๋กœ ์“ฐ์ด๊ณ  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ดํ”„๋ผ์ด๋‹์ด ๋ถˆ๋ฆฌํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์€ ์ „๋ ฅ์„ ์†Œ๋ชจํ•œ๋‹ค.

 

ํŠน์ง•

1. ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด๋“ค์ด ์žˆ๋‹ค.

2. ์ƒ๋Œ€์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์†Œ๋น„ํ•œ๋‹ค.

4. ๊ฐ€๋ณ€ ๊ธธ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

5. ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ฐ ํ•˜๋‚˜ ์ด์ƒ์˜ ํด๋Ÿญ ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

6. ๋‹ค์–‘ํ•œ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

7. ์ปดํŒŒ์ผ ๊ณผ์ •์ด ์‰ฝ๊ณ  ํ˜ธํ•œ์„ฑ์ด ์ข‹๋‹ค.

 

๋‹จ์ 

1. ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ๊ฐ„์ด ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค๊ธฐ์— ๋ถˆ๋ฆฌํ•˜๋‹ค.

2. ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์€ ์ „๋ ฅ์„ ์†Œ๋น„ํ•œ๋‹ค.

 

RISC๋ž€?

RISC(Reduced Instruction Set Computer)๋ž€ ์ถ•์†Œ๋œ ๋ช…๋ น์–ด์˜ ์ง‘ํ•ฉ์ด๋‹ค.

CISC์™€๋Š” ์—ฌ๋Ÿฌ ์ฐจ์ด์ ์ด ์žˆ๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ช…๋ น์–ด์˜ ์ˆ˜๊ฐ€ 100๊ฐœ ๋ฏธ๋งŒ์œผ๋กœ ์ค„์–ด๋“ค์—ˆ๋‹ค. ์ธ์‹ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด์˜ ์ˆ˜๋ฅผ ์ค„์ž„์œผ๋กœ์จ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ ์‹œํ‚ค๋Š”๋ฐ ๋” ๋งŽ์€ ๋ช…๋ น์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

RISC๋Š” ์‹ ์†ํ•œ ํ”„๋กœ์„ธ์‹ฑ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœ์„ธ์‹ฑ์˜ ์ผํ™˜์œผ๋กœ์„œ ๊ณ ์ •๊ธธ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ,CISC์™€ ๋‹ฌ๋ฆฌ ํด๋Ÿญ ์ฃผ๊ธฐ๋‹น ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๋‹จ์ผ ์‚ฌ์ดํด์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•จ์œผ๋กœ์จ ๋ช…๋ น์–ด ์‹คํ–‰ ๊ณผ์ •์„ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

ํŠน์ง•

1. ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ load-store ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์ตœ์†Œํ™”ํ•˜์˜€๋‹ค.

2. ๋‹จ์ˆœํ•œ ๊ณ ์ • ๊ธธ์ด ๋ฐฉ์‹์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

3. ์ ์€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋‹จ์  

1. ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ตœ์ ํ™” ๊ณผ์ •์ด ๋ณต์žกํ•˜๋‹ค.

2. ๋ช…๋ น์–ด๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์–ด์„œ ์ฝ”๋“œ ํšจ์œจ์ด ๋‚ฎ๋‹ค.

3. ํŒŒ์ดํ”„๋ผ์ธ ํ•ด์ €๋“œ์— ๋Œ€ํ•œ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

๊ฒฐ๋ก 

๋‘˜ ๋‹ค ์žฅ๋‹จ์ ์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด์„œ ์–ด๋Š ์ชฝ์ด ์„ฑ๋Šฅ ๋ฉด์—์„œ ์šฐ์„ธํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜๋Š” ์—†๋‹ค. 

๋˜ํ•œ ์˜ค๋Š˜๋‚ ์˜ ๋ช‡๋ช‡ CISC MCU๋Š” RISC์˜ ์žฅ์ ์„ ์ผ ๋ถ€ ๊ณต์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ช‡๋ช‡ RISC MCU๋Š” CISC์˜ ์žฅ์  ์„ ์ผ๋ถ€ ๊ณต์œ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ž์˜ ์ƒํ™ฉ์— ๋งž๋Š” ์„ ํƒ์ด ํ•„์š”ํ•˜๋‹ค.

์ปค๋„์ด๋ž€?

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

 

๋˜ํ•œ ์ปค๋„์€ ์ž์›์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ด€๋ฆฌ์ž๋“ค์ด ์žˆ๋‹ค.

  1. ํ…Œ์ŠคํŠธ ๊ด€๋ฆฌ์ž : ๋ฌผ๋ฆฌ์  ์ž์›์ธ CPU๋ฅผ ์ถ”์ƒ ์ž์›์ธ ํ…Œ์Šคํฌ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  2. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž : ๋ฌผ๋ฆฌ์  ์ž์›์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”์ƒ ์ž์›์ธ ํŽ˜์ด์ง€๋‚˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  3. ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž : ๋ฌผ๋ฆฌ์  ์ž์›์ธ ๋””์Šคํฌ๋ฅผ ์ถ”์ƒ ์ž์›์ธ ํŒŒ์ผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  4. ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž : ๋ฌผ๋ฆฌ์  ์ž์›์ธ ๋„คํŠธ์›Œํฌ ์žฅ์น˜๋ฅผ ์ถ”์ƒ ์ž์›์ธ ์†Œ์ผ“์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  5. ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ฆฌ์ž : ๊ฐ์ข… ์™ธ๋ถ€ ์žฅ์น˜(ํ”„๋ฆฐํ„ฐ, GPU ๋“ฑ)์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ๊ณตํ•œ๋‹ค.

 

์ปค๋„์˜ ๋™์ž‘ ๋ฐฉ์‹

์ปค๋„์€ Memory Resident ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ๋””์Šคํฌ์— ์ƒ์ฃผํ•ด์žˆ๋Š”๋ฐ, ์ปค๋„์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ ๋ช…๋ น๋“ค์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

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

 

์‰˜์˜ ์—ญํ• 

ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์–ธ์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜๊ณ  ํ•ด์ œ๋˜๋Š”์ง€ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋ฉฐ ์ปค๋„์˜ ์ค‘๊ฐ„๋‹ค๋ฆฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

์ถœ์ฒ˜ :&nbsp;https://medium.com/pocs/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%BB%A4%EB%84%90-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B0%95%EC%9D%98%EB%85%B8%ED%8A%B8-1-d36d6c961566

 

์ผ๋ฐ˜์ ์œผ๋กœ ์šด์˜์ฒด์ œ๊ฐ€ ๋ถ€ํŒ…๋˜๋ฉด Memory Residentํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€๋Š” ์ปค๋„์ด ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ๋‹ค.

๊ทธ ํ›„ ์œ ์ €๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜๋ฉด ์‰˜์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜ค๊ณ  ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์ปค๋งจ๋“œ์— ๋งž๋Š” ์žก(job)์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค.

์ด๋Ÿฐ ๊ณผ์ •์œผ๋กœ ์œ ์ €๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋‚ด๋ถ€์ ์ธ ๊ตฌ์กฐ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์€ ์‹ ๊ฒฝ์จ์•ผ ํ•  ์ ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ๋ฐ”๋กœ ๋ฉ€ํ‹ฐ์œ ์ € ์‹œ์Šคํ…œ์ด๋ผ๋Š” ์ ์ด๋‹ค.

์œˆ๋„์šฐ๋Š” ๊ฐœ์ธpc์šฉ ์šด์˜์ฒด์ œ์—ฌ์„œ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ๋ฆฌ๋ˆ…์Šค์— ๋น„ํ•ด ์ ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค๋Š” ๋ณด์•ˆ์„ ํŠน๋ณ„ํžˆ ๋” ์‹ ๊ฒฝ์จ์•ผํ•œ๋‹ค.

๋งŒ์•ฝ ์œ ์ €A๊ฐ€ ์œ ์ €B์˜ ํŒŒ์ผ์— ๋ง˜๋Œ€๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ์ด๋Š” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ๋Š” ์ปค๋„๋ชจ๋“œ์™€ ์œ ์ €๋ชจ๋“œ๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ์ž…์ถœ๋ ฅ ์ž‘์—… ๊ฐ™์ด ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ์ผ๋“ค์€ ์ปค๋„์—์„œ ๋‹ด๋‹นํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

์ด๋•Œ ์ปค๋„์—๊ฒŒ ํ•ด๋‹น ์ž‘์—…์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์„ ์‹œ์Šคํ…œ ์ฝœ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์œ ์ € ๋ชจ๋“œ์—์„œ ์‹œ์Šคํ…œ ์ฝœ์ด๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•œ๋‹ค.

 

์‹œ์Šคํ…œ ์ฝœ์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ๋“ค์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ ๊ด€๋ จ ์ฒ˜๋ฆฌ

ํŒŒ์ผ I/O ๊ด€๋ จ ์ฒ˜๋ฆฌ

์†Œ์ผ“ ๊ด€๋ จ ์ฒ˜๋ฆฌ

๋””๋ฐ”์ด์Šค ๊ด€๋ จ ์ฒ˜๋ฆฌ

ํ”„๋กœ์„ธ์Šค ํ†ต์‹  ๊ด€๋ จ ์ฒ˜๋ฆฌ

 

๋ฌผ๋ก  ๋ชจ๋“  ์ปค๋งจ๋“œ์— ๋Œ€ํ•ด์„œ ์‹œ์Šคํ…œ ์ฝœ์ด ์ปค๋„๋กœ ๋ช…๋ น์„ ์ „๋‹ฌํ•ด์ฃผ๋ฉด ์ด๋Š” ๋ฌด์šฉ์ง€๋ฌผ์ผ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ํ•ด๋‹น ๋ช…๋ น์ด ์ ํ•ฉํ•œ ๋ช…๋ น์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋น„ํŠธ๋ฅผ CPU์— ๋‘๋Š”๋ฐ, ์ด๋ฅผ mode bit๋ผ๊ณ  ํ•œ๋‹ค. 1์ด๋ฉด ์ปค๋„๋ชจ๋“œ 0์ด๋ฉด ์œ ์ €๋ชจ๋“œ๋ผ๊ณ  ์•Œ๋ ค์ ธ์žˆ๋‹ค.

์ปค๋„๋ชจ๋“œ์—์„œ๋Š” ๋ชจ๋“  ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ๋ฐ ์ด๋•Œ I/O ๊ฐ™์€ ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹œ์Šคํ…œ ์ฝœ์˜ ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ํ•ด๋‹น ์ž‘์—…์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ ์œ ์ €๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค. ์ด ์ž‘์—…์ด ํ•œ๋ฒˆ๋งŒ ์ง„ํ–‰๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด์„œ ์ˆ˜์—†์ด ์ปค๋„๋ชจ๋“œ์™€ ์œ ์ €๋ชจ๋“œ๋ฅผ ์™”๋‹ค๊ฐ”๋‹คํ•œ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ๋ž€

์•ž์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ์ด ๋•Œ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋ฌด์—‡์ด๊ณ  ์™œ ๋ฐœ์ƒํ• ๊นŒ? 

์ธํ„ฐ๋ŸฝํŠธ๋Š” ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ด๋ฒคํŠธ ํ˜น์€ ๊ทธ๋Ÿฐ ์ด๋ฒคํŠธ๋“ค์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ๋“ค์ด ๋ฐœ์ƒํ•˜๋ฉด CPU์—์„œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•œ๋‹ค.

ํ•˜๋“œ์›จ์–ด ํ˜น์€ ํ”„๋กœ๊ทธ๋žจ์ด ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์— ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์„ธํŒ…ํ•˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋•Œ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•ด์„œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ

์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(ํ•ธ๋“ค๋Ÿฌ)์˜ ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”

์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด

์‹ค์ œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฃจํ‹ด

 

์ฐธ๊ณ ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋ ˆ๋ฒจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํŠธ๋žฉ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ณด๋‹ค ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.

 

์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ

์ „์›์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ

I/O ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ

ํƒ€์ด๋จธ ์‹œ๊ฐ„์ด ๋๋‚ฌ์„ ๋•Œ

 

๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ

0์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ

์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ ‘๊ทผ์„ ์‹œ๋„ํ•  ๋•Œ

 

์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ

ํ”„๋กœ๊ทธ๋žจ ์ฒ˜๋ฆฌ ์ค‘ ๋ช…๋ น์˜ ์š”์ฒญ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ SVC์— ์˜ํ•œ call์ด ์žˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„๋‹ค.

  1. ์ „์› ์ด์ƒ(Power fail)
  2. ๊ธฐ๊ณ„ ์ฐฉ์˜ค(Machine Check)
  3. ์™ธ๋ถ€ ์‹ ํ˜ธ(External)
  4. ์ž…์ถœ๋ ฅ(I/O)
  5. ๋ช…๋ น์–ด ์ž˜๋ชป
  6. ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์‚ฌ(Program Check)
  7. SVC(SuperVisor Call)

 

์‹œ์Šคํ…œ ์ฝœ & ์ธํ„ฐ๋ŸฝํŠธ์˜ ๋™์ž‘ ๊ณผ์ •(์˜ˆ์‹œ)

์‹ฑ๊ธ€ ์ฝ”์–ด ํ™˜๊ฒฝ์—์„œ ์“ฐ๋ ˆ๋“œ1(t1)๊ณผ ์“ฐ๋ ˆ๋“œ2(t2)๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž

 

t1์—์„œ file read ์š”์ฒญ์ด ๋“ค์–ด์™”๋‹ค.

์ด๋•Œ file read์— ํ•ด๋‹นํ•˜๋Š” ์‹œ์Šคํ…œ ์ฝœ์ด ํ˜ธ์ถœ๋˜๋ฉฐ ๊ธฐ์กด t1์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•œ๋‹ค.

์ปค๋„๋ชจ๋“œ์— ์ง„์ž…ํ•œ t1์€ ํ•ด๋‹น file์ด read ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋ ๋•Œ๊นŒ์ง€ waiting ํ•˜๊ฒŒ ๋˜๋ฉฐ ๋‹ค์‹œ ์œ ์ € ๋ชจ๋“œ๋กœ ์ง„์ž… ํ›„ t2๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค.

 

t1์—์„œ ์š”์ฒญํ•œ file์ด read ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค.

์ด๋•Œ๋Š” ์•„๊นŒ์™€ ๋‹ค๋ฅด๊ฒŒ ์‹œ์Šคํ…œ ์ฝœ์ด ์•„๋‹Œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. ๋‹ค์‹œ CPU๋Š” t2์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  t1์„ waiting์—์„œ ready(runnable)๋กœ ์ƒํƒœ๋ฅผ ๋ฐ”๊พผ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ ์ €๋ชจ๋“œ๋กœ ์ง„์ž… ํ›„์— t2๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

๋ชจ์ข…์˜ ์ด์œ ๋กœ t2์˜ CPU ์ ์œ ๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ์ผ์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.

CPU๋Š” ๋‹ค์‹œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž… ํ›„์— t2๋ฅผ ready ์ƒํƒœ๋กœ ๋ฐ”๊พผ๋‹ค. ์ด์ œ๋Š” t1์„ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋ฐ”๊พธ๊ณ  ์ž‘์—…๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” ์ง์ ‘์ ์œผ๋กœ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•  ์ผ์ด ์—†๋Š”๋ฐ ์ด๋Š” ํ•˜์ด(high) ๋ ˆ๋ฒจ ์–ธ์–ด๊ฐ€ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ž˜ํ•‘(wrapping)์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์Šค๋ ˆ๋“œ๋ฅผ start ํ•  ๋•Œ native ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ JNI(Java Native Interface)๊ฐ€ ํ•ด๋‹น ์šด์˜์ฒด์ œ์— ๋งž๋Š” ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•ด์ค€๋‹ค.

private native void start0();

 

 

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ž€?

ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ํ•˜๋Š”๋ฐ, ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆฌ๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ํ„ฑ ์—†์ด ๋ถ€์กฑํ•˜๋‹ค. ์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ž์›๋“ค์„ ์ถ”์ƒํ™”ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ผ๊นŒ?

 

CPU๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋…ผ๋ฆฌ ์ฃผ์†Œ(logical memory)๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค.

์ด๋•Œ ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์ง€ ์—†๋Š” ์ง€ ์ƒ๊ด€์—†์ด, ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹นํ•˜์—ฌ์ค€๋‹ค. 

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด CPU ์ž…์žฅ์—์„œ๋Š” "๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋„ค?" ๋ผ๋Š” ์ฐฉ๊ฐ์„ ํ•˜๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ถ”์ƒํ™”๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

(์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์—†๋“  CPU ์ž…์žฅ์—์„  ์•Œ ํ•„์š” ์—†๋‹ค.)

 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ต์‹ฌ์€ ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ธฐ์กด์—๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ์˜ฌ๋ ค์•ผํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๊ฒฝ์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์Šค์™‘(swap) ์š”์ฒญ์ด ๋ฐ˜๋ณต๋œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ์˜ ๋น„ํšจ์œจ์„ฑ์„ ์ดˆ๋ž˜ํ–ˆ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋Š” ์š”๊ตฌํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„๊ณ  ๊ผญ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋“ค๋งŒ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ ธ์˜จ๋‹ค.

 

์š”๊ตฌ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์ด๋ž€

 

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

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

 

์ถœ์ฒ˜ :&nbsp;https://velog.io/@chappi/OS%EB%8A%94-%ED%95%A0%EA%BB%80%EB%8D%B0-%ED%95%B5%EC%8B%AC%EB%A7%8C-%ED%95%A9%EB%8B%88%EB%8B%A4.-16%ED%8E%B8-Demand-Paging%EC%9A%94%EA%B5%AC-%ED%8E%98%EC%9D%B4%EC%A7%95-locality%EC%A7%80%EC%97%AD%EC%84%B1

 

 

๋งŒ์•ฝ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ 4๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ–ˆ๋Š”๋ฐ page fault๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด์ž.

ํ˜„์žฌ 4๋ฒˆ ํŽ˜์ด์ง€์˜ ์œ ํšจ๋น„ํŠธ๋Š” 1(invalid)์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์Šค์™‘ ์˜์—ญ์—์„œ ๊ฐ€์ ธ์™€์•ผํ•˜๋Š”๋ฐ ์ด๋•Œ ์Šค์™€ํ•‘์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ผ๋‹จ, ์ž„์˜๋กœ 4๋ฒˆ์— ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ ์˜์—ญ์œผ๋กœ ๋ฐฉ์ถœ(์Šค์™‘ ์•„์›ƒ)ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์œ ํšจ๋น„ํŠธ๋Š” 1์—์„œ 0์ด ๋˜๊ณ  ์Šค์™‘ ์˜์—ญ ๋‚ด์˜ ์ฃผ์†Œ(6)๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

๊ทธ ๋‹ค์Œ ์Šค์™‘ ์˜์—ญ์˜ 1๋ฒˆ์— ํ•ด๋‹นํ•˜๋Š” ํ”„๋กœ์„ธ์Šค(E)๊ฐ€ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์˜ 3๋ฒˆ ํ”„๋ ˆ์ž„์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๊ณ  ์œ ํšจ ๋น„ํŠธ๋Š” 1์—์„œ 0์œผ๋กœ ๋ฐ”๋€๋‹ค.

 

์ถœ์ฒ˜ :&nbsp;https://velog.io/@chappi/OS%EB%8A%94-%ED%95%A0%EA%BB%80%EB%8D%B0-%ED%95%B5%EC%8B%AC%EB%A7%8C-%ED%95%A9%EB%8B%88%EB%8B%A4.-16%ED%8E%B8-Demand-Paging%EC%9A%94%EA%B5%AC-%ED%8E%98%EC%9D%B4%EC%A7%95-locality%EC%A7%80%EC%97%AD%EC%84%B1

 

์ด์ฒ˜๋Ÿผ ์œ ํšจ๋น„ํŠธ๊ฐ€ 1(๋ฉ”๋ชจ๋ฆฌ์— ์—†์Œ)์ผ๋•Œ๋Š” ์ฃผ์†Œ ํ•„๋“œ์— ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  0(๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์Œ)์ผ๋•Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์˜ˆ์‹œ์—์„œ๋Š” ์ž„์˜๋กœ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ์ถœํ–ˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๊ฝ‰ ์ฐผ์„ ๊ฒฝ์šฐ ์ง€์—ญ์„ฑ์„ ๊ณ ๋ คํ•ด์„œ ํŽ˜์ด์ง• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•œ๋‹ค.

 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋™์ž‘ ๋ฐฉ์‹

ํ•„์š”์„ฑ์„ ์•Œ์•˜๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๋ฐฉ์‹์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ ํ•œ๋‹ค.

 

๋จผ์ € ์ฒ˜์Œ์—๋Š” CPU๊ฐ€ ํ”„๋กœ์„ธ์Šค ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

์ด๋•Œ ๋ฐ”๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์บ์‹ฑ ๊ณ„์ธต์ธ TLB๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค. -> ์—ฌ๊ธฐ์—๋„ ์—†์œผ๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ ๊ฐ„๋‹ค.

 

 

ํ•˜์ง€๋งŒ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ž์ฒด์— ์ ์ œ๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ํŽ˜์ด์ง€ ํดํŠธ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ํ”„๋กœ์„ธ์Šค๋งˆ์ € ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ํ˜„์ƒ์€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. 

 

์ค‘์š”ํ•œ ๊ฒƒ์€ ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ์ผ์–ด๋‚œ ๋‹ค์Œ์ธ๋ฐ, ๋ฐ”๋กœ ์Šค์™€ํ•‘์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ํดํŠธ๋ฅผ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์Šค์™€ํ•‘์ด๋ž€ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ”๋กœ ๋””์Šคํฌ์˜ ์Šค์™‘ ์˜์—ญ์—์„œ ๊ฐ€์ ธ์˜ด์œผ๋กœ์จ ๋นจ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์Šค์™€ํ•‘์ด ์ž์ฃผ ์ผ์–ด๋‚œ๋‹ค๋Š” ๊ฒƒ์€ ์ข‹์€ ํ˜„์ƒ์ด ์•„๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ๊ฐ€ *์Šค๋ ˆ์‹ฑ์ด๋‹ค.

์Šค์™€ํ•‘์ด ๋™์‹œ ๋‹ค๋ฐœ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฉด CPU ์ฒ˜๋ฆฌ์˜ ๊ณต๋ฐฑ์ด ๋ฐœ์ƒํ•œ๋‹ค.

๊ทผ๋ฐ ์šด์˜์ฒด์ œ๋Š” ์ด๋ฅผ CPU๊ฐ€ ๋†€๊ณ ์žˆ๋‹ค๊ณ  ์ธ์‹ํ•˜๊ณ  ๋” ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์•…์ˆœํ™˜์˜ ๋ฐ˜๋ณต์œผ๋กœ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ๋œ๋‹ค.

 

์Šค๋ ˆ์‹ฑ : ํŽ˜์ด์ง€ ๋ถ€์žฌ์œจ(Page fault)์ด ์ฆ๊ฐ€ํ•˜์—ฌ CPU ์ด์šฉ์œจ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋–จ์–ด์ง€๋Š” ํ˜„์ƒ

 

์Šค๋ ˆ์‹ฑ ํ˜„์ƒ์˜ ๋Œ€ํ‘œ์ ์ธ ํ•ด๊ฒฐ๋ฒ•์œผ๋กœ๋Š” PFF(page fault frequency)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ํดํŠธ์˜ ์ƒํ•œ์„ ๊ณผ ํ•˜ํ•œ์„ ์„ ์ •ํ•ด์คŒ์œผ๋กœ์จ ์ตœ์†Œํ•œ์˜ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ํ• ๋‹น์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ์žˆ๋‹ค.

์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ํดํŠธ ๋นˆ๋„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ์ƒํ•œ์„ ๋ณด๋‹ค ๋†’์œผ๋ฉด ๋” ๋งŽ์€ ํ”„๋ ˆ์ž„์„ ํ• ๋‹นํ•ด์ฃผ๊ณ  ๋‚ฎ์œผ๋ฉด ํ• ๋‹นํ•œ ํ”„๋ ˆ์ž„์„ ํšŒ์ˆ˜ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

์•„๋‹ˆ๋ฉด ์ž‘์—… ์ง‘ํ•ฉ ๋ชจ๋ธ(Working Set)์„ ๋งŒ๋“ค์–ด์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€๋“ค์„ ์ง‘ํ•ฉ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ์ตœ๊ทผ์— ์ฐธ์กฐ๋œ ํ”„๋ ˆ์ž„๋“ค์ด ์ดํ›„์—๋„ ๋˜ ์ฐธ์กฐ๋  ๊ฒƒ์ด๋ผ๋Š” ์ง€์—ญ์„ฑ์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค.

 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์žฅ๋‹จ์ 

์žฅ์ 

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด์—๋Š” ํ”„๋กœ์„ธ์Šค ์ „์ฒด๊ฐ€ ์˜ฌ๋ผ์™€์•ผ ํ–ˆ๋‹ค๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๊ผญ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ๋žจ+์Šค์™‘ ์˜์—ญ์„ ํ†ตํ•ด ๋น„๊ต์  ๋„“์€ ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์ถฉ๋Œ ์œ„ํ—˜์ด ์ ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๋น„๊ต์  ๋‹จ์ˆœํ•ด์ง„๋‹ค.

 

๋‹จ์ 

ํŽ˜์ด์ง€ ํดํŠธ ํ˜„์ƒ์ด ๋นˆ๋ฒˆํ•  ์‹œ ์Šค๋ ˆ์‹ฑ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ ์ด๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ex) ํŽ˜์ด์ง• ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

๊ฒฐ๋ก 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ผญ ํ•„์š”ํ•œ ํ”„๋กœ์„ธ์Šค๋“ค๋งŒ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํšจ๊ณผ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

CPU ์ž…์žฅ์—์„œ๋Š” ์ด๋Ÿฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ž์œ ๋กญ๊ฒŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ณ  ๋งŒ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋”๋ผ๋„ ์Šค์™‘์„ ํ†ตํ•ด ๋ฐ”๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์žฆ์€ ํŽ˜์ด์ง€ ํดํŠธ๋กœ ์ธํ•œ ์Šค๋ ˆ์‹ฑ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ๋‚ด๋ฆด ์ง€์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ํŽ˜์ด์ง• ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•˜๋‹ค.

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด๋ž€

ํ”„๋กœ์„ธ์Šค์— ์—ฐ์†์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งค ์‹œ์  ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ์— ๋งž๊ฒŒ ๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์˜ ์ข…๋ฅ˜๋กœ๋Š” ๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹๊ณผ ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹์ด ์žˆ๋‹ค.

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์˜ ์›๋ฆฌ

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ถ„ํ• ๋กœ ๋‚˜๋ˆ„์–ด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋“ค์„ ํ• ๋‹นํ•  ๋•Œ ์ ์žฌ๋  ๊ณต๊ฐ„์„ ์ฐพ์•„์•ผํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•์ด ๋Œ€ํ‘œ์ ์œผ๋กœ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 
์ตœ์ดˆ ์ ํ•ฉ
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•˜๋‹ค๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„(hole)์ด ๋‚˜์˜ค๋ฉด ๊ทธ ์ž๋ฆฌ์— ๋ฐ”๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
 
์ตœ์  ์ ํ•ฉ
๋นˆ ์ž๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด ์ ์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
 
์ตœ์•… ์ ํ•ฉ
์ดค์  ์ ํ•ฉ๊ณผ๋Š” ๋ฐ˜๋Œ€๋กœ ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
 

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์œผ๋กœ ์ธํ•œ ๋ฌธ์ œ์ 

๊ทผ๋ฐ ๋ฌธ์ œ๋Š” ์œ„์ฒ˜๋Ÿผ ๋นˆ ๊ณต๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ ‡๊ฒŒ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.
๊ทธ ์ด์œ ๋Š” ์™ธ๋ถ€ ๋‹จํŽธํ™”, ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋•Œ๋ฌธ์ธ๋ฐ ๋‘ ๊ฐœ์˜ ๋ฌธ์ œ๊ฐ€ ๊ฝค ์น˜๋ช…์ ์ด๋‹ค.

 

๋จผ์ € ๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹์—์„œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์ ์€ ์™ธ๋ถ€ ๋‹จํŽธํ™” , ๋‚ด๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ์žˆ๋‹ค.

๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹์€ ๋ถ„ํ• ์˜ ํฌ๊ธฐ๋ณด๋‹ค ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์„œ ์‹คํ–‰๋˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ด๋ฅผ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ผ๊ณ ํ•œ๋‹ค.

๋˜ํ•œ ํ”„๋กœ์„ธ์Šค์— ๋น„ํ•ด ํฐ ๋ถ„ํ• ์— ์ ์žฌ๋  ๊ฒฝ์šฐ ํ•ด๋‹น ๋ถ„ํ• ์˜ ๋‚จ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋˜๋Š” ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Š” ํ•˜๋‚˜์˜ ๋ถ„ํ• ์—๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ด์ฒ˜๋Ÿผ ๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณ ์ •์‹œ์ผœ ๋†“๊ณ  ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹์— ๋น„ํ•ด ์œตํ†ต์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹๋„ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ์— ๋นˆ ๊ณต๊ฐ„์ด 20MB , 30MB๊ฐ€ ์žˆ๋”๋ผ๋„ 50MB๋Š” ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๋‘๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‚˜๋‰˜์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜๋ฉด์„œ ์ƒ๊ธฐ๋Š” ์• ๋งคํ•˜๊ฒŒ ์ž‘์€ ๋นˆ๊ณต๊ฐ„๋“ค์€ ๊ณ„๋ฅต๊ฐ™์€ ์กด์žฌ์—ฌ์„œ ๊ฒฐ๊ตญ์—” ๋นˆ๊ณต๊ฐ„์œผ๋กœ ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋ผ๊ณ  ํ•œ๋‹ค.
 

์™ธ๋ถ€ ๋‹จํŽธํ™”

 
๋‹จ์ˆœํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• ๋ฐฉ์‹์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ์ข€ ๋น„ํšจ์œจ์ ์ด๋‹ค.
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์••์ถ•ํ•˜๋ฉด์„œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์••์ถ•ํ• ๊ฑด์ง€์— ๋Œ€ํ•œ ํšจ์œจ์ ์ธ ์„ค๊ณ„๋„ ๋ถ€๋‹ดํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—
ํ˜„๋Œ€์—๋Š” ํŽ˜์ด์ง•์ด ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
 

๋Œ€ํ‘œ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• - ํŽ˜์ด์ง•

์ง€๊ธˆ๊นŒ์ง€ ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์‚ดํŽด๋ณด์•˜๋‹ค.
๊ทธ๋ž˜์„œ ์šด์˜์ฒด์ œ๊ฐ€ ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ํŽ˜์ด์ง•์ธ๋ฐ ํŽ˜์ด์ง•์— ์ง‘์ค‘ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.
https://cb036133.tistory.com/175

 

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐœ๋… (๋…ผ๋ฆฌ์ฃผ์†Œ, ํŽ˜์ด์ง€ ํดํŠธ, ์Šค์™€ํ•‘)

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ž€? ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ํ•˜๋Š”๋ฐ, ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆฌ๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ํ„ฑ ์—†์ด ๋ถ€์กฑํ•˜๋‹ค. ์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ๊ฐ€์ƒ

cb036133.tistory.com

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

 

๊ทผ๋ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด CPU๋Š” ์–ด๋–ป๊ฒŒ ์ด ํ…Œ์ด๋ธ”์„ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฑธ๊นŒ? ์ด ์—ญํ• ์„ ํ•˜๋Š”๊ฒŒ PTBR์ด๋‹ค.

ํ•˜์ง€๋งŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋”ฐ๋กœ ์žˆ๋‹ค๋ฉด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋‘๋ฒˆ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค. (ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” 1๋ฒˆ + ํŽ˜์ด์ง€ ์ฐธ์กฐ 1๋ฒˆ)

 

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

FIFO
๋จผ์ € ์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊ต์ฒดํ•œ๋‹ค.

ํŠน์ดํ•˜๊ฒŒ๋„ FIFO์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ฒŒ ๋˜๋ฉด ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ๋” ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค.(๋ฒจ๋ ˆ์ด๋””์˜ ๋ชจ์ˆœ)

 
LRU
์ฐธ์กฐ๊ฐ€ ๊ฐ€์žฅ ์˜ค๋ž˜๋ค ํŽ˜์ด์ง€๋ฅผ ๋ฐ”๊พผ๋‹ค. ์ด ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค ์นด์šดํ„ฐ์™€ ์Šคํƒ์„ ๋‘์–ด์•ผํ•œ๋‹ค.
 

LFU
๊ฐ€์žฅ ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•œ๋‹ค.


NUR (ํด๋Ÿญ ์•Œ๊ณ ๋ฆฌ์ฆ˜)
0๊ณผ 1์„ ๊ฐ€์ง„ ๋น„ํŠธ๋ฅผ ๋‘๊ณ  ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๋ฉด์„œ 0์„ ์ฐพ์€ ์ˆœ๊ฐ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ 0์€ ์ฐธ์กฐ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ฐธ์กฐ ์‹œ์ ์ด ๊ฐ€์žฅ ์˜ค๋ž˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ต์ฒดํ•˜๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„์€ 1๋กœ ๋ฐ”๊พผ๋‹ค.

 

 

1. ๋ฐ๋“œ๋ฝ์ด๋ž€?

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

์ด๋Ÿฐ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์„œ๋กœ๊ฐ€ ์›ํ•˜๋Š” ์ž์›์„ ์–ป์ง€ ๋ชปํ•ด์„œ ์ฒ˜๋ฆฌ ์ƒํƒœ๊ฐ€ ๋งˆ๋น„๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ , ๋ ˆ์ด์Šค ์ปจ๋””์…˜ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ๋ณตํ•ฉ์ ์œผ๋กœ ์ž‘์šฉํ•ด์„œ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค.

2. ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ 

์•ž์„œ ๋ฐ๋“œ๋ฝ์€ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ๋ณตํ•ฉ์ ์œผ๋กœ ์ž‘์šฉํ•ด์•ผํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ๊ทธ ์กฐ๊ฑด์€ ํฌ๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

1. ์ƒํ˜ธ๋ฐฐ์ œ(Mutual Exclusion)

๋ ˆ์ด์Šค ์ปจ๋””์…˜ ํ™˜๊ฒฝ์—์„œ ๊ณต์œ  ์ž์›๋“ค์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฐจ๋Ÿ‰๋“ค์ด ์ฐจ์„ ๋“ค์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ด๋Š” ๊ณง ๊ตํ†ต์‚ฌ๊ณ ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

์ด ์กฐ๊ฑด์€ ๋‹น์—ฐํžˆ ๋ณด์žฅ๋˜์–ด์•ผ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

2. ์ ์œ  ๋Œ€๊ธฐ (Hold and Wait)

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด๋ฏธ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ทจ๋“ํ•œ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€๋กœ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.

์ ์œ (Hold)ํ•œ ์ƒํƒœ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€๊ธฐ(wait) ํ•œ๋‹ค๋Š” ๊ฐœ๋…์ด๋‹ค.

 

์ฐจ๋Ÿ‰์ด 1์ฐจ์„ ์„ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ 2์ฐจ์„ ๊นŒ์ง€ ์ ์œ ํ•ด์•ผํ•œ๋‹ค๋ฉด, ๊ทธ ๋™์•ˆ์€ ๋‹ค๋ฅธ ์ฐจ๋Ÿ‰๋“ค์ด 1์ฐจ์„ ์„ ์ ์œ ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์–ด๋–ค ์ฐจ๋Ÿ‰์ด ๊ผญ 1์ฐจ์„ ์— ๊ฐ€์•ผํ•œ๋‹ค๋ฉด ์ด๋Š” ๊ณง ์ฒ˜๋ฆฌ๊ฐ€ ๋งˆ๋น„๋˜๋Š” ๋ฐ๋“œ๋ฝ์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. ๋น„์„ ์ 

๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋‚˜ CPU ์ž์›์„ ์ž„์˜๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ํ˜„์žฌ ์ž์›(๋ฆฌ์†Œ์Šค)์„ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž๋งŒ์ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2์ฐจ์„ ์— ์žˆ๋Š” ์ฐจ๋Ÿ‰์ด 1์ฐจ์„ ์— ์žˆ๋Š” ์ฐจ๋Ÿ‰์„ ์–ต์ง€๋กœ ๋Œ์–ด๋‚ด๋ ค์„œ ์ ์œ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด๋‹ค.

 

4. ์ˆœํ™˜ ๋Œ€๊ธฐ

๋ง ๊ทธ๋Œ€๋กœ ์„œ๋กœ๊ฐ€ ์„œ๋กœ์˜ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด 4๊ฐ€์ง€ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์–ด์•ผ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค!

 

3. ๋ฐ๋“œ๋ฝ ํ•ด๊ฒฐ ์ „๋žต

๋ฐ๋“œ๋ฝ ๋ฐฉ์ง€

4๊ฐ€์ง€ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ์—ญ๋ฐœ์ƒ์œผ๋กœ 4๊ฐ€์ง€ ์ƒํ™ฉ์ด ์ถฉ์กฑ๋˜์ง€ ์•Š๊ฒŒ ์‹œ์Šคํ…œ์„ ๋””์ž์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ฒซ๋ฒˆ์งธ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ  ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ์• ์ดˆ์— ํ˜„์‹ค ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ ˆ์ด์Šค ์ปจ๋””์…˜ ํ™˜๊ฒฝ์—์„œ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ๊ฑฐ๋Š” ๋งค์šฐ ์œ„ํ—˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋˜ํ•œ IO ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๋“ค์€ ์• ์ดˆ์— ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์‹ค ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‘๋ฒˆ์งธ๋กœ๋Š” ์ ์œ  ๋Œ€๊ธฐ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

์ž์›์„ ์ ์œ ํ•œ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์›์„ ๋Œ€๊ธฐํ•˜๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด, ์• ์ดˆ์— ๋ชจ๋“  ์ž์›์„ ์ ์œ ํ•œ ์ƒํƒœ์—์„œ๋งŒ ์‹คํ–‰ํ•˜๊ฒŒ๋” ํ•˜์—ฌ์„œ

ํ•ด๋‹น ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฉด ๋œ๋‹ค. ์ฆ‰ "hold(์ ์œ )ํ•œ ์ฑ„๋กœ wait(๋Œ€๊ธฐ)ํ•˜์ง€๋งˆ!" ๋ฐฉ์‹์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์„ธ๋ฒˆ์งธ๋Š” ๋Œ€๊ธฐ ์ƒํƒœ์—์„œ ์ž์›์„ ์–‘๋ณดํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

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

์ด๋Š” ๋ฝ์„ ์ž๋ฐœ์ ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

https://cb036133.tistory.com/178

 

๋ชจ๋‹ˆํ„ฐ์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์ž๋ฐ”์—์„œ์˜ ๋ชจ๋‹ˆํ„ฐ

๋ชจ๋‹ˆํ„ฐ๋ž€? ๋ชจ๋‹ˆํ„ฐ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ mutex๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์Šค๋ ˆ๋“œ๋ฅผ waiting ์ƒํƒœ๋กœ ์ „ํ™˜์‹œํ‚ค๋Š”๋ฐ ์ด๋ฅผ cooperation์ด๋ผ๊ณ  ํ•œ๋‹ค. mutex - ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์Šค๋ ˆ

cb036133.tistory.com

 

๋„ค๋ฒˆ์งธ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ์ˆœ์„œ์ฒด๊ณ„๋ฅผ ๋ถ€์—ฌํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ 4๋ฒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ์œ ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ ๋ฆฌ์†Œ์Šค๋Š” 4๋ฒˆ ๋ฆฌ์†Œ์Šค๋ณด๋‹ค ํฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ์œ ํ•ด์•ผํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ๋“œ๋ฝ ํšŒํ”ผ

๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์€ ์ƒํ™ฉ ์ž์ฒด๋ฅผ ํšŒํ”ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค.

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

 

์•ˆ์ • ์ƒํƒœ: ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๊ณ  ํ”„๋กœ์„ธ์Šค์˜ ์ตœ๋Œ€ ์ž์› ์š”๊ตฌ๋Ÿ‰์„ ์šด์˜์ฒด์ œ๊ฐ€ ์ถฉ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ

๋ฐ๋“œ๋ฝ ๊ฐ์ง€์™€ ๋ณต๊ตฌ

์šฐ์„  ๋ฐ๋“œ๋ฝ์„ ํ—ˆ์šฉํ•ด์ฃผ๊ณ  ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๋ณต๊ตฌํ•œ๋‹ค.

 

๋ณต๊ตฌ ์ „๋žต์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์ด๋‹ค.

๋จผ์ € ๋ฐ๋“œ๋ฝ์ด ๊ฑธ๋ฆฐ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋•Œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ํ•˜๋‚˜์”ฉ ์ข…๋ฃŒ์‹œํ‚ค๊ฑฐ๋‚˜, ๋ชจ๋‘ ํ•œ๊บผ๋ฒˆ์— ์ข…๋ฃŒ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ์ตœํ›„์˜ ๋ฐฉ๋ฒ•์ด๋‹ค. 

์ด๋ ‡๊ฒŒ ๊ฐ•์ œ ์ข…๋ฃŒ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๋™์•ˆ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์žƒ๊ฒŒ ๋˜๋Š” ๋ฆฌ์Šคํฌ๋ฅผ ๊ฐ๋‚ดํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์ผ์‹œ์ ์œผ๋กœ ์„ ์ ์„ ํ—ˆ์šฉํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๊ฝ๊ฝ ๋ฌถ์—ฌ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ ๋“ค์ด ๊ทธ๋‚˜๋งˆ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ๋“œ๋ฝ ๋ฌด์‹œ

๋ง ๊ทธ๋Œ€๋กœ ๋ฐ๋“œ๋ฝ์ด ์ผ์–ด๋‚˜๋˜ ๋ง๊ฑด ์‹ ๊ฒฝ ์•ˆ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค. ๊ฝค ๋งŽ์€ ์šด์˜์ฒด์ œ์—์„œ ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๋ฐ๋“œ๋ฝ์€ ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์šฉ์ด ๋” ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์‚ฌ์‹ค ํ˜„์‹ค์—์„œ๋„ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฉˆ์ถ”๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋“ค์€ ๊ป๋‹ค ํ‚จ๋‹ค.

 

๋ชจ๋‹ˆํ„ฐ๋ž€?

๋ชจ๋‹ˆํ„ฐ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ mutex๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค.

์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์Šค๋ ˆ๋“œ๋ฅผ waiting ์ƒํƒœ๋กœ ์ „ํ™˜์‹œํ‚ค๋Š”๋ฐ ์ด๋ฅผ cooperation์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

mutex - ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์Šค๋ ˆ๋“œ๋งŒ์ด ์ž„๊ณ„ ์˜์—ญ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ชจ๋‹ˆํ„ฐ์˜ ์ž‘๋™ ๋ฐฉ์‹

๋ชจ๋‹ˆํ„ฐ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

๋ฎคํ…์Šค

mutual exclusion์„ ๋ณด์žฅํ•˜๋Š” ์žฅ์น˜์ด๋‹ค. ๋ฝ์„ ๊ฐ€์ง€์ง€ ๋ชปํ•œ ์Šค๋ ˆ๋“œ๋Š” ๋ฎคํ…์Šค์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์—”ํŠธ๋ฆฌ ํ์— ๋“ค์–ด๊ฐ„๋‹ค.

condition variable

wating queue๋ฅผ ์ด์šฉํ•ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š์€ ์Šค๋ ˆ๋“œ๋“ค์ด ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋จธ๋ฌผ ์ˆ˜ ์žˆ๋„๋กํ•œ๋‹ค.

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

 

1. wait - ์Šค๋ ˆ๋“œ๊ฐ€ ์ž์‹ ์„ cv(condition variable)์˜ waiting ํ์— ๋„ฃ๊ณ  ๋Œ€๊ธฐ(wait) ์ƒํƒœ๋กœ ์ „ํ™˜ํ•œ๋‹ค.

2. signal - wating ํ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ์Šค๋ ˆ๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊นจ์šด๋‹ค. 

3. broadcast - wating ํ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋ฅผ ๊นจ์šด๋‹ค.

 

๋ชจ๋‹ˆํ„ฐ์—๋Š” ๋‘ ๊ฐœ์˜ ํ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์—”ํŠธ๋ฆฌ ํ - ์ž„๊ณ„์˜์—ญ (critical section)์— ์ง„์ž…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ -> ๋ฎคํ…์Šค๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.

waiting ํ - ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๊ธธ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ -> cv๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.

 

signal and continue

์‹œ๊ทธ๋„์„ ์ฃผ๊ณ  ๊ธฐ์กด ์Šค๋ ˆ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

signal and wait

์‹œ๊ทธ๋„์„ ์ฃผ๊ณ  ๊ธฐ์กด ์Šค๋ ˆ๋“œ๋Š” ๋Œ€๊ธฐ ์ƒํƒœ์— ๋“ค์–ด๊ฐ€๋ฉฐ ๋‹ค์‹œ ๋ฝ์„ ์–ป์œผ๋ฉด ๊นจ์–ด๋‚œ๋‹ค.

 

์ž๋ฐ”์—์„œ์˜ ๋ชจ๋‹ˆํ„ฐ

๋ชจ๋“  ์ž๋ฐ” ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ถ€์— ๋ชจ๋‹ˆํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ synchronized ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

*์ž๋ฐ”์˜ ๋ชจ๋‹ˆํ„ฐ๋Š” cv๋ฅผ ํ•˜๋‚˜๋งŒ ๊ฐ€์ง„๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ”์˜ ๋ชจ๋‹ˆํ„ฐ๋„ ์„ธ๊ฐ€์ง€ ์ƒํƒœ๊ฐ€ ์žˆ๋Š”๋ฐ, ์šฉ์–ด๋งŒ ์‚ด์ง ๋‹ค๋ฅผ ๋ฟ ๊ธฐ๋Šฅ์€ ๊ฐ™๋‹ค.

๋ชจ๋‹ˆํ„ฐ ์ž๋ฐ” ๋ชจ๋‹ˆํ„ฐ
wait wait
signal notify
broadcast notifyAll

์Šค์ผ€์ค„๋ง์ด๋ž€?

CPU ๋ฒ„์ŠคํŠธ*๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์šด์˜์ฒด์ œ๊ฐ€ ๊ณต์ •ํ•˜๊ณ  ํ•ฉ๋ฆฌ์ ์œผ๋กœ CPU ์ž์›์„ ๋ถ„๋ฐฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

CPU ๋ฒ„์ŠคํŠธ: CPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๊ฐ„

 

์Šค์ผ€์ค„๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์Šค์ผ€์ค„๋ง์˜ ์ฃผ์š” ๋ชฉ์ ์€ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ CPU์˜ ์œ ํœด(idle) ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ CPU์˜ ์ด์šฉ๋ฅ ์„ ์ตœ๋Œ€ํ•˜ํ•˜๋Š” ๊ฒƒ์— ์žˆ๋‹ค.

๋ฌผ๋ก  ์•„๋ฌด ํ”„๋กœ์„ธ์Šค๋‚˜ ๋žœ๋ค์œผ๋กœ ๋„ฃ์–ด์„œ๋Š” ์•ˆ๋˜๊ณ  ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์—ฌ๋Ÿฌ ์กฐ๊ฑด๋“ค์„ ๊ณ ๋ คํ•ด์„œ ์–ด๋–ค ๊ฒƒ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•  ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

 

ํ•œ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž

์ž…์ถœ๋ ฅ ์ž‘์—…์ด ๋งŽ์€ ํ”„๋กœ์„ธ์Šค์™€ CPU ์‚ฌ์šฉ์ด ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค. ์ด ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์•ผ ๋ ๊นŒ?

์ด ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„๋‹ค. 

์™œ๋ƒํ•˜๋ฉด, ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ๋จผ์ € ๋นจ๋ฆฌ ๋๋งˆ์นœ ๋’ค์— CPU ์‚ฌ์šฉ์ด ๋งŽ์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋งŽ์€ CPU ์ž์›์„ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

CPU ์Šค์ผ€์ค„๋ง์€ ์ด์ฒ˜๋Ÿผ ์ค‘์š”์„ฑ๊ณผ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ณ ๋ คํ•ด์„œ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ์ž์›์„ ํ• ๋‹นํ•ด์ค€๋‹ค.

๋งŒ์•ฝ ๋ฌด์กฐ๊ฑด ๋จผ์ € ์š”์ฒญํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด, ๋‹น์žฅ ๊ธ‰ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ณ„๋กœ ๊ธ‰ํ•˜์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค๋“ค๋งŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ๊ณง ์ „์ฒด ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•œ ์Šค์ผ€์ค„๋ง ๊ทœ์น™์€ ํ•„์ˆ˜๋กœ ์š”๊ตฌ๋œ๋‹ค.

 

์Šค์ผ€์ค„๋ง ๋™์ž‘ ๋ฐฉ์‹

์•ž์—์„œ ์Šค์ผ€์ค„๋ง์„ ์‹œ์— CPU ๋ฒ„์ŠคํŠธ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ์„œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ฑ…์ •ํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค.

์ด๋Ÿฌํ•œ ์šฐ์„  ์ˆœ์œ„ ์ •๋ณด๋“ค์€ PCB ๋ผ๋Š” ๊ณณ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”๋ฐ, CPU ์ž…์žฅ์—์„œ PCB๋ฅผ ์ผ์ผ์ด ๋’ค์ ธ์„œ ์Šค์ผ€์ค„๋ง์„ ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๊ฐ„ ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด ์•„๋‹ ๊ฒƒ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์Šค์ผ€์ค„๋ง ํ์ธ๋ฐ ์ด ํ๋ฅผ ์ด์šฉํ•˜์—ฌ์„œ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋Œ€๊ธฐ์—ด์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์Šค์ผ€์ค„๋ง ํ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

- ์ค€๋น„ํ(ready queue)

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

 

- ๋Œ€๊ธฐํ(wait,device queue)

์ž…์ถœ๋ ฅ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€๋งŒ ์ง€๊ธˆ ๋‹น์žฅ CPU๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์žฅ์น˜๋“ค์ด ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””์Šคํฌ์— ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ์‹œ์— ๋””์Šคํฌ๋Š” ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š๋ผ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 

์ด๋ ‡๊ฒŒ ํ์— ํ”„๋กœ์„ธ์Šค๋“ค์ด ์Œ“์ด๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ์ ํ•˜๋Š” ์ง€๋ฅผ ์•Œ์•„๋ณด์ž

๊ทธ ์ „์— ์Šค์ผ€์ค„๋ง ๋””์ŠคํŒจ์ฒ˜์˜ ๊ตฌ์กฐ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

๋Œ€๊ฒŒ ์Šค์ผ€์ค„๋Ÿฌ์™€ ๋””์ŠคํŒจ์ฒ˜๋ฅผ ๊ฐ™์€ ๋ฒ”์ฃผ๋กœ ๋ฌถ์–ด์„œ ๋งํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋‘˜์˜ ์—ญํ• ์€ ๋ช…ํ™•ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ณ€ํ™”๋กœ ์ธํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋น„์–ด์žˆ๊ฒŒ ๋˜๋ฉด ์–ด๋Š ํ”„๋กœ์„ธ์Šค๋ฅผ CPU๋กœ ๊ฐ€์ ธ์˜ฌ์ง€์— ๋Œ€ํ•œ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ด ๊ณผ์ •์€ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค.

์Šค์ผ€์ค„๋Ÿฌ๋Š” ์•ž์—์„œ ๋ฐฐ์› ๋˜ ์ค€๋น„ ํ์—์„œ ์šฐ์„  ์ˆœ์œ„์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

 

๋””์ŠคํŒจ์ฒ˜๋Š” ์ด๋ ‡๊ฒŒ ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ CPU์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋กํ•œ๋‹ค.

์„ ํƒ ๋œ ํ”„๋กœ์„ธ์Šค๋กœ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ํ•ด์ฃผ๋ฉฐ ์ด ์ž‘์—…์„ ์œ„ํ•ด ์ปค๋„๋ชจ๋“œ๋กœ ์ง„์ž…ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์„ ์œ„ํ•ด ์œ ์ € ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ๋งˆ์ง€๋ง‰ ์ž‘์—… ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์ ์ ˆํ•œ ์œ„์น˜๋กœ ์ด๋™์‹œ์ผœ์ค€๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด "์–ด๋–ป๊ฒŒ CPU๋ฅผ ์„ ์ ํ•  ๊ฒƒ์ธ๊ฐ€?" ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•œ๋ฐ ํฌ๊ฒŒ ์„ ์ ํ˜• , ๋น„์„ ์ ํ˜• ๋ฐฉ์‹์ด ์žˆ๋‹ค.

 

๋น„์„ ์ ํ˜•

์‹คํ–‰ ์ƒํƒœ์—์„œ ํ”„๋กœ์„ธ์Šค์˜ ์ž๋ฐœ์ ์ธ ์ƒํƒœ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ์Šค์ผ€์ค„๋ง์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

1. IO request : ๋ฐœ์ƒ ์‹œ

2. terminate ๋ฐœ์ƒ ์‹œ : ์‹คํ–‰ํ•˜๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚ฌ์„ ๊ฒฝ์šฐ

 

๋น„์„ ์ ํ˜• ๋ฐฉ์‹์€ ์ƒํ˜ธ ํ˜‘๋ ฅ์ (๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์–‘๋ณดํ•˜๋Š” ๊ฒฝ์šฐ)์ด๋ผ๋Š” ์žฅ์ ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด์— ๋Š๋ฆฐ ์‘๋‹ต ์‹œ๊ฐ„*์ด๋ผ๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณต์ •ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

Response time(์‘๋‹ต ์‹œ๊ฐ„): ready ํ์— ๋“ค์–ด์™€์„œ ์ฒ˜์Œ์œผ๋กœ CPU(์ตœ์ดˆ๋กœ)๋ฅผ ์–ป๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„

 

์„ ์ ํ˜•

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜์ง€ ์•Š์•˜์Œ์—๋„ ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. interrupt ๋ฐœ์ƒ ์‹œ : ์™ธ๋ถ€์—์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋“ค์–ด์˜จ ๊ฒฝ์šฐ

2. IO request : ๋ฐœ์ƒ ์‹œ

3. time-out ๋ฐœ์ƒ ์‹œ : time slicing (์‹œ๋ถ„ํ• ) ์— ์˜ํ•ด, ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์ด ๋๋‚ฌ์„ ๊ฒฝ์šฐ

4. wake-up ๋ฐœ์ƒ ์‹œ : ๋Œ€๊ธฐ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ค€๋น„ ํ์— ์˜ฎ๊ธธ๋•Œ

5. terminate ๋ฐœ์ƒ ์‹œ : ์‹คํ–‰ํ•˜๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚ฌ์„ ๊ฒฝ์šฐ

 

๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์„ ์ ํ˜•์—์„œ ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์šด์˜์ฒด์ œ๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ์Šค์ผ€์ค„๋ง์— ๊ฐœ์ž…ํ•œ๋‹ค.

์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•œ๋‹ค. -> ์ด๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฎคํ…์Šค , ์„ธ๋งˆํฌ์–ด ๊ธฐ์ˆ  ์ ์šฉ

 

์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค! ํ•˜์ง€๋งŒ ์žฆ์€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์œผ๋กœ ์ธํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ์šฐ์„  ์ˆœ์œ„๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋“ค์€ CPU๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ธฐ์•„ ํ˜„์ƒ)

 

์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ์ง€ ์•Œ์•„๋ณด์ž

์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๋Œ€ํ‘œ์ ์œผ๋กœ 7๊ฐ€์ง€๋งŒ ์ถ”๋ ค๋ณด์•˜๋‹ค.

 

์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜

- FCFS

์ค€๋น„ํ์— ๋จผ์ € ๋„์ฐฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

Convoy effect ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. 


 Convoy effect: ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค๋กœ ์ธํ•ด ๋’ค์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ํ˜„์ƒ

 

- SJF(Shortest job first)

ํ”„๋กœ์„ธ์Šค์˜ CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค.

CPU ์‚ฌ์šฉ์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค๋Š” ๋‚˜์ค‘์— , ์งง์€ ํ”„๋กœ์„ธ์Šค๋Š” ๋จผ์ €!

๊ธฐ์กด์ ์œผ๋กœ ๋น„์„ ์  ํ˜•์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค.

 

- SRTF

SJF + Round Robin

๋‚จ์€ CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค.

time slice๋งŒํผ cpu๋ฅผ ์ด์šฉํ•˜๋˜, ๋‚จ์€ ์ž‘์—… ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์ ์€ ํ”„๋กœ์„ธ์Šค๋ถ€ํ„ฐ ์‹คํ–‰

 

- priority

์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ํ”„๋กœ์„ธ์Šค๋ถ€ํ„ฐ ์‹คํ–‰

์šฐ์„  ์ˆœ์œ„๊ฐ€ ๊ฐ™๋‹ค๋ฉด FCFS๋กœ ์ฒ˜๋ฆฌ

 

starvation(๊ธฐ์•„) ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ (์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ๋ฌด๊ธฐํ•œ ์ง€์—ฐ)

-> ์—์ด์ง• ๊ธฐ๋ฒ•์œผ๋กœ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Œ

 

- Round-Robin

FCFS + ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค

time slice๋กœ ๋‚˜๋ˆ ์ง„ CPU time์„ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์‹คํ–‰

์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ๋๋‚ฌ์Œ์—๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์‹œ ํ์˜ ๋งจ ๋’ค์— ์‚ฝ์ž…ํ•œ๋‹ค.

 

Round Robin์—์„œ time slice์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํฌ๋‹ค๋ฉด fcfs์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚˜ํƒ€๋‚˜๊ณ ,

๋ฐ˜๋Œ€๋กœ ๋„ˆ๋ฌด ์ž‘์•„์ ธ๋ฒ„๋ฆฌ๋ฉด context switching์œผ๋กœ ์ธํ•œ CPU์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์ ์ ˆํ•œ time slice์˜ ํฌ๊ธฐ๋ฅผ ํ•„์—ฐ์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.

 

- multilevel-queue

์šฐ์„  ์ˆœ์œ„๋ณ„๋กœ ์ค€๋น„ํ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

ํ”„๋กœ์„ธ์Šค ์œ ํ˜•๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•ด์„œ ํ๋ณ„๋กœ ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

queue ๊ฐ„์˜ ์ด๋™์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ๊ธฐ์•„ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- multilevel-feedback-queue

queue ๊ฐ„์˜ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ multilevel-queue ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹

์ •ํ•ด์ง„ time slice ์•ˆ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ–ˆ์œผ๋ฉด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ๋กœ ์ด๋™ํ•œ๋‹ค.

-> ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์•„์ง

์—์ด์ง• ๊ธฐ๋ฒ•๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

CPU ์Šค์ผ€์ค„๋ง์˜ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์ด๋‹ค!

๊ฒฐ๋ก 

์šด์˜์ฒด์ œ๋Š” ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ํ™˜๊ฒฝ์—์„œ CPU์˜ ์ด์šฉ๋ฅ ์„ ์ตœ๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋งŒ์ผ ์ ํ•ฉํ•˜์ง€ ๋ชปํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌด๊ธฐํ•œ ์ง€์—ฐ๋˜๋Š” ๊ธฐ์•„(starvation) ํ˜„์ƒ์ด๋‚˜ ์‘๋‹ต ์‹œ๊ฐ„์˜ ์ง€์—ฐ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ CPU ์„ ์  ๋ฐฉ์‹์—์„œ๋ถ€ํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊นŒ์ง€, ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ๋‹นํ•œ ๋ฐฉ์‹์„ ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

ํŠธ๋žœ์žญ์…˜์ด๋ž€ ?

 

์†Œํ”„ํŠธ์›จ์–ด ์„ธ๊ณ„์—์„œ์˜ ํŠธ๋žœ์žญ์…˜์„ ์‚ดํŽด๋ณด๊ธฐ ์•ž์„œ์„œ ์‹ค์ƒํ™œ์—์„œ ํ”ํžˆ ์žˆ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๋งŒ์•ฝ ์นœ๊ตฌ๊ฐ€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ๊ณ„์ขŒ์— 20๋งŒ์›์„ ๋ณด๋‚ด์ฃผ๋ ค๊ณ  ํ•œ๋‹ค.

 

 

์ด ๊ฒฝ์šฐ ์ž‘์—…์˜ ๋‹จ์œ„๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

์ž์„ธํžˆ ํŒŒํ•ด์น˜๋ฉด ๋” ๋งŽ์€ ๋‹จ์œ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

1. ์นœ๊ตฌ A์˜ ๊ณ„์ขŒ์—์„œ 20๋งŒ์›์„ ๋บ€๋‹ค.

2. ์นœ๊ตฌ B์˜ ๊ณ„์ขŒ์— 20๋งŒ์›์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

์ด ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ 4๊ฐ€์ง€๋งŒ ์•Œ์•„๋ณด์ž

 

๋งŒ์•ฝ, ์†ก๊ธˆ ๋„์ค‘ A์˜ ๊ณ„์ขŒ์—๋Š” ๋ˆ์ด ๋น ์กŒ๋Š”๋ฐ B์˜ ๊ณ„์ขŒ์— ๋ˆ์ด ๊ทธ๋Œ€๋กœ๋ผ๋ฉด?

๋งŒ์•ฝ, A์˜ ๊ณ„์ขŒ์— ๋ˆ์ด ๋ถ€์กฑํ•œ ์ƒํƒœ์ธ๋ฐ ์†ก๊ธˆ์ด ๋˜์—ˆ๋‹ค๋ฉด?

๋งŒ์•ฝ, ์†ก๊ธˆ ๋„์ค‘ ์นœ๊ตฌC๊ฐ€ ์†ก๊ธˆ์„ ๋ณด๋‚ด์„œ ์„œ๋กœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—‡๊ฐˆ๋ฆฐ๋‹ค๋ฉด?

๋งŒ์•ฝ, ์†ก๊ธˆ์„ ์ž˜ ๋งˆ์ณค์Œ์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ ์•„๊ฐ€ ๋ฒ„๋ฆฐ๋‹ค๋ฉด..?

 

๊ทธ๋ ‡๋‹ค๋ฉด ์นœ๊ตฌ๊ฐ€ ๋ณด๋‚ด์ค€๋‹ค๊ณ  ํ–ˆ๋˜ 20๋งŒ์›์€ ์ฆ๋ฐœํ•ด๋ฒ„๋ฆฐ ๊ฒƒ์ด๊ณ  ์ด๋Š” ๊ณง ๋Œ€ํ˜• ์‚ฌ๊ณ ๋กœ ์ด์–ด์ง„๋‹ค.

์ด๋Ÿฐ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŠธ๋žœ์žญ์…˜์ด๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์€ ์œ„์—์„œ ๋งํ•œ ์ž‘์—… ๋‹จ์œ„๋“ค์„ ๋ฌถ์Œ์œผ๋กœ ์ธํ•ด ์ผ๋ถ€๋งŒ ์„ฑ๊ณตํ•ด์„œ DB์— ๋ฐ˜์˜๋˜๋Š” ์ผ์ด ์—†๋„๋ก ๋„์™€์ค€๋‹ค.

์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์˜ ๋‹จ์œ„์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ์งˆ์ด ์œ„์—์„œ ๋งํ•œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ƒํ™ฉ๋“ค์„ ๋ฐฉ์ง€ํ•ด์ค€๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ์งˆ

์œ„์—์„œ ๋งํ•œ 4๊ฐ€์ง€ ๋ฌธ์ œ๋“ค์€ ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ์งˆ์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์„ฑ์งˆ๋“ค์„ ACID ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

A : Atomicity (์›์ž์„ฑ)

C : Consistency (์ผ๊ด€์„ฑ)

I : Isolation (๋…๋ฆฝ์„ฑ)

D : Durability (์ง€์†์„ฑ)

 

์•ž์„  ์‚ฌ๋ก€๋“ค์„ ํ•˜๋‚˜์”ฉ ๋ณด๋ฉด์„œ ๊ฐ๊ฐ ์–ด๋–ค ์„ฑ์งˆ๊ณผ ๋Œ€๋น„๋˜๋Š” ์ง€ ์‚ดํŽด๋ณด์ž !

 

๋งŒ์•ฝ, ์†ก๊ธˆ ๋„์ค‘ A์˜ ๊ณ„์ขŒ์—๋Š” ๋ˆ์ด ๋น ์กŒ๋Š”๋ฐ B์˜ ๊ณ„์ขŒ์— ๋ˆ์ด ๊ทธ๋Œ€๋กœ๋ผ๋ฉด?

์ด ์˜ˆ์‹œ๋Š” ์›์ž์„ฑ(Atomicity)์„ ์ง€ํ‚ค์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค.

 

ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์„ฑ๊ณตํ•˜๊ณ  ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์‹คํŒจํ–ˆ๋Š”๋ฐ ๊ฒฐ๊ณผ๊ฐ€ DB์—๏ฟผ ๋ฐ˜์˜๋œ ๊ฒƒ์ด๋‹ค.

์›์ž์„ฑ์€ ์ง€ํ‚จ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์ž‘์—…์ด ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ๋ชจ๋‘ ์‹คํŒจํ•ด์•ผํ•œ๋‹ค.

 

๋งŒ์•ฝ, A์˜ ๊ณ„์ขŒ์— ๋ˆ์ด ๋ถ€์กฑํ•œ ์ƒํƒœ์ธ๋ฐ ์†ก๊ธˆ์ด ๋˜์—ˆ๋‹ค๋ฉด?

์ด ์˜ˆ์‹œ๋Š” ์ผ๊ด€์„ฑ(Consistency)์„ ์ง€ํ‚ค์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค.

 

DB์—๋Š” ์ž”์•ก์€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค๋Š” ์ œ์•ฝ์ด ์žˆ์Œ์—๋„ ์ด๋ฅผ ์–ด๊ธด ์ฑ„ ์†ก๊ธˆ์„ ์ง„ํ–‰ํ•œ ๊ฒƒ์ด๋‹ค.

์ผ๊ด€์„ฑ์„ ์ง€ํ‚จ๋‹ค๋Š” ๊ฒƒ์€ ํŠธ๋žœ์žญ์…˜ ์ด์ „,์ดํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ œ์•ฝ์ด๋‚˜ ๊ทœ์น™์„ ๋งŒ์กฑํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋งŒ์•ฝ, ์†ก๊ธˆ ๋„์ค‘ ์นœ๊ตฌC๊ฐ€ ์†ก๊ธˆ์„ ๋ณด๋‚ด์„œ ์„œ๋กœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—‡๊ฐˆ๋ฆฐ๋‹ค๋ฉด?

 

์ด ์˜ˆ์‹œ๋Š” ๋…๋ฆฝ์„ฑ(Isolation)์„ ์ง€ํ‚ค์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค.

 

์นœ๊ตฌC์™€์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋จ์œผ๋กœ์จ ์˜ํ–ฅ์„ ๋ฏธ์นœ๊ฒƒ์ด๋‹ค.

(์นœ๊ตฌC๊ฐ€ ๋ณด๋‚ธ ๋ˆ์— ๋”ํ•ด์ง€์ง€ ์•Š๊ณ  ๊ธฐ์กด ๊ธˆ์•ก์— ๋”ํ•ด์ง์œผ๋กœ์จ ์ž”์•ก์ด ๊ทธ๋Œ€๋กœ)

๋…๋ฆฝ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์ด ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ์—๋„ ํ˜ผ์ž ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค.

 

๋งŒ์•ฝ, ์†ก๊ธˆ์„ ์ž˜ ๋งˆ์ณค์Œ์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ ์•„๊ฐ€ ๋ฒ„๋ฆฐ๋‹ค๋ฉด..?

์ด ์˜ˆ์‹œ๋Š” ์ง€์†์„ฑ(Durability)์„ ์ง€ํ‚ค์ง€ ๋ชปํ•œ๊ฒƒ์ด๋‹ค.

 

๋‹น์—ฐํ•œ ๋ง์ด์ง€๋งŒ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์˜๊ตฌ์ ์œผ๋กœ DB์— ๋‚จ์•„์žˆ์–ด์•ผํ•œ๋‹ค.

์˜๊ตฌ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” DB์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์ปค๋ฐ‹๋œ ํŠธ๋žœ์žญ์…˜์ด DB์— ๋‚จ์•„์žˆ์–ด์•ผํ•œ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ํŠธ๋žœ์žญ์…˜์˜ ACID ์„ฑ์งˆ์ด๋‹ค.

 

์ด๋ ‡๋“ฏ์ด ํŠธ๋žœ์žญ์…˜์€ ACID ์„ฑ์งˆ์„ ์œ ์ง€ํ•ด์คŒ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ์ง€์ผœ์ค€๋‹ค.

 

๐Ÿง ์ •ํ•ฉ์„ฑ์ด ๋ญ์ง€?

๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๋ชจ์ˆœ ์—†์ด ์ผ๊ด€๋˜๊ฒŒ ์ผ์น˜ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค !

๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด์„  ์ •ํ•ฉ์„ฑ์ด ๋ณด์žฅ๋˜์–ด์•ผํ•œ๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ํŠธ๋žœ์žญ์…˜์˜ ์—ญํ• ๊ณผ ACID ์„ฑ์งˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค !

์ด์ œ ํŠธ๋žœ์žญ์…˜์ด ๋ญ”์ง€ ๊ฐ์ด ์˜ค๋Š”๊ฐ€?

ํŠธ๋žœ์žญ์…˜์€ ์•Œ๊ฒ ๋Š”๋ฐ ... ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ญ์ง€?

ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ์ง€์ผœ์ค„ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์žฅ์น˜์ด๋‹ค.

ํ•˜์ง€๋งŒ ํŠธ๋žœ์žญ์…˜๋ผ๋ฆฌ ์ ‘์ด‰ํ•˜๋‹ค ๋ณด๋ฉด ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋Œ€ํ‘œ์ ์œผ๋กœ ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ

 

1. dirty read

2. non repeatable read

3. phantom read

 

ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ์•„๋ณด์ž !

๊ณ ๋ คํ•ด๋ด์•ผ ํ•  ๋ฌธ์ œ์ ๋“ค

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ 3๊ฐ€์ง€์˜ ์ด์ƒ ํ˜„์ƒ๋“ค์„ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๋ฉด์„œ ๊ฒฉ๋ฆฌ๋ ˆ๋ฒจ์ด ์™œ ํ•„์š”ํ•œ ์ง€ ์ƒ๊ฐํ•ด๋ณด์ž !

์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ƒํ™ฉ๋“ค์€ ๋ชจ๋‘ ํŠธ๋žœ์žญ์…˜ A,B๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

dirty read

์‰ฝ๊ฒŒ ๋งํ•ด์„œ , ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ณ€ํ™”๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด๋‹ค.

ํŠธ๋žœ์žญ์…˜ A์™€ B๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋Š” ์ƒํ™ฉ์„ ์ƒ๊ฐํ•ด๋ณด์ž

ํŠธ๋žœ์žญ์…˜ A๋Š” x๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ณ  , ํŠธ๋žœ์žญ์…˜ B๋Š” y๋ฅผ ๋ณ€ํ™”์‹œํ‚จ๋‹ค.

์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ?

๋ญ”๊ฐ€ ์ด์ƒํ•˜์ง€ ์•Š์€๊ฐ€?

x์— ๋”ํ•œ y์˜ ๊ฐ’ 10์€ ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์ด๋‹ค.

์ฆ‰, ์œ„์—์„œ ๋งํ–ˆ๋‹ค์‹œํ”ผ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ณ€ํ™”๋ฅผ ์ฝ์–ด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๊ฒƒ์ด๋‹ค.

non repeatable read

๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ–ˆ์„ ๋•Œ ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

ํŠธ๋žœ์žญ์…˜ A๊ฐ€ x์˜ ๊ฐ’์„ ์ฒ˜์Œ ์ฝ์—ˆ์„ ๋•Œ๋Š” 50์ด์—ˆ๋‹ค.

๊ทธ ์‚ฌ์ด์— ํŠธ๋žœ์žญ์…˜ B๊ฐ€ x์˜ ๊ฐ’์„ 10์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๊ณ  , ๋‹ค์‹œ ํŠธ๋žœ์žญ์…˜ A๊ฐ€ x๋ฅผ ์ฝ์—ˆ์„ ๋•Œ๋Š” x์˜ ๊ฐ’์€ 10์ด ๋‚˜์˜จ๋‹ค.

๊ฐ’์€ x๋ผ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์กฐํšŒํ–ˆ์ง€๋งŒ ์กฐํšŒํ• ๋•Œ๋งˆ๋‹ค ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Š” ๊ณง isolation ๊ด€์ ์—์„œ ๋ฐ”๋žŒ์งํ•˜์ง€ ๋ชปํ•˜๋‹ค.

 

๐Ÿงisolation ์œ„์—์„œ ๋ฐฐ์› ๋Š”๋ฐ .. !

์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๋“ค์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋  ๋•Œ, ๊ฐ ํŠธ๋žœ์ ์…˜์€ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ)๋˜์–ด ์žˆ์–ด ์—ฐ์†์œผ๋กœ ์‹คํ–‰๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

phantom read

์—†๋˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.

์ด ์ƒํ™ฉ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋˜‘๊ฐ™์€ ์กฐ๊ฑด์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ๋Š” ๋ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜จ๋‹ค.

์ด ์—ญ์‹œ isolation ์›์น™์— ์œ„๋ฐฐ๋œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์†Œ๊ฐœํ•œ 3๊ฐ€์ง€๊ฐ€ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ œ์ ๋“ค์ด๋‹ค.

 

๐Ÿง ์•„ ๊ทธ๋Ÿผ ํ•ด๊ฒฐ์ฑ…์€ ๊ฐ„๋‹จํ•˜๋„ค์š” ! ๋‹ค ๋ง‰์•„๋ฒ„๋ฆฌ๋ฉด ๋˜๋Š” ๊ฑฐ์ฃ ?

 

๋ฌผ๋ก  ๊ทน๋„์˜ ์•ˆ์ •์ ์ธ ํ™˜๊ฒฝ์„ ์œ„ํ•ด์„œ๋ผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.

์ฝ”๋กœ๋‚˜ ๊ฑฐ๋ฆฌ๋‘๊ธฐ ๋‹จ๊ณ„๋ฅผ ๋– ์˜ฌ๋ ค๋ณด์ž

 

์‚ฌ์‹ค ์ฝ”๋กœ๋‚˜ ํ™•์ง„์ž๊ฐ€ ์•ˆ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋งค์šฐ ๊ฐ„๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒํ•˜๋ฉด ์ฝ”๋กœ๋‚˜ ํ™•์ง„์ž๋Š” ์•ˆ๋‚˜์™”์„ ๊ฒƒ์ด๋‹ค.

 

 

๊ทผ๋ฐ ํ˜„์‹ค์€ ๋‹ค๋ฅด๋‹ค.

๊ฑฐ๋ฆฌ๋‘๊ธฐ ๋‹จ๊ณ„์— ๋”ฐ๋ผ์„œ ํ—ˆ์šฉ๋˜๋Š” ๊ฒƒ์ด ์žˆ๊ณ  ๊ธˆ์ง€๋˜๋Š” ๊ฒƒ๋“ค์„ ์ •ํ•ด๋†“์•˜๋‹ค.

 

์™œ์ผ๊นŒ?

๋„ˆ๋ฌด๋‚˜ ๋‹น์—ฐํ•œ ์–˜๊ธฐ์ด์ง€๋งŒ, ๋ชจ๋“  ๊ฒƒ์„ ๊ธˆ์ง€์‹œ์ผœ ๋ฒ„๋ฆฌ๋ฉด ์‚ฌํšŒ๋Š” ๋Œ์•„๊ฐ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ค€์ˆ˜์‚ฌํ•ญ๋“ค์„ ์กฐ์ •ํ•จ์œผ๋กœ์จ ๊ด€๋ฆฌํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์—๋„ ๋น„์Šทํ•œ ๊ฐœ๋…์ด ์ ์šฉ๋œ๋‹ค.

๊ฒฉ๋ฆฌ๋ ˆ๋ฒจ์ด ์˜ฌ๋ผ๊ฐˆ ์ˆ˜๋ก ์•ˆ์ •์„ฑ์€ ๋†’์•„์ง€์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ €ํ•˜๋œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ •ํ•ด๋†“์€ ํ‘œ์ค€ SQL ๊ธฐ์ค€์„ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

SQL ํ‘œ์ค€ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ

SQL ํ‘œ์ค€์—์„œ๋Š” ์œ„์—์„œ ๋งํ•œ ๋ฌธ์ œ๋“ค์„ ์–ด๋””๊นŒ์ง€ ํ—ˆ์šฉํ•  ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒฉ๋ฆฌ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•˜์˜€๋‹ค.

 

Read uncommitted

Read uncommitted ๋ ˆ๋ฒจ์€ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ณ€ํ™”๋„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž, ํŠธ๋žœ์žญ์…˜1์ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ์ปค๋ฐ‹์„ ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์ด์ง€๋งŒ ํŠธ๋žœ์žญ์…˜2๋Š” ์ด๊ฒƒ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์‹ค์ƒ ๊ฒฉ๋ฆฌ๊ฐ€ ์•„์˜ˆ ์—†๋Š” ๊ฑฐ๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฏ€๋กœ ์ตœ์†Œํ•œ Read committed ์ด์ƒ ๋ ˆ๋ฒจ์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค.

 

Read uncommitted ๋ ˆ๋ฒจ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

- ์ด ๋ ˆ๋ฒจ์—์„œ๋Š” ๋งŽ์€ ๋ฌธ์ œ๋“ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€ํ‘œ์ ์œผ๋กœ Dirty Read ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

์œ„์—์„œ dirty read๋Š” ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ณ€ํ™”๋ฅผ ์ฝ์Œ์œผ๋กœ์จ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ํ•˜์˜€๋Š”๋ฐ Read uncommitted ์—์„œ ๊ทธ ๋ฌธ์ œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐœ์ƒํ•œ๋‹ค.

 

 

ํŠธ๋žœ์žญ์…˜ B๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ถ€ํ„ฐ Y๋ฅผ ์ฝ๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ B๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋„์ค‘ ํŠธ๋žœ์žญ์…˜A๊ฐ€ Y์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€๊ณ  B๋Š” ๊ฒฉ๋ฆฌ๋ ˆ๋ฒจ ํŠน์„ฑ์ƒ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

ํ•˜์ง€๋งŒ A๊ฐ€ ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค๋ฐ‹๋˜์ง€ ์•Š๊ณ  ๋กค๋ฐฑ๋œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

ํŠธ๋žœ์žญ์…˜B๊ฐ€ ์ฝ์€ Y์˜ ๋ฐ์ดํ„ฐ๋Š” ๋” ์ด์ƒ ์œ ํšจํ•œ ๊ฐ’์ด ์•„๋‹ˆ๊ฒŒ ๋œ๋‹ค.

์ด ํ˜„์ƒ์„ dirty read ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ฆ‰, ํŠธ๋žœ์žญ์…˜์—์„œ ์ฒ˜๋ฆฌํ•œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ํ˜„์ƒ์ด๋‹ค.

 

Read committed

Read committed ๋‹จ๊ณ„์—์„œ๋Š” ์ปค๋ฐ‹๋œ ๋ฐ์ดํ„ฐ๋งŒ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— dirty read ์™€ ๊ฐ™์€ ํ˜„์ƒ์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

์–ด๋–ป๊ฒŒ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ?

 

๋ฐ”๋กœ undo ์˜์—ญ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์คŒ์œผ๋กœ์จ ๋ฐฑ์—…๋œ ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฐ‘์— ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํŠธ๋žœ์žญ์…˜1์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ํ…Œ์ด๋ธ”์„ ๋ฐฑ์—…ํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ”์— ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜์˜๋œ๋‹ค.

ํŠธ๋žœ์žญ์…˜2์—์„œ๋Š” undo ์˜์—ญ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ์ปค๋ฐ‹๋œ ๋ฐ์ดํ„ฐ๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค !

 

 

Read committed ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

- ์ด ๋ ˆ๋ฒจ์—์„œ๋Š” non repeatable read ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๋ฌด์—‡์ด ๋ฌธ์ œ์ผ๊นŒ? ๋‹ค์‹œ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž

 

ํŠธ๋žœ์žญ์…˜B๊ฐ€ Y๋ฅผ ๋‘๋ฒˆ ์กฐํšŒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž

์ฒซ๋ฒˆ์งธ๋กœ ์กฐํšŒํ–ˆ์„ ๋•Œ๋Š” Y๊ฐ€ 50์ด ๋‚˜์™”์ง€๋งŒ ๋‘๋ฒˆ์งธ๋กœ ์กฐํšŒํ–ˆ์„ ๋• 70์ด ๋‚˜์™”๋‹ค.

์–ผํ• ์ƒ๊ฐํ•˜๋ฉด ํฌ๊ฒŒ ๋ฌธ์ œ๋ ๊ฒŒ ์—†์–ด๋ณด์ด๋Š” ๋ฐ , ์ด๋Š” ACID ์†์„ฑ ์ค‘ ๋…๋ฆฝ์„ฑ์— ์–ด๊ธ‹๋‚œ๋‹ค.

 

๐Ÿง ๋…๋ฆฝ์„ฑ ๋ฒŒ์จ ๋ช‡๋ฒˆ์งธ์•ผ ..

๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๋“ค์ด ์ˆ˜ํ–‰๋  ๋•Œ, ๊ฐ ํŠธ๋žœ์ ์…˜์€ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ)๋˜์–ด ์žˆ์–ด ์—ฐ์†์œผ๋กœ ์‹คํ–‰๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

Repeatable read

์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ํŠน์ • ํ–‰์„ ์กฐํšŒํ•  ๋•Œ ๋งˆ๋‹ค ํ•ญ์ƒ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜์˜ค๋„๋ก ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

Repeatable read ์—์„œ๋Š” ์ด๋ฅผ ํŠธ๋žœ์žญ์…˜ ID ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ถ€์—ฌ๋œ ํŠธ๋žœ์žญ์…˜ ID๋ณด๋‹ค ์ž‘์€ ํŠธ๋žœ์žญ์…˜ ๋ฒˆํ˜ธ์—์„œ ๋ณ€๊ฒฝํ•œ ๊ฒƒ๋งŒ ์ฝ๊ฒŒ ๋œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  undo ๋กœ๊ทธ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— DB์—”์ง„์—์„œ๋Š” ๋ถˆํ•„์š”ํ•œ undo ๋กœ๊ทธ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‚ญ์ œํ•œ๋‹ค.

 

Repeable read์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

- ์ด ๋ ˆ๋ฒจ์—์„œ๋Š” phantom read ๋ผ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด์ž

 

๋งจ์ฒ˜์Œ ๋ฐ์ดํ„ฐํ–‰์„ ์กฐํšŒํ–ˆ์„ ๋•Œ 1๊ฐœ๊ฐ€ ๋‚˜์™”์ง€๋งŒ ๋‚˜์ค‘์— ํ•œ๋ฒˆ ๋” ์กฐํšŒํ–ˆ์„ ๋•Œ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๋œ 2๊ฐ€ ๋‚˜์™”๋‹ค.

 

์ด๋Š” undo ํ…Œ์ด๋ธ”์— ์“ฐ๊ธฐ ์ž ๊ธˆ์„ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๊ฒฐ๊ตญ ํ˜„์žฌ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค.

(innoDB์—์„œ๋Š” ํŒฌํ…€ ๋ฆฌ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค!)

 

Serializable

ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ์‚ฌ์šฉ์ค‘์ด๋ฉด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์€ ์ผ์ฒด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ(์ •ํ•ฉ์„ฑ)์€ ๋†’์œผ๋‚˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ๋–จ์–ด์ง„๋‹ค.

 

๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

- ์—†์Œ

 

๋‹ค์‹œ ํ‘œ๋กœ ์ •๋ฆฌํ•ด๋ณด์ž

์ด์ฒ˜๋Ÿผ ๊ฒฉ๋ฆฌ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ํ—ˆ์šฉํ•˜๋Š” ์˜ค๋ฅ˜๋“ค์ด ์ •ํ•ด์ ธ์žˆ๋‹ค.

๊ฐ๊ฐ์˜ ์šฉ๋„์— ๋งž๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

๊ฒฐ๋ก 

๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ ํŠธ๋žœ์žญ์…˜๋ผ๋ฆฌ ๋™์‹œ์— ์‹คํ–‰๋˜๋‹ค ๋ณด๋ฉด ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฐ

SQL ํ‘œ์ค€์—์„œ ์ด๋ฅผ ์–ด๋””๊นŒ์ง€ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ฒฉ๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์ง€์ •ํ•ด๋†“์•˜๋‹ค.

 

๊ฐ์ž ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๊ฒฉ๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์„ ํƒํ•ด์•ผํ•œ๋‹ค.

 

์ฐธ๊ณ  ์ž๋ฃŒ

[MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level)

 

[MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level)

๐Ÿ“Ž ๊ธ€๋˜ 6๊ธฐ ํฌ์ŠคํŒ… 1. ๋ฏธ์น˜๋„๋ก ๋”์› ๋˜ 7์›”์˜ ํšŒ๊ณ  2. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•  ๋•Œ์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ 3. Spring AOP - (1) ํ”„๋ก์‹œ ํŒจํ„ด, ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด 4. [MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level) 5

zzang9ha.tistory.com

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€

 

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€

Transaction Isolation Level ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœ ์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋„์ž…ํ•˜๋ฉด ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ACID ์„ฑ์งˆ ์ค‘ Isolationโ€ฆ

tecoble.techcourse.co.kr

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํŠธ๋žœ์žญ์…˜์˜ ACID ์„ฑ์งˆ - ํ•˜๋‚˜๋ชฌ

 

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํŠธ๋žœ์žญ์…˜์˜ ACID ์„ฑ์งˆ - ํ•˜๋‚˜๋ชฌ

ํŠธ๋žœ์žญ์…˜์ด๋ž€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ์‹คํ–‰ ์œ ๋‹›์„ ๋งํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์€ ACID๋ผ๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ACID๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ์ผ์–ด๋‚˜๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜(transaction)์˜ ์•ˆ

hanamon.kr

ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation Level)์ด๋ž€?

 

ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation Level)์ด๋ž€?

 

nesoy.github.io

https://www.youtube.com/watch?v=bLLarZTrebU&t=397s

https://www.youtube.com/watch?v=sLJ8ypeHGlM&t=144s

 

+ Recent posts