๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ComputerScience ๐Ÿ“š/์šด์˜์ฒด์ œ

[OS] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ: ์ธํ„ฐ๋ŸฝํŠธ(Interrupts)

by dkswnkk 2022. 1. 30.

ํ•™์Šตํ•  ๊ต์žฌ

 

 

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

 

ํ†ต์ƒ์ ์ธ PC ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ

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

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

์ด์ œ ์‹œ์Šคํ…œ์˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ธก๋ฉด์— ์ค‘์ ์„ ๋‘์–ด ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์˜ ์ž‘๋™๋ฐฉ์‹์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ๊ด€ํ•ด ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € CPU์˜ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ณ , ๊ทธ๋‹ค์Œ ์ €์žฅ์žฅ์น˜ ๊ตฌ์กฐ ๋ฐ ์ž…์ถœ๋ ฅ ๊ตฌ์กฐ์— ๊ด€ํ•ด ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

(1) ์ธํ„ฐ๋ŸฝํŠธ(Interrupts) ์ •์˜ ๋ฐ ๊ฐœ์š”(Ovewview) 

์ผ๋ฐ˜์ ์ธ ์ปดํ“จํ„ฐ ์ž‘์—…(์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ)์„ ๊ณ ๋ คํ•ด๋ด…์‹œ๋‹ค. ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋Š” ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ ์ ˆํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ์ ์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ด๋Ÿฌํ•œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์„ ๊ฒ€์‚ฌํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„(ex: ํ‚ค๋ณด๋“œ์—์„œ ๋ฌธ์ž ์ฝ๊ธฐ) ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์žฅ์น˜์—์„œ ๋กœ์ปฌ ๋ฒ„ํผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์‹œ์ž‘ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜๋ฉด ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์—๊ฒŒ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋Š” ์ฝ๊ธฐ ์š”์ฒญ์ด๋ฉด ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์šด์˜์ฒด์ œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์ œ์–ด๋ฅผ ๋„˜๊น๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ž‘์—…์˜ ๊ฒฝ์šฐ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋Š” "์“ฐ๊ธฐ ์™„๋ฃŒ" ๋˜๋Š” "์žฅ์น˜ ์‚ฌ์šฉ ์ค‘"๊ณผ ๊ฐ™์€ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์—๊ฒŒ ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์•Œ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 ํ•˜๋“œ์›จ์–ด๋Š” ์–ด๋Š ์ˆœ๊ฐ„์ด๋“  ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด CPU์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—๋Š” ๋งŽ์€ ๋ฒ„์Šค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹œ์Šคํ…œ ๋ฒ„์Šค๋Š” ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ ์‚ฌ์ด์˜ ์ฃผ์š” ํ†ต์‹  ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.) ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ๋ชฉ์ ์œผ๋กœ๋„ ์‚ฌ์šฉ๋˜๋ฉฐ ์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด์˜ ์ƒํ˜ธ ์ž‘์šฉ ๋ฐฉ์‹์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

 CPU๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ๋˜๋ฉด, CPU๋Š” ํ•˜๋˜ ์ผ์„ ์ค‘๋‹จํ•˜๊ณ  ์ฆ‰์‹œ ๊ณ ์ •๋œ ์œ„์น˜๋กœ ์‹คํ–‰์„ ์˜ฎ๊น๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์ •๋œ ์œ„์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค ๋ฃจํ‹ด์ด ์œ„์น˜ํ•œ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ํ›„ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด, CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋˜์—ˆ๋˜ ์—ฐ์‚ฐ์„ ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„ ์ผ์ •์€ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์‹œ๊ฐ„ ์ผ์ •

 ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ฐ ์ปดํ“จํ„ฐ ์„ค๊ณ„๋Š” ์ž์‹ ์˜ ์ธํ„ฐ๋ŸฝํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ๊ณตํ†ต์ ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ ์ ˆํ•œ ์„œ๋น„์Šค ๋ฃจํ‹ด์œผ๋กœ ์ œ์–ด๋ฅผ ์ „๋‹ฌํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ „๋‹ฌ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ง์„ ์ ์ธ ๋ฐฉ๋ฒ•์€ ์ธํ„ฐ๋ŸฝํŠธ ์ •๋ณด๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๋ฃจํ‹ด์€ ์ด์–ด ์ธํ„ฐ๋ŸฝํŠธ ๊ณ ์œ ์˜ ํ•ธ๋“ค๋Ÿฌ(handler)๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋“ค์˜ ํ…Œ์ด๋ธ”์„ ๋Œ€์‹  ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฃผ๊ฐ„ ๋ฃจํ‹ด์„ ๋‘˜ ํ•„์š” ์—†์ด, ํ…Œ์ด๋ธ”์„ ํ†ตํ•˜์—ฌ ๊ฐ„์ ‘์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์ด ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํฌ์ธํ„ฐ๋“ค์˜ ํ…Œ์ด๋ธ”์€ ํ•˜์œ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.(์ฒซ 100๊ฐœ ์ •๋„์˜ ์œ„์น˜) ์ด๋“ค ์œ„์น˜์—๋Š” ์—ฌ๋Ÿฌ ์žฅ์น˜์— ๋Œ€ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋Š”๋ฐ, ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์š”์ฒญ๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์œ ๋ฐœํ•œ ์žฅ์น˜๋ฅผ ์œ„ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด ์ฃผ์†Œ์˜ ๋ฐฐ์—ด, ์ฆ‰ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ฃผ์–ด์ง„ ๊ณ ์œ ์˜ ์œ ์ผํ•œ ์žฅ์น˜ ๋ฒˆํ˜ธ๋กœ ์ƒ‰์ธ๋ฉ๋‹ˆ๋‹ค. Windows๋‚˜ UNIX ๊ฐ™์€ ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 ์ธํ„ฐ๋ŸฝํŠธ ๊ตฌ์กฐ๋Š” ๋˜ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ๋œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ์ด ์ •๋ณด๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์ด ์ฒ˜๋ฆฌ๊ธฐ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”(์˜ˆ๋ฅผ ๋“ค์–ด ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ)๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์€ ๋ฐ˜๋“œ์‹œ ๋ช…์‹œ์ ์œผ๋กœ ํ˜„์žฌ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ๋ณต๊ท€์ „์— ์ƒํƒœ๋ฅผ ๋ณต์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์„œ๋น„์Šคํ•œ ํ›„, ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์— ์ ์žฌํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ์ค‘๋‹จ๋˜์—ˆ๋˜ ์—ฐ์‚ฐ์ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

(2) ์ธํ„ฐ๋ŸฝํŠธ(Interrupts) ๊ตฌํ˜„

๊ธฐ๋ณธ ์ธํ„ฐ๋ŸฝํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. CPU ํ•˜๋“œ์›จ์–ด์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ(interrupt request line)์ด๋ผ๋Š” ์„ ์ด ์žˆ๋Š”๋ฐ, ์ด๋Š” ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด์˜ ์‹คํ–‰์„ ์™„๋ฃŒํ•  ๋•Œ๋งˆ๋‹ค CPU๊ฐ€ ์ด ์„ ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ฝ๊ณ  ์ด ๋ฒˆํ˜ธ๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฃจํ‹ด(interrupt-handler routine)์œผ๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ์ฃผ์†Œ์—์„œ ์‹คํ–‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋Š” ์ž‘์—… ์ค‘์— ๋ณ€๊ฒฝ๋  ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ ์›์ธ์„ ํ™•์ธํ•˜๊ณ , ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ƒํƒœ ๋ณต์›์„ ์ˆ˜ํ–‰ํ•˜๊ณ , return_from_interrupt ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ CPU๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ์ „ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.. ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ์— ์‹ ํ˜ธ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ(raise)์‹œํ‚ค๊ณ  CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํฌ์ฐฉ(catch)ํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋””์ŠคํŒจ์น˜(dispatch)ํ•˜๊ณ  ํ•ธ๋“ค๋Ÿฌ๋Š” ์žฅ์น˜๋ฅผ ์„œ๋น„์Šคํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ง€์›๋‹ˆ๋‹ค.(clear)

์•„๋ž˜ ์‚ฌ์ง„์€ ์ธํ„ฐ๋ŸฝํŠธ-๊ตฌ๋™ ์ž…์ถœ๋ ฅ ์‚ฌ์ดํด์„ ์š”์•ฝํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ - ๊ตฌ๋™ ๋ฐฉ์‹์˜ ์ž…์ถœ๋ ฅ ์‚ฌ์ดํด

 

 ๋ฐฉ๊ธˆ ์ •๋ฆฌํ•œ ๊ธฐ๋ณธ ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฒ•์€ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์„œ๋น„์Šคํ•  ์ค€๋น„๊ฐ€ ๋  ๋•Œ์™€ ๊ฐ™์€ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ์— CPU๊ฐ€ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์šด์˜์ฒด์ œ์—์„œ๋Š” ๋”์šฑ ์ •๊ตํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ค‘์š”ํ•œ ์ฒ˜๋ฆฌ ์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์—ฐ๊ธฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  2. ์žฅ์น˜์˜ ์ ์ ˆํ•œ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ํšจ์œจ์ ์œผ๋กœ ๋””์ŠคํŒจ์น˜ ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.
  3. ์šด์˜์ฒด์ œ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ์™€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ ์ ˆํ•œ ๊ธด๊ธ‰๋„๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค๋‹จ๊ณ„ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์ตœ์‹  ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์—์„œ ์ด ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ CPU ๋ฐ ์ธํ„ฐ๋ŸฝํŠธ ์ปจํŠธ๋กค๋Ÿฌ ํ•˜๋“œ์›จ์–ด์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

 ๋Œ€๋ถ€๋ถ„์˜ CPU์—๋Š” 2๊ฐœ์˜ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ ๋งˆ์Šคํฌ ๋ถˆ๊ฐ€๋Šฅ ์ธํ„ฐ๋ŸฝํŠธ(nonmaskable interrupt)์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ๋งˆ์Šคํ‚น ๊ฐ€๋Šฅ(maskable)์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ์ฃผ์š”ํ•œ ๋ช…๋ น ์‹œํ€€์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— CPU์— ์˜ํ•ด ๊บผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งˆ์Šคํ‚น ๊ฐ€๋Šฅํ•œ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

 ์•„๋ž˜ ๊ทธ๋ฆผ์€ Intel ํ”„๋กœ์„ธ์„œ์˜ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ์„ค๊ณ„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋งˆ์Šคํฌ ๋ถˆ๊ฐ€๋Šฅํ•œ 0์—์„œ 31๊นŒ์ง€์˜ ์ด๋ฒคํŠธ๋Š” ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜ ์กฐ๊ฑด์„ ์•Œ๋ฆฌ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํฌ ๊ฐ€๋Šฅํ•œ 32์—์„œ 255๊นŒ์ง€์˜ ์ด๋ฒคํŠธ๋Š” ์žฅ์น˜๊ฐ€ ์ƒ์„ฑํ•œ ์ธํ„ฐ๋ŸฝํŠธ ๊ฐ™์€ ๊ทธ ์™ธ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Intel ์ฒ˜๋ฆฌ๊ธฐ ์ด๋ฒคํŠธ-๋ฒกํ„ฐ ํ…Œ์ด๋ธ”

 ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฒ•์€ ๋˜ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์šฐ์„ ์ˆœ์œ„ ๋ ˆ๋ฒจ(interrupt priority level)์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ ˆ๋ฒจ์„ ํ†ตํ•ด CPU๋Š” ๋ชจ๋“  ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋งˆ์Šคํ‚นํ•˜์ง€ ์•Š๊ณ ๋„ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์—ฐ๊ธฐํ•  ์ˆ˜ ์žˆ๊ณ , ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์‹คํ–‰์„ ์„ ์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ตœ์‹  ์šด์˜์ฒด์ œ์—์„œ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ๊ฐ€์žฅ ๊ธด๊ธ‰ํ•œ ์ž‘์—…์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์‹  ์ปดํ“จํ„ฐ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์šฐ์„ ์ˆœ์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ์ฒ˜๋ฆฌ์— ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ์ข‹๊ฒŒ ํ•˜๋ ค๋ฉด ํšจ์œจ์ ์ธ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€