# [OS] ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜์™€ ์ฒ˜๋ฆฌ๊ณผ์ •
Study Repository

[OS] ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜์™€ ์ฒ˜๋ฆฌ๊ณผ์ •

by rlaehddnd0422

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

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

  • ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด CPU๋Š” ๋ช…๋ น์–ด ์ˆ˜ํ–‰๊ณผ์ •์—์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ ํ”„ํ•ด์„œ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋กœ ๊ฐ€์„œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(ISR)์ด ์‹คํ–‰๋˜๋ฉฐ ํŠน์ • ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํ›„ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ CPU๋กœ ๋Œ์•„์™€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‹ค์Œ ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•ด์š”.
์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ : ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ์ฃผ์†Œ๋ฅผ ๋ณ„๋„๋กœ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”
์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ : ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฃจํ‹ด 

 

๊ฒฐ๋ก  : ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ISR์ด๋ผ๋Š” ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋งก๊ธฐ๋ฉฐ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋งก๊ธฐ๋Š” ๋™์•ˆ CPU๊ฐ€ ๋†€์ง€์•Š๊ฒŒ ํ•จ์œผ๋กœ์จ CPU ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค!

 

์ธํ„ฐ๋ŸฝํŠธ ์ข…๋ฅ˜

์ธํ„ฐ๋ŸฝํŠธ๋Š” ํฌ๊ฒŒ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ, ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

 

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

์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ์ž…๋‹ˆ๋‹ค. ํŠธ๋žฉ(trap)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด(์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์Šค์Šค๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์„ ์„ธํŒ…ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฃผ๋กœ ์˜ˆ์™ธ ์ƒํ™ฉ, system call(I/O์žฅ์น˜์— ๋Œ€ํ•œ ์ ‘๊ทผ)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • CPU๋Š” ๋งค๋ฒˆ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํŠธ๋žฉ ๋‚ด๋ถ€์— ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์ด ์„ธํŒ…๋˜์–ด ์žˆ๋Š”์ง€ ๋จผ์ € ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

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

I/O ๋””๋ฐ”์ด์Šค ๋“ฑ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๊ฐ€ CPU์—๊ฒŒ ์–ด๋–ค ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ๋“ค๋ฉด ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ ์ฝ๊ธฐ ์ž‘์—…์— ์™„๋ฃŒํ•˜์˜€๊ฑฐ๋‚˜ ๋””์Šคํฌ์— ํŒŒ์ผ ์“ฐ๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒํ•œ ๊ฒฝ์šฐ

 

์ธํ„ฐ๋ŸฝํŠธ ๊ณผ์ •

 

์–ด๋–ค ํ”„๋กœ์„ธ์Šค A๊ฐ€ ์‹คํ–‰๋˜์–ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •์—์„œ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋ผ๋Š” ๋ช…๋ น์„ ๋ฐ›์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

  1. ํ”„๋กœ์„ธ์Šค A๋Š” ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜์—ฌ '์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(ํŠธ๋žฉ)'์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. (System call๋„ ํ•˜๋‚˜์˜ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์ทจ๊ธ‰๋œ๋‹ค.)
  2. CPU๋Š” ํ˜„์žฌ๊นŒ์ง€ ์ˆ˜ํ–‰์ค‘์ด๋˜ ์ƒํƒœ(๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ, ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’, ํ•˜๋“œ์›จ์–ด ์ƒํƒœ ๋“ฑ๋“ฑ)๋ฅผ PCB(Process Control Block)์— ์ €์žฅํ•˜๊ณ  PC(Program Counter)์— ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์—์„œ ISR ์ฃผ์†Œ๊ฐ’์„ ์–ป์–ด ISR๋กœ ์ ํ”„ํ•˜์—ฌ ์ฝ๊ธฐ ๋ฃจํ‹ด์„ ์‹คํ–‰
  4. ํ•ด๋‹น ์ผ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋Œ€ํ”ผ์‹œํ‚จ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด๋‘” PCB๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
  5. ISR์˜ ๋์— IRET ๋ช…๋ น์–ด์— ์˜ํ•ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
  6. ๋Œ€ํ”ผ ์‹œํ‚จ PC ๊ฐ’์„ ๋ณต์›ํ•˜์—ฌ ์ด์ „ ์œ„์น˜๋กœ ๋ณต์›ํ•˜์—ฌ ์ง„ํ–‰์ค‘์ด๋˜ ํ”„๋กœ์„ธ์Šค ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ  ์ž๋ฃŒ

 

[OS๊ธฐ์ดˆ] ์ธํ„ฐ๋ŸฝํŠธ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ

์ฃผ๋ณ€์žฅ์น˜์™€ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋Š” CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋‹ฌ๋ฆฌ ์ธํ„ฐ๋ŸฝํŠธ๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ธํ„ฐ๋ŸฝํŠธ, ์™œ ํ•˜๋Š”๊ฑฐ์š”? ๊ทธ ์ด์œ ๋Š” ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์ด CPU ๋ช…๋ น ์ˆ˜ํ–‰์†๋„๋ณด๋‹ค ํ˜„์ €ํžˆ ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด

velog.io

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Study Repository

rlaehddnd0422

ํ™œ๋™ํ•˜๊ธฐ