μμ¦ νμ¬ μ 무λ₯Ό 보면μ CSμ§μμ΄ λΆμ‘±ν΄ μ 무μ λν μ΄ν΄λ₯Ό μλ²½ν νμ§ λͺ»νλ κ²½μ°κ° λ§μλ€. κ·Έλμ μ°μ μ»΄ν¨ν° ꡬ쑰 & μ΄μ체μ μ λν΄ κ³΅λΆνκΈ° μν΄ μΈν°λ·μ μ¬λΌμμλ λ°ν¨κ²½ κ΅μλμ κ°μλ₯Ό μκ°νκ³ μλ€. κ³΅λΆ λ΄μ©μ λΈλ‘κ·Έμ νλνλμ© μ 리νλ € νλ€. μ΄μ체μ 첫 κ°μ μ€ μΈν°λ½νΈλΌλ μμν μ©μ΄κ° λμλ€.. μ΄λ² μκ°μ μΈν°λ½νΈλΌλ κ²μ΄ μ μ‘΄μ¬νλ©° λ¬΄μ¨ μν μ νλμ§ μ‘°κΈ λ μμλ³΄κ² λ€.
μΈν°λ½νΈλ 무μμΈκ°?
μ°μ μΈν°λ½νΈκ° λλ΅ λ¬΄μμΈμ§ μ΄ν΄νκΈ° μ½κ² μμλ₯Ό λ€μ΄λ³΄μ.
π£ λλ μ§κΈ λΈλ‘κ·Έ κΈμ μ°κ³ μλ€. κ·Έλ¬λ μ€ μ€μν μ νκ° μ¨λ€.
κ·Έλ¬λ©΄ λλ κΈ μ°λ κ²λ³΄λ€ μ νλ₯Ό λ°λ νμκ° μ°μ μμκ° λ κ²μ΄λ€.
μ μ κΈμ°λ κ²μ λ©μΆκ³ ν΅νλ₯Ό νκ² λκ³ , ν΅νκ° λλ νμλ λ€μ κΈ μ°λ κ²μ μ΄μ΄κ°λ€.
μ΄λ κ² νλμ μΌμ μννλ λμ€, λ λμ μ°μ μμμ μΌμ μ²λ¦¬νκΈ° μν΄ μ΄μ μ μΌμ λ©μΆλλ‘ μ νΈ(μμ μμμμ ν΄λν°μ 벨μ리 νΉμ μ§λμ΄ λκ² λ€.)λ₯Ό 보λ΄λ κ²μ΄ μ½κ² λ§ν΄ μΈν°λ½νΈμ΄λ€.
μΈν°λ½νΈμ μ¬μ μ μ μλ ‘μ€λ¨/μ°¨λ¨νλ€’μ μλ―Έλ₯Ό κ°μ§λ€. μν€νΌλμμμ PC μν€ν
μ² μ
μ₯μμμ μΈν°λ½νΈλ₯Ό λ€μκ³Ό κ°μ΄ μ μνκ³ μλ€.
μ΄λ²€νΈκ° μ μμ μ²λ¦¬λ μ μλλ‘ νλ‘μΈμκ° νμ¬ μ€ν μ€μΈ μ½λλ₯Ό μ€λ¨νλΌλ μμ²
(μΆμ² : https://en.wikipedia.org/wiki/Interrupt )
μ΄ λ§μ μ¦ μΈν°λ½νΈλ₯Ό ν΅ν΄ νλ‘μΈμκ° μ€μλμ λ°λΌ λͺ λ Ήμ μ€ννλ μμλ₯Ό λ³κ²½ν μ μλ€λ κ²μ΄λ€. λλΆλΆμ κ²½μ° μΈν°λ½νΈλ₯Ό μμ±νλ μ₯μΉλ ν€λ³΄λ, λ§μ°μ€, νλ¦°ν°, νλ λλΌμ΄λΈ λ±κ³Ό κ°μ νλμ¨μ΄ μ₯μΉμ΄λ©° νλ‘κ·Έλ¨ μ체λ μΈν°λ½νΈλ₯Ό μμ±ν μ μλ€.
κ·Έλ¬λ©΄ μ μΈν°λ½νΈλ₯Ό μ¬μ©νμ§?
λ€μ μμ μμλ‘ λμκ°λ³΄μ.
μμμμ μΈν°λ½νΈ=ν΄λν°μ 벨μ리
μ κ°λ€κ³ μ€λͺ
νμλ€.
λ§μ½ ν΄λν° λ²¨μλ¦¬κ° μμ΄μ μ°μ μμμ μλ μ νλ₯Ό λ°μ§ λͺ»νλ€λ©΄ μ΄λ»κ² ν΄μΌ μ νκ° μ¨ κ²μ μ μ μμκΉ?
λ¬Όλ‘ κΈ μ°λ κ²μ μ¨μ ν μ§μ€νλ κ²μ ν¬κΈ°νκ³ μ μ΄ κ°κ²©μΌλ‘ ν΄λν° νλ©΄μ κ³μ μ£ΌκΈ°μ μΌλ‘ νμΈνλ€λ©΄ κ°λ₯νκ² λ€. μ΄λ₯Ό μννΈμ¨μ΄μ μΌλ‘ λ΄€μ λλ ν΄λΉ νλ‘μΈμ€λ₯Ό Polling νλ κ²κ³Ό κ°λ€. νμ§λ§ μ¬μ§λ μ μ¬μ§λ λͺ¨λ₯΄λ μ νλ₯Ό μ£ΌκΈ°μ μΌλ‘ νμΈνλ κ²κ³Ό, ν΄λν°μ΄ ν λκ° μλλΌ μ¬λ¬ λλΌλ©΄? μ€μν μ νμΈ μ€ μμλλ° μ€νΈ μ νμλ€λ©΄? μ΄λ₯Ό λͺ¨λ κ°λΉνλ κ²μ κ΅μ₯ν μμ λλΉμΌ κ²μ΄λ€.
λ°λ©΄μ ν΄λν° λ²¨μ리 λλ μ§λκ³Ό κ°μ μΈν°λ½νΈ
λ₯Ό μ¬μ©νκ² λλ€λ©΄ νλ‘μΈμλ μΈν°λ½νΈλ₯Ό μμ ν¨μΌλ‘μ¨ νμ¬ μΌμ μ€μ§νκ³ μ°μ μμμ μΌμ λ¨Όμ μ²λ¦¬ν μ μκ² λλ€. μΈν°λ½νΈ
λ μ»΄ν¨ν°λ₯Ό ν¨μ¬ ν¨μ¨μ μΌλ‘ μ μ΄ν μ μλλ‘ λμμ€λ€.
μΈν°λ½νΈ μ²λ¦¬
μ΄μ μΈν°λ½νΈκ° 무μμ΄κ³ μ μ¬μ©νλμ§ μ΄ν΄νλ€λ©΄ μ€μ λ‘ μ»΄ν¨ν° μμμ μΈν°λ½νΈλ μ΄λ»κ² μ²λ¦¬λλμ§ μμλ³΄κ² λ€.
μ κ·Έλ¦Όμ 보면μ μΈν°λ½νΈ μ²λ¦¬ κ³Όμ μ μμλλ‘ μ΄ν΄ν΄λ³΄μ.
μ°μ CPUκ° IRQ(Interrupt Request) μΈν°λ½νΈ μ νΈλ₯Ό μμ λ°λλ€. μ΄λ μ¬λ¬ μΈν°λ½νΈμ λν μ°μ μμμ λ°μ μ£Όμλ₯Ό 보κ΄νκ³ μμ΄μΌ νλ€. μ΄λ₯Ό μ΄ν΄νκΈ° μν΄μ λ¨Όμ λ κ°μ§ μ©μ΄λ₯Ό μμ§νμ.
ISR(Interrupt Service Routine)
π‘ νλμ¨μ΄ μ₯μΉμ μΈν°λ½νΈ μμ²μ μν΄ νΈμΆλλ μννΈμ¨μ΄ νλ‘μΈμ€. μΈν°λ½νΈ νΈλ€λ¬(Interrupt Handler)λΌκ³ λ νλ€. ISRμ κΈ°λ³Έ μλ ν€λ³΄λμ ν€λ₯Ό λλ₯΄κ±°λ λΌλ κ²κ³Ό κ°μ ν€λ³΄λ μ΄λ²€νΈ μ²λ¦¬ 루ν΄μ΄ μλ€. ν€λ₯Ό λλ₯Ό λλ§λ€ ISRμ΄ μ λ ₯μ μ²λ¦¬νλ€.
μΈν°λ½νΈ 벑ν°(Interrupt Vector)
π‘ ISRμ μ£Όμλ₯Ό 보κ΄νκΈ° μν΄ λ³λλ‘ μ€μ ν λ©λͺ¨λ¦¬ μμΉ.
λͺ¨λ μΈν°λ½νΈλ ISRμ΄ μμ΄μΌ νλ€. μΈν°λ½νΈκ° λ°μνλ©΄ νλ‘μΈμλ μΈν°λ½νΈ μλΉμ€ 루ν΄(ISR)μ μ€νν΄μΌ νλλ°, μ΄λ₯Ό μν΄ μΈν°λ½νΈ λ²‘ν° ν
μ΄λΈμ ISRμ μ£Όμλ₯Ό μ μ₯νκ² λλ€.
μΈν°λ½νΈ μ€ν λ¨κ³
μΈν°λ½νΈ μ€ν λ¨κ³λ₯Ό λ€μ νλ² μ 리νμλ©΄,
- μΈν°λ½νΈ μμ² λ°μ
- νμ¬ μ€ν μ€μΈ λͺ λ Ήμ΄λ₯Ό λ«κ³ λ€μ λͺ λ Ήμ΄(PC: Program Counter)μ μ£Όμλ₯Ό νλ‘μΈμ€ μ€νμ μ μ₯νλ€.
- μΈν°λ½νΈ μλΉμ€ 루ν΄(ISR)μ μ£Όμλ₯Ό 보μ νκ³ μλ μΈν°λ½νΈ λ²‘ν° ν μ΄λΈμ λ©λͺ¨λ¦¬ μμΉλ‘ μ ννλ€.
- μΈν°λ½νΈ λ²‘ν° ν μ΄λΈμμ ISRμ μ£Όμλ₯Ό κ°μ Έμ κ·Έκ³³μΌλ‘ μ ννλ€. RETI(μΈν°λ½νΈ 볡κ·)μΈ μΈν°λ½νΈ μλΉμ€ μλΈλ£¨ν΄μ μ€ννκΈ° μμνλ€.
- RETI λͺ λ Ήμ μ€ννλ©΄ νλ‘μΈμλ μ€λ¨λ μμΉλ‘ λμκ°λ€. νλ‘μΈμ€ μ€νμμ νλ‘κ·Έλ¨ μΉ΄μ΄ν°(PC) μ£Όμλ₯Ό κ°μ Έμ¨λ€. κ·Έλ° λ€μ ν΄λΉ μ£Όμμμ μ€νμ μμνλ€.
λ§μΉλ©°..
μΈν°λ½νΈκ° 무μμ΄κ³ , μ μ¬μ©νλμ§, κ·Έλ¦¬κ³ μΈν°λ½νΈκ° λ΄λΆμ μΌλ‘ μ΄λ€ κ³Όμ μ ν΅ν΄ μ¬μ©λλμ§ μ½κ³ κ°λ΅νκ² μ 리ν΄λ³΄μλ€. μμ§ λΆμ‘±ν μνμμ 곡λΆνλ©΄μ μ 리νλλΌ λ κΉμ μ€λͺ
μ΄ λΆμ‘±νλ κ² μμ¬μ λ€. μΈν°λ½νΈμ λν κΈ°λ³Έμ μΈ κ°λ
μ μκ³ μΆμ λΆλ€μκ² λμμ΄ λμμΌλ©΄ νλ€. λ¨μ μ΄μ체μ κ°μλ μκ°νλ©΄μ μ°¨μ°¨ μ 리ν κ³νμ΄λ€.
μΆμ²
- https://www.geeksforgeeks.org/purpose-of-an-interrupt-in-computer-organization/https://www.tutorialspoint.com/what-is-an-interrupt-and-how-does-the-processor-handle-normal-and-multiple-interrupts
- https://www.techtarget.com/whatis/definition/interrupt
- https://www.tutorialspoint.com/embedded_systems/es_interrupts.htm
- https://www.naukri.com/learning/articles/interrupts-in-operating-system/
μ΄λ―Έμ§ μΆμ²
'π» κ°λ° > π₯οΈ μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘μΈμ€(Process)λ? (0) | 2022.12.12 |
---|