๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ•™์Šต ๊ธฐ๋ก (Learning Logs)/Today I Learned

๐Ÿ“˜ 6์žฅ. ์ œํ•œ์  ์ง์ ‘ ์‹คํ–‰ ์›๋ฆฌ

๐Ÿ“˜ 6์žฅ. ์ œํ•œ์  ์ง์ ‘ ์‹คํ–‰ ์›๋ฆฌ

ํ•ต์‹ฌ ์ฃผ์ œ: OS๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ์‹คํ–‰ํ•˜๋˜, ์ œํ•œ๋œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ์›๋ฆฌ.

  • 6.1 ์ œํ•œ์  ์ง์ ‘ ์‹คํ–‰:
    CPU๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ์‹คํ–‰ํ•˜์ง€๋งŒ, ์ œํ•œ๋œ ์ƒํ™ฉ์—์„œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์Šคํ…œ ์ž์›์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ๋Š” ์ปค๋„๋กœ ์ „ํ™˜๋˜์–ด์•ผ ํ•จ.
  • 6.2 ๋ฌธ์ œ์ : ์ œํ•œ๋œ ์—ฐ์‚ฐ:
    ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ **ํŠน์ • ๋ช…๋ น์–ด(CPU ๋ช…๋ น์–ด)**๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์˜ˆ: ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด, privileged instruction ๋“ฑ.
  • 6.3 ๋ฌธ์ œ์ : ํ”„๋กœ์„ธ์„œ ๊ฐ„ ์ „ํ™˜:
    ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์‹œ์Šคํ…œ ํ˜ธ์ถœ(syscall)์ด๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.
  • 6.4 ๋ณ‘ํ–‰์„ฑ ๊ฑฑ์ •:
    ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋ฉด ์ž์› ์ถฉ๋Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋ณ‘ํ–‰ ์ œ์–ด๊ฐ€ ํ•„์š”.-> ๋ฝ(lock) ๊ธฐ๋ฒ•
  • 6.5 ์š”์•ฝ:
    ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ์‹คํ–‰ํ•˜๋˜, ์ œ์–ด๊ถŒ์€ ํ•ญ์ƒ OS์— ์žˆ์Œ. ํ•ต์‹ฌ์€ ์ œํ•œ๋œ ๋ฐฉ์‹์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ.

 

๋”๋ณด๊ธฐ

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

 

์ œ์–ด๊ถŒ์„ ์žƒ์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ํ•˜๋“œ์›จ์–ด์™€ ์šด์˜์ฒด์ œ์˜ ์ง€์›์ด ํ•„์ˆ˜์ ์ด๋‹ค.

์šด์˜์ฒด์ œ๋Š” ์ž‘์—…์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค


CPU ์‹œ๊ฐ„์„ ๋‚˜๋ˆ„์–ด ์”€

CPU๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์šด์˜์ฒด์ œ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๋„๋ก ๋ฌผ๋ฆฌ์ ์ธ CPU๋ฅผ ๊ณต์œ ํ•œ๋‹ค

ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž ์‹œ ๋™์•ˆ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋˜ ์ž ๊น ์‹คํ–‰ํ•˜๊ณ , ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์†ํ•ด์„œ ์ž ๊น์”ฉ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์ฒ˜๋Ÿผ CPU ์‹œ๊ฐ„์„ ๋‚˜๋ˆ„์–ด ์”€์œผ๋กœ์จ ๊ฐ€์ƒํ™”๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์šด์˜์ฒด์ œ์˜ ๋ชฉํ‘œ

์ œ์–ด๊ถŒ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ

 

1) ์„ฑ๋Šฅ ์ €ํ•˜

์‹œ์Šคํ…œ์— ๊ณผ์ค‘ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ๊ฐ€์ƒํ™”๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

2) ์ œ์–ด ๋ฌธ์ œ

CPU์— ๋Œ€ํ•œ ํ†ต์ œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€?

 

์šด์˜์ฒด์ œ์˜ ์ž…์žฅ: ์ž์› ๊ด€๋ฆฌ์˜ ์ฑ…์ž„์ž

 

์šด์˜์ฒด์ œ๊ฐ€ ์ œ์–ด๊ถŒ์„ ์ƒ์‹คํ•˜๋ฉด, ํ”„๋กœ์„ธ์„œ๋Š”

  • ์˜์›ํžˆ ์‹คํ–‰์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๊ณ 
  • ์ปดํ“จํ„ฐ๋ฅผ ์žฅ์•…ํ•˜๊ฑฐ๋‚˜
  • ์ ‘๊ทผํ•ด์„œ๋Š” ์•ˆ ๋˜๋Š” ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค

 


6.1 ์ œํ•œ์  ์ง์ ‘ ์‹คํ–‰: Limited Direct Execution

์ง์ ‘ ์‹คํ–‰: ํ”„๋กœ๊ทธ๋žจ์„ CPU ์ƒ์—์„œ ๊ทธ๋ƒฅ ์ง์ ‘ ์‹คํ–‰

์ง์ ‘ ์‹คํ–‰์˜ ์žฅ์ : ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด CPU ์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ธฐ๋ณธ์ ์ธ ์ง์ ‘ ์‹คํ–‰ ํ”„๋กœํ† ์ฝœ (์ œํ•œ์ด ์—†๋Š”)

 

์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ์‹คํ–‰ ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์— ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๊ณ 
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋ฉฐ
  • ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๋””์Šคํฌ์—์„œ ํƒ‘์žฌํ•˜๊ณ 
  • ์ง„์ž…์ (main)์„ ์ฐพ์•„ ๊ทธ ์ง€์ ์œผ๋กœ ๋ถ„๊ธฐํ•˜์—ฌ
  • ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰

 

CPU์—์„œ ์ง์ ‘ ์‹คํ–‰์‹œํ‚ค๋ฉด ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

1) ์šด์˜์ฒด์ œ๊ฐ€ ์›์น˜์•Š๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ๋ง‰๋Š”๊ฐ€? ์–ด๋–ป๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

2) ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์‹œ, ์šด์˜์ฒด์ œ๋Š” ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•˜๋Š”๊ฐ€?

 


6.2 ๋ฌธ์ œ์ : ์ œํ•œ๋œ ์—ฐ์‚ฐ

 

ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธธ ์›ํ•œ๋‹ค๋ฉด?

  • ๋””์Šคํฌ ์ž…์ถœ๋ ฅ ์š”์ฒญ
  • CPU ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•œ ์ถ”๊ฐ€ํ• ๋‹น ์š”์ฒญ

์˜ˆ) ํŒŒ์ผ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์ „์— ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””์Šคํฌ์— ๋Œ€ํ•˜์—ฌ ์ž…์ถœ๋ ฅํ•˜๋Š” ์ผ์„ ์ œํ•œํ•˜์ง€ ์•Š์œผ๋ฉด

ํ”„๋กœ์„ธ์Šค๋Š” ์ „์ฒด ๋””์Šคํฌ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— -> ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.

 


ํŠน์ˆ˜ ์—ฐ์‚ฐ ์ œํ•œ ํ•˜๋Š” ๋ฐฉ๋ฒ•: ๋ชจ๋“œ์˜ ๋ถ„๋ฆฌ

 

1) ์‚ฌ์šฉ์ž ๋ชจ๋“œ(user mode)

์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์ œํ•œ๋œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ฉด -> ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์—†๋„๋ก ์„ค์ •ํ•œ๋‹ค.

์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ•˜๋ฉด ํ”„๋กœ์„ธ์„œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค

 

2) ์ปค๋„ ๋ชจ๋“œ(kernel mode)

์‚ฌ์šฉ์ž ๋ชจ๋“œ์™€ ๋Œ€๋น„๋˜๋Š” ๋ชจ๋“œ๋กœ์„œ ์šด์˜์ฒด์ œ์˜ ์ค‘์š”ํ•œ ์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค.

์ด ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋Š” ๋ชจ๋“  ํŠน์ˆ˜ํ•œ ๋ช…๋ น์–ด๋ฅผ ํฌํ•จํ•˜์—ฌ ์›ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””์Šคํฌ๋ฅผ ์ฝ๊ธฐ์™€ ๊ฐ™์€ ํŠน๊ถŒ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

์ด๋Ÿฐ ์ œํ•œ ์ž‘์—…์˜ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๊ฑฐ์˜ ๋ชจ๋“  ํ˜„๋Œ€ ํ•˜๋“œ์›จ์–ด๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์‹œ์Šคํ…œ ์ฝœ์„ ์ œ๊ณตํ•œ๋‹ค

 

์šด์˜์ฒด์ œ๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์‹œ์Šคํ…œ ์ฝœ์„ ์ œ๊ณตํ•œ๋‹ค

์‹œ์Šคํ…œ ์ฝœ

  • ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ‘๊ทผ
  • ํ”„๋กœ ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ์ œ๊ฑฐ
  • ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€์˜ ํ†ต์‹ 
  • ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์Šคํ…œ ์ฝœ์„ ์‹คํ–‰ํ•˜๋Š”๋ฒ• : trap

1.trap

trap: ์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ

์ปค๋„ ์•ˆ์œผ๋กœ ๋ถ„๊ธฐ, ๋™์‹œ์— ํŠน๊ถŒ ์ˆ˜์ค€์„ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ƒํ–ฅ ์กฐ์ •ํ•œ๋‹ค.

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

 

2. ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ์ปค๋„ ์Šคํƒ(kernel stack) ์— ์ €์žฅ

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ
  • ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ

3. return-from-trap

์ปค๋„ ๋ชจ๋“œ -> ์‚ฌ์šฉ์ž ๋ชจ๋“œ ๋กœ ๋ณ€๊ฒฝ

์™„๋ฃŒ๋˜๋ฉด ์šด์˜์ฒด์ œ๋Š” return-from-trap ํŠน์ˆ˜ ๋ช…๋ น์–ด์„ ํ˜ธ์ถœ

ํŠน๊ถŒ ์ˆ˜์ค€์„ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ๋‹ค์‹œ ํ•˜ํ–ฅ ์กฐ์ •ํ•˜๋ฉด์„œ ํ˜ธ์ถœํ•œ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.

 

ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค์˜ ํ•„์š”ํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์„ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

 

์šด์˜์ฒด์ œ๊ฐ€ return-from-trap ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ

์ปค๋„ ์Šคํƒ(kernel stack)์—์„œ ํŒ (pop) -> ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค

์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋กœ ๋ฆฌํ„ดํ•œ๋‹ค

 

 


trap์ด ์šด์˜์ฒด์ œ ์ฝ”๋“œ์˜ ์–ด๋””๋ฅผ ์‹คํ–‰ํ• ์ง€ ์–ด๋–ป๊ฒŒ ์•„๋Š๋ƒ?

ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ„๊ธฐํ•  ์ฃผ์†Œ๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์—†๋‹ค.

์ฃผ์†Œ๋ฅผ ๋ช…์‹œํ•œ๋‹ค -> ์ปค๋„ ๋‚ด๋ถ€์˜ ์›ํ•˜๋Š” ์ง€์ ์„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค

 

์ปค๋„์ด ์ž„์˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ ‘๊ทผ ๊ถŒํ•œ ๊ฒ€์‚ฌ๊ฐ€ ๋๋‚œ ํ›„ ๋ถ„๊ธฐํ•ด์•ผ ํ•œ๋‹ค

 

์ปค๋„์€ ๋ถ€ํŒ… ์‹œ์— ํŠธ๋žฉ ํ…Œ์ด๋ธ”(trap table) ์„ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ํ†ต์ œํ•œ๋‹ค

์ปดํ“จํ„ฐ๊ฐ€ ๋ถ€ํŠธ๋  ๋•Œ๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋“œ์›จ์–ด๋ฅผ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ํ•˜๋“œ ๋””์Šคํฌ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
  • ํ‚ค๋ณด๋“œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜๋ฉด

์šด์˜์ฒด์ œ๋Š” ํŠน์ • ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด์—๊ฒŒ ํŠธ๋žฉ ํ…Œ์ด๋ธ”(trap table)์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ค€๋‹ค.

ํŠธ๋žฉ ํ…Œ์ด๋ธ”(trap table)์—๋Š” ํ•˜๋“œ์›จ์–ด๋Š” ์–ด๋–ค ์ž‘์—…์„ ํ•ด์•ผ ํ• ์ง€ (์ฆ‰, ์–ด๋Š ์ฝ”๋“œ๋กœ ๋ถ„๊ธฐํ•˜์—ฌ ์‹คํ–‰ํ• ์ง€) ์•Œ ์ˆ˜ ์žˆ๋‹ค

์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ดˆ๊ธฐ ์ž‘์—…์ค‘ ํ•˜๋‚˜๋Š” ํ•˜๋“œ์›จ์–ด์—๊ฒŒ ์˜ˆ์™ธ ์‚ฌ๊ฑด์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์ผ์ด๋‹ค.

 

 

 

ํ”„๋กœ์„ธ์Šค๋Š” ์ปค๋„ ์Šคํƒ์„ ๊ฐ์ž ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ• ๋•Œ

ํ•˜๋“œ์›จ์–ด์— ์˜ํ•ด ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์™€ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€  ์ปคํ„ธ ์Šคํƒ์— ์ €์žฅ๋˜๊ณ  ๋ณต์›๋œ๋‹ค.

 

 

1-1) ๋ถ€ํŒ… ์‹œ: ์ปค๋„ ๋ชจ๋“œ

์ปค๋„์€ ํŠธ๋žฉ ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  CPU๋Š” ๋‚˜์ค‘์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

์ปค๋„์€ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•œ๋‹ค

 

1-2) ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „: ์ปค๋„ ๋ชจ๋“œ

์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋…ธ๋“œ๋ฅผ ํ• ๋‹นํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž…

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น

 

2) ํ•˜๋“œ์›จ์–ด(์ปค๋„ ๋ชจ๋“œ-> ์‚ฌ์šฉ์ž ๋ชจ๋“œ)

์ปค๋„ ์Šคํƒ์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ๋ณต์›

์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ์ด๋™

 

3) ์‚ฌ์šฉ์ž ๋ชจ๋“œ trap ์‹œ์Šคํ…œ ์ฝœ ํ˜ธ์ถœ

CPU๋ฅผ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์„ ์‹œ์ž‘

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜๋ฉด ์šด์˜์ฒด์ œ๋กœ ๋‹ค์‹œ trap: ์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ

 

4) ํ•˜๋“œ์›จ์–ด(์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ)

์ปค๋„ ์Šคํƒ์— ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด ์ €์žฅ

trap ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ถ„๊ธฐ

 

5) ์ปค๋„๋ชจ๋“œ

์šด์˜์ฒด์ œ๋Š” ์‹œ์Šคํ…œ ์ฝœ์„ ์ฒ˜๋ฆฌ

return-from-trap ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์ œ์–ด๋ฅผ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋„˜๊ธด๋‹ค.

 

6) ํ•˜๋“œ์›จ์–ด(์ปค๋„ ๋ชจ๋“œ-> ์‚ฌ์šฉ์ž ๋ชจ๋“œ)

์ปค๋„ ์Šคํƒ์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ๋ณต์›

์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ์ด๋™

 

7) ์‚ฌ์šฉ์ž ๋ชจ๋“œ: ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ

ํ”„๋กœ์„ธ์Šค๋Š” ์ดํ›„ ์ž์‹ ์˜ ํ•  ์ผ์„ ๋‹คํ•˜๋ฉด main()์—์„œ ๋ฆฌํ„ดํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ์‹œํ‚ฌ ๋•Œ exit() ->trap: ์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ 

 

8) ์ปค๋„ ๋ชจ๋“œ

ํ”„๋กœ์„ธ์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜

ํ”„๋กœ์„ธ์„œ ๋ชฉ๋ก ์ œ๊ฑฐ

 


6.3 ๋ฌธ์ œ์ : ํ”„๋กœ์„ธ์„œ ๊ฐ„ ์ „ํ™˜

์šด์˜์ฒด์ œ๋Š” ์–ด๋–ป๊ฒŒ CPU๋ฅผ ๋‹ค์‹œ ํš๋“ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

์šด์˜์ฒด์ œ๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•  ์ผ์ธ์ง€, ๋ฉˆ์ถ”๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ผ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.

CPU์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘ == ์šด์˜์ฒด์ œ๋Š” ๋ฉˆ์ถฐ์žˆ๋‹ค.

 


1) ํ˜‘์กฐ ๋ฐฉ์‹ : ์‹œ์Šคํ…œ ์ฝœ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ

 

2) ๋น„ํ˜‘์กฐ ๋ฐฉ์‹ : ์šด์˜์ฒด์ œ๊ฐ€ ์ „๊ถŒ์„ ํ–‰์‚ฌ


 

ํ˜‘์กฐ ๋ฐฉ์‹ : ์‹œ์Šคํ…œ ์ฝœ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ(yield ์‹œ์Šคํ…œ ์ฝœ)

์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋“ค์ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ํ–‰๋™ํ•  ๊ฒƒ์œผ๋กœ ์‹ ๋ขฐํ•œ๋‹ค.

์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๊ฒฐ์ •์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก,

์˜ค๋žซ๋™์•ˆ ์‹คํ–‰ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€์ฃผ๊ธฐ์ ์œผ๋กœ CPU๋ฅผ ํฌ๊ธฐํ•  ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

 

  • ์‹œ์Šคํ…œ ์ฝœ์ด ํ˜ธ์ถœ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค
  • ๋ถˆ๋ฒ•์ ์ธ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค -> trap ํ˜ธ์ถœ
  • CPU์˜ ์ œ์–ด๊ถŒ์„ ๋‹ค์‹œ ํš๋“ํ•œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋Š” ์–ด๋–ป๊ฒŒ CPU๋ฅผ ํฌ๊ธฐํ•  ์ˆ˜ ์žˆ์„๊นŒ?

ํ”„๋กœ์„ธ์Šค๋Š” ์ž์ฃผ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜์—ฌ CPU์˜ ์ œ์–ด๊ถŒ์„ ์šด์˜์ฒด์ œ์—๊ฒŒ ๋„˜๊ฒจ์ค€๋‹ค.

yield ์‹œ์Šคํ…œ ์ฝœ: ์šด์˜์ฒด์ œ์—๊ฒŒ ์ œ์–ด๋ฅผ ๋„˜๊ฒจ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค ์˜ˆ์‹œ

  • ํŒŒ์ผ์„ ์—ด๊ณ  ์ฝ๋Š” ์ž‘์—…
  • ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์‹ 
  • ์ƒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑ

๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ๋ฒ•์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋ฒ•์ ์ธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์šด์˜์ฒด์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์ธ ํ–‰์œ„๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์šด์˜์ฒด์ œ์—๊ฒŒ ์ œ์–ด๊ฐ€ ๋„˜์–ด๊ฐ„๋‹ค.

 

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด

  • ์–ด๋–ค ์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜
  • ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด

์šด์˜์ฒด์ œ๋กœ์˜ trap: ์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ 

์šด์˜์ฒด์ œ๋Š” ๋‹ค์‹œ CPU๋ฅผ ํš๋“ํ•˜์—ฌ ํ•ด๋‹น ํ–‰์œ„๋ฅผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


 

๋น„ํ˜‘์กฐ ๋ฐฉ์‹ : ์šด์˜์ฒด์ œ๊ฐ€ ์ „๊ถŒ์„ ํ–‰์‚ฌ -> ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ(timer interrupt)

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜

์‹ค์ˆ˜๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„ ์šด์˜์ฒด์ œ์—๊ฒŒ ์ œ์–ด๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š์„ ๊ฒฝ์šฐ

ํ•˜๋“œ์›จ์–ด์˜ ์ถ”๊ฐ€์ ์ธ ๋„์›€ ์—†์ด๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ๊ฑฐ์˜ ์—†๋‹ค.

 

ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ(timer interrupt)

์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋Š” ์ค‘๋‹จ๋˜๊ณ 

๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ ์šด์˜ ์ฒด์ œ์˜ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ(interrupt handler)๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์šด์˜์ฒด์ œ๋Š” CPU ์ œ์–ด๊ถŒ์„ ๋‹ค์‹œ ์–ป๊ฒŒ ๋˜๊ณ  ์ž์‹ ์ด ์›ํ•˜๋Š” ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜„์žฌ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์ž‘์—… ๋“ฑ์ด ํ•ด๋‹น๋œ๋‹ค.

 

๋ถ€ํŒ… ๊ณผ์ • ์ง„ํ–‰ ์ค‘์— ์šด์˜์ฒด์ œ๋Š” ํƒ€์ด๋จธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

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

๋ถ€๋‹ด ์—†์ด ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํƒ€์ด๋จธ๋Š” ํŠน์ • ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋Œ ์ˆ˜๋„ ์žˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ํ•˜๋“œ์›จ์–ด ์—ญํ• 

์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ ์ค‘์ด๋˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅ

return-from-trap ๋ช…๋ น์–ด๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

๋‹ค์–‘ํ•œ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์ปค๋„ ์Šคํƒ์— ์ €์žฅ๋˜๊ณ 

return-from-trap ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ ๋ณต์›๋œ๋‹ค

 


1) ์Šค์ผ€์ค„๋Ÿฌ(scheduler)

 

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•  ์ง€, ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•  ์ง€๋ฅผ ๊ฒฐ์ •

 

2) ๋ฌธ๋งฅ ๊ตํ™˜(context switch)

๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ๋กœ ์ „ํ™˜ํ•˜๊ธฐ

 


 

 

 

(1) ์ปค๋„ ์Šคํƒ์— ์ €์žฅ

์šด์˜์ฒด์ œ๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ์ปค๋„ ์Šคํƒ์— ์ €์žฅ

์ €์ˆ˜์ค€ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ

  • ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ
  • PC ์ €์žฅ
  • ํ˜„์žฌ ์ปค๋„ ์Šคํƒ ํฌ์ธํ„ฐ ์ €์žฅ

(2) ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์„œ ๋ฐ์ดํ„ฐ ์ค€๋น„

์šด์˜์ฒด์ œ๋Š” ๊ณง ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค์˜ ์ปค๋„ ์Šคํƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋ณต์›

 

  • ๊ณง ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ
  • ๊ณง ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค PC๋ฅผ ๋ณต์›
  • ์ปค๋„ ์Šคํƒ์„ ๊ณง ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค์˜ ์ปค๋„ ์Šคํƒ์œผ๋กœ ์ „ํ™˜

(3) context switch

์šด์˜์ฒด์ œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋œ ํ”„๋กœ์„ธ์Šค ๋ฌธ๋งฅ์—์„œ ์ „ํ™˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค ๋ฌธ๋งฅ์œผ๋กœ ๋ฆฌํ„ดํ•  ์ˆ˜ ์žˆ๋‹ค

 

(4) return-from-trap ๋ช…๋ น์–ด

์šด์˜์ฒด์ œ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ return-from-trap ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด -> ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.

๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๋ฆฌํ„ดํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ ์‹คํ–‰์„ ๋‹ค์‹œ ์‹œ์ž‘

 

 

 

 

 

6.4 ๋ณ‘ํ–‰์„ฑ ๊ฑฑ์ •

 

๋งŒ์•ฝ ์‹œ์Šคํ…œ ์ฝœ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„์ค‘์— ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”๊ฐ€?

ํ•˜๋‚˜์˜ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์„ ๋•Œ ๋‹ค๋ฅธ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ƒ๊ธฐ๋Š”๊ฐ€?

์ปค๋„์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋” ์–ด๋ ค์›Œ์ง€๋Š” ์žƒ์€ ์•„๋‹Œ๊ฐ€?

 

๋ฝ(lock) ๊ธฐ๋ฒ•

->ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ถˆ๋Šฅํ™”

6.5 ์š”์•ฝ

 

CPU ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.

์šด์˜์ฒด์ œ๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด๋„,

์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค์˜ ์ž‘์—…์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋“œ์›จ์–ด๋ฅผ ์…‹ํŒ…ํ•ด์•ผ ํ•œ๋‹ค

ํŠน๋ณ„ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ์ฆ‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ๋…์ ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•  ๋•Œ๋งŒ ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐœ์ž…ํ•œ๋‹ค.

 

1. ๋ถ€ํŒ…ํ•  ๋•Œ ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์…‹ํŒ…

2. ์ธํ„ฐ๋ŸฝํŠธ ํƒ€์ด๋จธ๋ฅผ ์‹œ์ž‘์‹œํ‚ด

3. ์ œํ•œ๋œ ๋ชจ๋“œ์—์„œ๋งŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•จ