[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ๋ฆฌ, ์ฃผ๋ณ€์žฅ์น˜

1. ์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด์˜ ๊ด€๊ณ„

  1. ํ”„๋กœ์„ธ์„œ์—๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ž‘์—… ํ• ๋‹น ๋ฐ ๊ด€๋ฆฌ (ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ)
  2. ํ”„๋กœ๊ทธ๋žจ์˜ ํ”„๋กœ์„ธ์„œ ์‚ฌ์šฉ ์‹œ๊ฐ„ ๊ด€๋ฆฌ, ๋ณต์ˆ˜ ํ”„๋กœ๊ทธ๋žจ๊ฐ„ ์‚ฌ์šฉ ์‹œ๊ฐ„ ์กฐ์œจ  
  3. ํ”„๋กœ๊ทธ๋žจ์˜ ์š”์ฒญ์— ๋”ฐ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ํšŒ์ˆ˜, ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
  4. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ, ๋…ผ๋ฆฌ์ฃผ์†Œ -> ๋ฌผ๋ฆฌ์ฃผ์†Œ ๋ณ€ํ™˜
  5. ์ฃผ๋ณ€ ์žฅ์น˜ ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต (์žฅ์น˜๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ฆฌ)
  6. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ
  7. ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ, ๋””์Šคํฌ ๊ณต๊ฐ„ ๊ด€๋ฆฌ

 

์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋Š” ํฌ๊ฒŒ ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ๋ฆฌ, ์ฃผ๋ณ€์žฅ์น˜๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 

2. ํ”„๋กœ์„ธ์„œ 

์—ฐ์‚ฐ ์ˆ˜ํ–‰(์—ฐ์‚ฐ์žฅ์น˜)์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ์žฅ์น˜์˜ ๋™์ž‘์„ ์ œ์–ด(์ œ์–ด์žฅ์น˜)ํ•œ๋‹ค.

 

2.1. ๋ ˆ์ง€์Šคํ„ฐ 

  1. ํ•œ๋งˆ๋””๋กœ ๋งํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 
  2. ์ผ๋ฐ˜์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋‹ค๋ฅธ ์ ์€ ํ”„๋กœ์„ธ์„œ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ์ ์ด๋‹ค. 
  3. ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. 

 

์‚ฌ์šฉ์ž ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž ๋ถˆ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋‚˜๋‰˜์–ด์ง€๋Š”๋ฐ  ์‚ฌ์šฉ์ž ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๊ณ , ๋ถˆ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

 

์‚ฌ์šฉ์ž ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด C์–ธ์–ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 

register int num = 10;

 

์‚ฌ์šฉ์ž ๋ถˆ๊ฐ€์‹œ ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ, ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ, ๋ˆ„์‚ฐ๊ธฐ, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  1. ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ : ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  2. ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ : ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜จ ํ˜„์žฌ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  3. ๋ˆ„์‚ฐ๊ธฐ : ๊ณ„์‚ฐ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ 
  4. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ : ์ ‘๊ทผํ•  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ 
  5. ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ : ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ 

 

 

3. ๋ฉ”๋ชจ๋ฆฌ 

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

์œ„์˜ ์ด๋ฏธ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ์ธ๋ฐ, ์œ„๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๋Š” ๋Œ€์‹  ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ์ง€๊ณ , ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ๋‹ˆ๊นŒ ์šฉ๋Ÿ‰์ด ์ž‘์•„์ง„๋‹ค.

 

3.2. ์ฃผ ๊ธฐ์–ต์žฅ์น˜

  1. ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ˆ˜ํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค. 
  2. ์™œ๋ƒํ•˜๋ฉด ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ฃผ ๊ธฐ์–ต์žฅ์น˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ ๋˜์–ด์•ผํ•œ๋‹ค.
  3. ๋””์Šคํฌ์—์„œ ๊ฐ€์ ธ์˜ค๋ฉด ์•ˆ๋ ๊นŒ? ๋””์Šคํฌ ์ž…์ถœ๋ ฅ ๋ณ‘๋ชฉํ˜„์ƒ ๋•Œ๋ฌธ์ด๋‹ค. 
  4. CPU์˜ ์„ฑ๋Šฅ ๋ฐœ์ „์„ ๋””์Šคํฌ๊ฐ€ ์ซ“์•„๊ฐ€์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

3.3. ์บ์‹œ (L1, L2 ์บ์‹œ ๋“ฑ)

  1. ํ”„๋กœ์„ธ์„œ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋ฉฐ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋””์Šคํฌ์˜ ๋ณ‘๋ชฉํ˜„์ƒ์„ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉด ์บ์‹œ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ณ‘๋ชฉํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.
  2. ์บ์‹œ์˜ ์šฉ๋Ÿ‰์€ ๊ต‰์žฅํžˆ ์ž‘๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ? 
  3. ๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ, ์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ ๋•๋ถ„์— ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ 

  1. ์ฐธ์กฐํ•œ ์ฃผ์†Œ์™€ ์ธ์ ‘ํ•œ ์ฃผ์†Œ๋ฅผ ๋‹ค์‹œ ์ฐธ์กฐํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค. 
  2. Ex) ์ˆœ์ฐจ์  ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰

 

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

  1. ํ•œ ๋ฒˆ ์ฐธ์กฐํ•œ ์ฃผ์†Œ๋ฅผ ๊ณง ๋‹ค์‹œ ์ฐธ์กฐํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค.
  2. Ex) For ๋ฌธ

 

์ง€์—ญ์„ฑ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ๋„ ์ค‘์š”ํ•œ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 

for (int i=0; i<n; i++) {
	for(int j=0; j<n; j++) {
    	// arr[i][j] vs arr[j][i]
	}
}

์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ๊ทธ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ณดํ†ต ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ Cache Line์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

๋งŒ์•ฝ arr[j][i]๋กœ ์ฝ๊ฒŒ ๋˜๋ฉด Cache Line์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Cache ๋ฉ”๋ชจ๋ฆฌ์˜ ์žฅ์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์—†์ง€๋งŒ arr[i][j]๋กœ ์ฝ๊ฒŒ ๋˜๋ฉด arr[0][0]์—์„œ Cache Line์œผ๋กœ arr[0][0], arr[0][1].... ๋งŒํผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™”๊ธฐ ๋•Œ๋ฌธ์— Cache ๋ฉ”๋ชจ๋ฆฌ์˜ ์žฅ์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

3.4. ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ 

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

 

 

4. ์‹œ์Šคํ…œ ๋ฒ„์Šค

ํ”„๋กœ์„ธ์„œ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ, ์ฃผ๋ณ€์žฅ์น˜๋“ค์ด ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ†ต๋กœ๊ฐ€ ์‹œ์Šคํ…œ ๋ฒ„์Šค์ด๋‹ค. 

  1. PC๊ฐ€ ์ฝ์–ด์•ผํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ MAR์— ๊ธฐ๋ก์„ ํ•˜๋ฉด ์ฃผ์†Œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ์—๊ฒŒ ํ•ด๋‹น ์ฃผ์†Œ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค. 
  2. ๋™์‹œ์— ์ œ์–ด ์žฅ์น˜๊ฐ€ ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ, ๋ฉ”๋ชจ๋ฆฌ์—๊ฒŒ ํ•ด๋‹น ์ฃผ์†Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ๋‹ฌ๋ผ๋Š” ์ œ์–ด์˜ ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
  3. ๋ฉ”๋ชจ๋ฆฌ์— ๋ช…๋ น์–ด๊ฐ€ ์ธ์ถœ๋˜์–ด ๋ฐ์ดํ„ฐ ๋ฒ„์Šค๋ฅผ ํƒ€๊ณ ๊ฐ€ MBR์— ์ž…๋ ฅ๋œ๋‹ค.
  4. IR์— ๊ฒฐ๊ตญ ๋‹ค์Œ์— ์ˆ˜ํ–‰๋  ๋ช…๋ น์–ด๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค. 

5. ์ฃผ๋ณ€ ์žฅ์น˜์™€ ์šด์˜์ฒด์ œ 

  1. ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋Š” ์–ด๋– ํ•œ ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก OS์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. 
  2. ๋ณดํ†ต ๋ฒค๋”๋“ค์ด ์ง์ ‘ API๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ OS๋Š” ์ด๋ฅผ ํ†ตํ•ด ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ํ™œ์šฉํ•œ๋‹ค. 
  3. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์ด๋‹ค.

 

Reference

https://sites.google.com/view/hpclab/courses/operating-system

 

HPC Lab., KOREATECH - Operating System

Operating System (CSE132)

sites.google.com