Skip to content

Latest commit

ย 

History

History
76 lines (45 loc) ยท 3.96 KB

Interrupt.md

File metadata and controls

76 lines (45 loc) ยท 3.96 KB

์ธํ„ฐ๋ŸฝํŠธ(Interrupt)

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

  • CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ์ž…์ถœ๋ ฅ ํ•˜๋“œ์›จ์–ด ๋“ฑ์˜ ์žฅ์น˜๋‚˜ ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ์— ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ(micro processor)์—๊ฒŒ ์•Œ๋ ค ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ

ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ)

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

ex) ํƒ€์ด๋จธ,ํ‚ค๋ณด๋“œ,ํ”„๋ฆฐํ„ฐ ๋“ฑ์˜ I/O ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ, ๊ธฐ๊ณ„ ๊ณ ์žฅ ๋“ฑ

์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ)

  • ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋กœ,ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•˜์—ฌ Exception์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ํ•จ์ˆ˜ ์‚ฌ์šฉ์„ ์œ„ํ•ด ํ˜ธ์ถœํ•˜๋Š” Systeme Call์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

ex) 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, overflow, ์ž˜๋ชป๋œ ์ฃผ์†Œ ์ ‘๊ทผ , ํ”„๋กœ๊ทธ๋žจ ์ƒ์˜ ์˜ค๋ฅ˜ ๋“ฑ

<๊ด€๋ จ ์šฉ์–ด>

์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ

์‹ค์ œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฃจํ‹ด์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.์šด์˜์ฒด์ œ์˜ ์ฝ”๋“œ ์˜์—ญ์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ณ„๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋‚ด์šฉ์ด ์ด๋ฏธ ํ”„๋กœ๊ทธ๋žจ์ด ๋˜์–ด ์žˆ๋‹ค.

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

์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ์ฃผ์†Œ๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ๋ณ„๋กœ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”

์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๊ณผ์ •

  • CPU๋Š” ๋งค๋ฒˆ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๊ฐ€ ์ง€์ •ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ์†Œ์˜ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋‹ค์Œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์ด ์„ธํŒ…๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

  1. ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋ฅผ ์™„๋ฃŒํ•œ๋‹ค.
  2. CPU์˜ ํŠน์ˆ˜ ๋ ˆ์ง€์Šคํ„ฐ ์ค‘ ํ•˜์ด๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋งˆ์Šคํฌ ๋น„ํŠธ๋ฅผ ๋ณด๊ณ  ๋งˆ์Šคํฌ๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.
  3. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋ฅผ ์ฝ๋Š”๋‹ค.ISR ์ฃผ์†Œ ๊ฐ’์„ ์–ป๋Š”๋‹ค.ISR๋กœ ์ ํ”„ํ•œ๋‹ค. ์ด ๋•Œ, PC(Program Counter)๊ฐ’์„ ์ž๋™ ์ €์žฅ๋œ๋‹ค.
  4. ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
  5. ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  6. ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋‹ค ์ฒ˜๋ฆฌํ•˜๋ฉด, ์ €์žฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•œ๋‹ค.
  7. ISR ๋์— IRET ๋ช…๋ น์–ด์— ์˜ํ•ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•ด์ œ๋œ๋‹ค.
  8. IRET ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜๋ฉด, ์ €์žฅํ•œ PC ๊ฐ’์„ ๋ณต์›ํ•˜์—ฌ ์ด์ „ ์‹คํ–‰ ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ์™€ ํŠน๊ถŒ ๋ช…๋ น

CPU๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์—๋Š” ์ผ๋ฐ˜ ๋ช…๋ น๊ณผ ํŠน๊ถŒ ๋ช…๋ น์ด ์žˆ๋‹ค.

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

์‹œ์Šคํ…œ ์ฝœ(System Call)

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

I/O ๋ช…๋ น์€ ํŠน๊ถŒ ๋ช…๋ น์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” I/O๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” system call์„ ์ด์šฉํ•œ๋‹ค.

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์˜ I/O ๊ณผ์ •

  1. ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์—๊ฒŒ ์‹œ์Šคํ…œ ์ฝœ์„ ํ•œ๋‹ค.
  2. ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค.
  3. ์ œ์–ด๊ถŒ์ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  4. ์˜ฌ๋ฐ”๋ฅธ I/O ์ž‘์—…์ธ์ง€ ํ™•์ธ ํ›„, ์‹ค์ œ I/O๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋ฉด์ ‘ ์งˆ๋ฌธ

  1. ์ธํ„ฐ๋ŸฝํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  2. ๋‚ด๋ถ€/์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ์—๋Š” ์–ด๋– ํ•œ ์ƒํ™ฉ๋“ค์ด ์žˆ๋Š”๊ฐ€?
  3. ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌ ๊ณผ์ •์€?

์ฐธ๊ณ ์ž๋ฃŒ) -ย KOCW ๊ณต๊ฐœ๊ฐ•์˜ (2014-1. ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต - ๋ฐ˜ํšจ๊ฒฝ)