[운영체제] μΈν„°λŸ½νŠΈ

μΈν„°λŸ½νŠΈ (Interrupt) 

μΈν„°λŸ½νŠΈλž€? 

ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 도쀑에 예기치 μ•Šμ€ 상황이 λ°œμƒν•  경우 μ‹€ν–‰ 쀑인 μž‘μ—…μ„ μ€‘λ‹¨ν•˜κ³ , 상황을 μ²˜λ¦¬ν•œ ν›„ μ‹€ν–‰ μ€‘μ΄λ˜ μž‘μ—…μœΌλ‘œ λ³΅κ·€ν•˜μ—¬ λ§ˆμ € μ²˜λ¦¬ν•˜λŠ” 것. 즉, μ§€κΈˆλ³΄λ‹€ μ€‘μš”ν•œ 일이 λ°œμƒν•˜λ©΄ κ·Έ 일을 λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” 것 

μ™ΈλΆ€ μΈν„°λŸ½νŠΈ 

  1. CPU의 ν•˜λ“œμ›¨μ–΄ μ‹ ν˜Έμ— μ˜ν•΄ λ°œμƒ 
  2. μž…μΆœλ ₯ μž₯치, 타이밍 자치, 전원 λ“± 외뢀적 μš”μΈμ— λ°œμƒ 
  3. 전원 이상, 기계 착였, μ™ΈλΆ€ μ‹ ν˜Έ, μž…μΆœλ ₯ 

λ‚΄λΆ€ μΈν„°λŸ½νŠΈ

  1. CPU의 ν•˜λ“œμ›¨μ–΄ μ‹ ν˜Έμ— μ˜ν•΄ λ°œμƒ 
  2. Trap이라 λΆ€λ₯΄λ©°, 잘λͺ»λœ λͺ…λ Ήμ΄λ‚˜ 잘λͺ»λœ 데이터λ₯Ό μ‚¬μš©ν•  λ•Œ λ°œμƒ
  3. 0으둜 λ‚˜λˆ„κΈ°, μ˜€λ²„ν”Œλ‘œμš°, Exception.. 

SW μΈν„°λŸ½νŠΈ

  1. λͺ…λ Ήμ–΄μ˜ μˆ˜ν–‰μ— μ˜ν•΄ λ°œμƒ 
  2. μ‚¬μš©μžκ°€ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚¬ λ•Œ λ°œμƒ 
  3. SW이용 쀑에 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰μ‹œν‚€λ©΄ μ‹œλΆ„ν•  처리λ₯Ό μœ„ν•΄ μžμ› ν• λ‹Ή λ™μž‘μ΄ μˆ˜ν–‰  

μΈν„°λŸ½νŠΈ λ°œμƒ 처리 κ³Όμ • 

  1. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 μΈν„°λŸ½νŠΈ λ°œμƒ! 
  2. μˆ˜ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨ 쀑지 ν›„, μΈν„°λŸ½νŠΈ 원인 νŒŒμ•…
  3. μƒνƒœ λ ˆμ§€μŠ€ν„°μ™€ PC 등을 μŠ€νƒμ— μ €μž₯ 
  4. μΈν„°λŸ½νŠΈ μ„œλΉ„μŠ€ λ£¨ν‹΄μœΌλ‘œ λΆ„κΈ°, 처리 루틴을 μˆ˜ν–‰ν•˜κ³  μ€‘μ§€μ‹œν‚¨ ν”„λ‘œκ·Έλž¨μ„ μ΄μ–΄μ„œ μ‹€ν–‰   

μΈν„°λŸ½νŠΈ μš°μ„ μˆœμœ„ νŒλ³„ 방법 

CPU에 μ—°κ²°λ˜μ–΄ μžˆλŠ” μ—¬λŸ¬ μž₯μΉ˜μ—μ„œ λ™μ‹œμ— ν•˜λ‚˜ μ΄μƒμ˜ μΈν„°λŸ½νŠΈ λ°œμƒμ‹œ λ¨Όμ € μ„œλΉ„μŠ€ μž₯치λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©ν•œλ‹€.

폴링 방식 

  1. μ†Œν”„νŠΈμ›¨μ–΄λ‘œ λ³€ν™”λ₯Ό 체크할 수 μžˆλŠ” 방법이닀.
  2. λ§Œμ•½ μΈν„°λŸ½νŠΈκ°€ μ—†λ‹€λ©΄, μ»¨νŠΈλ‘€λŸ¬λŠ” μ–΄λ–€ νŠΉμ •ν•œ 일을 ν•  μ‹œκΈ°λ₯Ό μ•ŒκΈ° μœ„ν•΄ 계속 반볡적으둜 체크 해야함 
  3. μ‚¬μš©μžκ°€ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•΄ μž…λ ₯ ν•€μ˜ 값을 주기적으둜 읽어 λ³€ν™”λ₯Ό μ•Œμ•„λ‚΄λŠ” 방식 
  4. μΈν„°λŸ½νŠΈ μš”μ²­ ν”Œλž˜κ·Έλ₯Ό μ°¨λ‘€λ‘œ λΉ„κ΅ν•˜μ—¬ μš°μ„ μˆœμœ„κ°€ κ°€μž₯ 높은 μΈν„°λŸ½νŠΈ μžμ›μ„ μ°Ύμ•„ 이에 λ§žλŠ” μΈν„°λŸ½νŠΈ μ„œλΉ„μŠ€ 루틴 μˆ˜ν–‰ 

μΈν„°λŸ½νŠΈ 방식 

  1. MCU μžμ²΄κ°€ ν•˜λ“œμ›¨μ–΄μ μœΌλ‘œ λ³€ν™”λ₯Ό μ²΄ν¬ν•˜μ—¬ λ³€ν™” μ‹œμ—λ§Œ 일정 λ™μž‘ μˆ˜ν–‰ 
  2. λ°œμƒμ‹œκΈ°λ₯Ό μ˜ˆμΈ‘ν•  수 없을 λ•Œ μ»¨νŠΈλ‘€λŸ¬κ°€ κ°€μž₯ 빨리 λ°˜μ‘ν•  수 μžˆλŠ” 방법 
  3. μΈν„°λŸ½νŠΈ 방식은 HW 지원을 λ°›μ•„μ•Ό ν•˜λŠ” μ œμ•½μ΄ 쑴재 
  4. Daisy Chain, 병렬 μš°μ„ μˆœμœ„ λΆ€μ—¬ 

μΈν„°λŸ½νŠΈ 방식 : 데이지 체인

ν•˜λ“œμ›¨μ–΄μ μœΌλ‘œ μΈν„°λŸ½νŠΈ μš°μ„ μˆœμœ„λ₯Ό νŒλ³„ν•˜λŠ” λ°©λ²•μœΌλ‘œ 직렬 μš°μ„ μˆœμœ„ λΆ€μ—¬ 방식이닀. μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•˜λŠ” λͺ¨λ“  μž₯치λ₯Ό ν•œκ°œμ˜ νšŒμ„ μ— 직렬둜 μ—°κ²°ν•˜μ—¬, μš°μ„ μˆœμœ„ 높은 μˆœμ„œλŒ€λ‘œ μž₯치λ₯Ό μ—°κ²°ν•˜λŠ” 방식이닀.

 

 

Reference

https://blog.naver.com/ann_arbor/221356496580

 

Pollingκ³Ό μΈν„°λŸ½νŠΈμ˜ 잘λͺ» μ„€λͺ…λœ 예

아두이노같은 MCUκ°€ μ‹ ν˜Έ μž…λ ₯을 λ°›μ•„μ„œ μ–΄λ–€ 일을 μ²˜λ¦¬ν•  λ•Œ Polling 방식과 Interrupt 방식을 μ‚¬μš©...

blog.naver.com

https://blog.naver.com/yeonsu1936/221524810825

 

μΈν„°λŸ½νŠΈ 처리 κ³Όμ •

μΈν„°λŸ½νŠΈ(Interrupt)λž€?​'μ–΄λ–€ νŠΉμ •ν•œ 사건'이 μΌμ–΄λ‚˜λ©΄ CPUλŠ” ν˜„μž¬ ν•˜κ³  μžˆλŠ” 일을 μž μ‹œ ...

blog.naver.com

 

https://github.com/gyoogle

 

gyoogle - Overview

Email : gyuseok6394@gmail.com. gyoogle has 18 repositories available. Follow their code on GitHub.

github.com