[์ด์์ฒด์ ] CPU Interrupt
Interrupt handler
- ์ธํฐ๋ฝํธ๋ฅผ ํด๊ฒฐํ๋ func
- ISR (interrupt service routine)
- ์ธํฐ๋ฝํธ ๋ฐ์! -> ์ด์์ฒด์ ๊ฐ ์ํ๋จ
โญ๏ธ ์ธํฐ๋ฝํธ์ 3๊ฐ์ง ์ข ๋ฅ
1) Interrupt
- Hardware interrupt
- asynchronous - ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋๋ค.
- CPU๋ ์ด ์์ (์ธํฐ๋ฝํธ)๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ค -> ๋ค๋ฅธ ์์ ์ํ -> ๋ค์ ๋์์ด == acync
- ex) ํค๋ณด๋ ์ธํฐ๋ฝํธ, timer interrupt
2) Trap
- Software interrupt
- Application process
- Sync ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- ex) System Call
-> App์ด ๋์คํฌ์์ ๋ฐ์ดํฐ ์ฝ์ด๋ฌ๋ผ๊ณ OS์๊ฒ ๋์ ์์ฒญ (์บก์ํ, ์ธํฐํ์ด์ค ์ธก๋ฉด)
-> OS๊ฐ ์ฌ ๋ ๊น์ง App์ ๊ธฐ๋ค๋ ค์ผ ํ๋๊น ๋๊ธฐ
3) Fault (Exception)
- ๋น์ ์์ ์ธ ์ํฉ์์ CPU๊ฐ ์๊ธฐ ์์ ์๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ๊ฑด๋ค
- CPU instructions -> interrupt handler (== OS)
- ex) 0์ผ๋ก ๋๋๊ธฐ, ์ฐธ์กฐํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ฑ CPU๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๋ช ๋ น์ด