μΈν„°λŸ½νŠΈλŠ” 무엇이며 μ–΄λ–€ 역할을 ν• κΉŒ?

2022. 11. 23. 01:08Β·πŸ’» 개발/πŸ–₯️ 운영체제

 

μš”μ¦˜ νšŒμ‚¬ 업무λ₯Ό λ³΄λ©΄μ„œ 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의 μ£Όμ†Œλ₯Ό μ €μž₯ν•˜κ²Œ λœλ‹€.

 

 

μΈν„°λŸ½νŠΈ μ‹€ν–‰ 단계

μΈν„°λŸ½νŠΈ μ‹€ν–‰ 단계λ₯Ό λ‹€μ‹œ ν•œλ²ˆ μ •λ¦¬ν•˜μžλ©΄,

  1. μΈν„°λŸ½νŠΈ μš”μ²­ λ°œμƒ
  2. ν˜„μž¬ μ‹€ν–‰ 쀑인 λͺ…λ Ήμ–΄λ₯Ό λ‹«κ³  λ‹€μŒ λͺ…λ Ήμ–΄(PC: Program Counter)의 μ£Όμ†Œλ₯Ό ν”„λ‘œμ„ΈμŠ€ μŠ€νƒμ— μ €μž₯ν•œλ‹€.
  3. μΈν„°λŸ½νŠΈ μ„œλΉ„μŠ€ 루틴(ISR)의 μ£Όμ†Œλ₯Ό λ³΄μœ ν•˜κ³  μžˆλŠ” μΈν„°λŸ½νŠΈ 벑터 ν…Œμ΄λΈ”μ˜ λ©”λͺ¨λ¦¬ μœ„μΉ˜λ‘œ μ ν”„ν•œλ‹€.
  4. μΈν„°λŸ½νŠΈ 벑터 ν…Œμ΄λΈ”μ—μ„œ ISR의 μ£Όμ†Œλ₯Ό 가져와 그곳으둜 μ ν”„ν•œλ‹€. RETI(μΈν„°λŸ½νŠΈ 볡귀)인 μΈν„°λŸ½νŠΈ μ„œλΉ„μŠ€ μ„œλΈŒλ£¨ν‹΄μ„ μ‹€ν–‰ν•˜κΈ° μ‹œμž‘ν•œλ‹€.
  5. 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/

이미지 좜처

  • https://www.psypost.org/2018/05/just-cell-phone-possession-can-impair-learning-study-suggests-51228
  • https://www.researchgate.net/figure/The-Mechanism-of-Interrupt_fig1_262161194
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ’» 개발 > πŸ–₯️ 운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μœˆλ„μš°μ™€ λ¦¬λˆ…μŠ€μ˜ λ©€ν‹°ν”„λ‘œμ„Έμ‹± λ™μž‘ 방식 차이  (2) 2025.01.20
ν”„λ‘œμ„ΈμŠ€(Process)λž€?  (0) 2022.12.12
'πŸ’» 개발/πŸ–₯️ 운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • μœˆλ„μš°μ™€ λ¦¬λˆ…μŠ€μ˜ λ©€ν‹°ν”„λ‘œμ„Έμ‹± λ™μž‘ 방식 차이
  • ν”„λ‘œμ„ΈμŠ€(Process)λž€?
EastShine_
EastShine_
더 λ‚˜μ€ κ°œλ°œμžκ°€ 되기 μœ„ν•œ λ‚˜μ˜ 기둝 πŸ“
  • EastShine_
    개발.LOG πŸ’»
    EastShine_
  • 전체
    였늘
    μ–΄μ œ
  • 06-24 05:13
    • λΆ„λ₯˜ 전체보기 (27)
      • πŸ’» 개발 (21)
        • πŸ–₯️ 운영체제 (3)
        • 🌏 λ„€νŠΈμ›Œν¬ (0)
        • πŸ’Ύ Database (3)
        • πŸŽ› Java (0)
        • πŸ–² Javascript (0)
        • πŸ€ Spring (5)
        • 🎸 ETC (4)
        • πŸ“ˆ μ•Œκ³ λ¦¬μ¦˜ (3)
        • πŸ“– TIL (Today I Learned) (3)
      • 🏠 일상 (6)
        • πŸ““ 일상 일기 (6)
  • 인기 κΈ€

  • νƒœκ·Έ

    λŒ€κΈ°μ—΄
    ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
    Whisper API
    e-book pdf μΆ”μΆœ
    낙관적락
    μ½˜μ„œνŠΈμ˜ˆμ•½μ„œλΉ„μŠ€
    νŠΈλžœμž­μ…˜ 뢄리
    redis
    spring
    Python
    회고
    e-book pdf λ³€ν™˜
    ν•­ν•΄ν”ŒλŸ¬μŠ€
    μ½”λ”©ν…ŒμŠ€νŠΈ
    transactionaleventlistener
    λ™μ‹œμ„±μ²˜λ¦¬
    μ•Œκ³ λ¦¬μ¦˜
    6κΈ°
    λ°±μ—”λ“œ
    비관적락
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.1
EastShine_
μΈν„°λŸ½νŠΈλŠ” 무엇이며 μ–΄λ–€ 역할을 ν• κΉŒ?
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”