λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ—‚οΈ μŠ€ν„°λ”” ν™œλ™/πŸ“™ CS μŠ€ν„°λ””

[운영체제] μΈν„°λŸ½νŠΈ λ©΄μ ‘ 질문 정리

by πŸ’Ύκ³ κ΅¬λ§ˆλ§›νƒ•λ¨Ήκ³ μ‹Άλ‹€ 2024. 11. 19.
728x90

https://hyeyoo.com/89

πŸ™‹ μΈν„°λŸ½νŠΈ(Interrupt)의 μ •μ˜μ™€ μΈν„°λŸ½νŠΈκ°€λ°œμƒ ν–ˆμ„λ•Œμ˜ 처리 과정은?

더보기

μΈν„°λŸ½νŠΈλŠ” λŠ” ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 쀑 ν˜„μž¬ μž‘μ—…μ„ μ€‘λ‹¨ν•˜κ³ , 더 높은 μš°μ„ μˆœμœ„λ₯Ό 가진 μž‘μ—…μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ νŠΉμ • μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν•˜λŠ” μ‹ ν˜Έμž…λ‹ˆλ‹€. 주둜 μ‚¬μš©μžμ˜ ν‚€λ³΄λ“œλ‚˜ 마우슀 μž…λ ₯, λ˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ μ„€μ •λœ 타이머 이벀트 λ“±μœΌλ‘œ 인해 μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•©λ‹ˆλ‹€.

μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•˜λ©΄ μš°μ„  CPU에 μ‹ ν˜Έλ₯Ό λ³΄λƒ…λ‹ˆλ‹€. 그리고 ν˜„μž¬ μž‘μ—…μ„ μ €μž₯ν•œ ν›„ λ°œμƒν•œ μΈν„°λŸ½νŠΈμ— ν•΄λ‹Ήν•˜λŠ” ν•Έλ“€λŸ¬λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. 처리 ν›„ μ €μž₯된 μž‘μ—…μ„ λ³΅κ΅¬ν•˜μ—¬ λ‹€μ‹œ μ‹€ν–‰ν•˜κ²Œ λ©λ‹ˆλ‹€.

πŸ™‹ μΈν„°λŸ½νŠΈμ™€ 폴링의 μ°¨μ΄λŠ”?

더보기

폴링은 CPUκ°€ 주기적으둜 μž₯μΉ˜μ— μž‘μ—… μš”μ²­μ΄ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 이 방식은 CPUκ°€ κ³„μ†ν•΄μ„œ μž₯치 μƒνƒœλ₯Ό 체크해야 ν•˜λ―€λ‘œ μžμ›μ„ 많이 μ†Œλͺ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 반면, μΈν„°λŸ½νŠΈλŠ” νŠΉμ • μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œλ§Œ CPU에 μ‹ ν˜Έλ₯Ό 보내어 λ™μž‘ν•˜λ―€λ‘œ CPU μžμ›μ„ 더 효율적으둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, μΈν„°λŸ½νŠΈ 방식이 폴링보닀 더 νš¨μœ¨μ μž…λ‹ˆλ‹€.

πŸ™‹ μΈν„°λŸ½νŠΈμ™€ μ˜ˆμ™Έμ˜ μ°¨μ΄λŠ”?

더보기

μΈν„°λŸ½νŠΈλŠ” μ‹œμŠ€ν…œ μš”μ²­μ— μ˜ν•΄ λ°œμƒν•˜λ©°, ν˜„μž¬ μž‘μ—…λ³΄λ‹€ 더 μ€‘μš”ν•œ μž‘μ—…μ„ μ²˜λ¦¬ν•΄μ•Ό ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ™ΈλΆ€ μž₯치의 μš”μ²­μ΄λ‚˜ 타이머가 λ°œμƒν•  λ•Œ μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•©λ‹ˆλ‹€. 반면, μ˜ˆμ™ΈλŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 였λ₯˜λ‚˜ νŠΉμ • 쑰건에 μ˜ν•΄ λ°œμƒν•©λ‹ˆλ‹€. μ˜ˆμ™ΈλŠ” 보톡 ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ 잘λͺ»λœ μ—°μ‚°μ΄λ‚˜ 예기치 μ•Šμ€ 상황에 μ˜ν•΄ λ°œμƒν•˜λ©°, 이λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ νŠΉλ³„ν•œ λ©”μ»€λ‹ˆμ¦˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

πŸ™‹ μΈν„°λŸ½νŠΈμ˜ μš°μ„ μˆœμœ„λŠ”?  

더보기

μΈν„°λŸ½νŠΈμ˜ μš°μ„ μˆœμœ„λŠ” λ™μ‹œμ— μ—¬λŸ¬ μΈν„°λŸ½νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ μ–΄λ–€ μΈν„°λŸ½νŠΈλ₯Ό λ¨Όμ € μ²˜λ¦¬ν• μ§€λ₯Ό κ²°μ •ν•˜λŠ” κΈ°μ€€μž…λ‹ˆλ‹€. μš°μ„ μˆœμœ„κ°€ 높은 μΈν„°λŸ½νŠΈκ°€ λ¨Όμ € 처리되며, 이 μˆœμ„œλŠ” ν•˜λ“œμ›¨μ–΄ 기반과 μ†Œν”„νŠΈμ›¨μ–΄ 기반으둜 λ‚˜λ‰˜μ–΄ κ΄€λ¦¬λ©λ‹ˆλ‹€. ν•˜λ“œμ›¨μ–΄ κΈ°λ°˜μ—μ„œλŠ” μΈν„°λŸ½νŠΈ μ»¨νŠΈλ‘€λŸ¬κ°€ μš°μ„ μˆœμœ„λ₯Ό κ²°μ •ν•˜κ³ , μ†Œν”„νŠΈμ›¨μ–΄ κΈ°λ°˜μ—μ„œλŠ” μš΄μ˜μ²΄μ œκ°€ 이λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€. λ˜ν•œ, 쀑첩 μΈν„°λŸ½νŠΈλŠ” 이미 처리 쀑인 μΈν„°λŸ½νŠΈκ°€ μžˆμ„ λ•Œ 더 높은 μš°μ„ μˆœμœ„μ˜ μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•˜λ©΄ ν˜„μž¬ μž‘μ—…μ„ μ€‘λ‹¨ν•˜κ³  μƒˆλ‘œμš΄ μΈν„°λŸ½νŠΈλ₯Ό μ²˜λ¦¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ, μ€‘μš”ν•œ μž‘μ—…μ„ μš°μ„ μ μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

πŸ™‹ μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈμ™€ ν•˜λ“œμ›¨μ–΄ μΈν„°λŸ½νŠΈμ˜ μ°¨μ΄λŠ”? 

더보기

ν•˜λ“œμ›¨μ–΄ μΈν„°λŸ½νŠΈλŠ” μ™ΈλΆ€ μž₯μΉ˜μ—μ„œ λ°œμƒν•˜λ©°, 예λ₯Ό λ“€μ–΄ ν‚€λ³΄λ“œλ‚˜ λ§ˆμš°μŠ€μ™€ 같은 μž₯μΉ˜κ°€ CPU에 μ‹ ν˜Έλ₯Ό 보내어 μž‘μ—… 처리λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€. 반면, μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈλŠ” ν”„λ‘œκ·Έλž¨ λ‚΄λΆ€μ—μ„œ λ°œμƒν•˜μ—¬ 운영체제 μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•˜λŠ” κ²½μš°μž…λ‹ˆλ‹€. 즉, ν•˜λ“œμ›¨μ–΄ μΈν„°λŸ½νŠΈλŠ” μ™ΈλΆ€ ν•˜λ“œμ›¨μ–΄ μž₯μΉ˜μ—μ„œ λ°œμƒν•˜λŠ” 반면, μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈλŠ” ν”„λ‘œκ·Έλž¨ λ‚΄μ˜ λ™μž‘μ— μ˜ν•΄ λ°œμƒν•©λ‹ˆλ‹€.

https://hojunking.tistory.com/49

μΈν„°λŸ½νŠΈ μžλ£Œκ΅¬μ‘°λŠ” μŠ€νƒμ„ μ‚¬μš©ν•˜κ²Œ λœλ‹€.

 

βž• ISR, Masking

μΈν„°λŸ½νŠΈ μ„œλΉ„μŠ€ 루틴(ISR, Interrupt Service Routine) μΈν„°λŸ½νŠΈ 처리 ν•¨μˆ˜μ΄λ‹€. μΈν„°λŸ½νŠΈ λ°œμƒ μ‹œ CPUμ—μ„œ μžλ™μœΌλ‘œ μ‹€ν–‰λœλ‹€. ν•¨μˆ˜ νŠΉμ„±μƒ λΉ λ₯΄κ²Œ μ‹€ν–‰λ˜μ–΄μ•Όν•˜κ³  쀑단이 μ—†μ–΄μ•Όν•œλ‹€. 예둜 ν‚€λ³΄λ“œ, 타이머 μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•˜λ©΄ ISRκ°€ μ‹€ν–‰λ˜μ–΄ 이벀트 처리 ν›„ 이전 μž‘μ—…μœΌλ‘œ λ³΅κ·€ν•˜κ²Œ λœλ‹€.

 

 

μΈν„°λŸ½νŠΈ 마슀크 (Interrupt Mask)λŠ” νŠΉμ • μΈν„°λŸ½νŠΈλ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ±°λ‚˜ μš°μ„ μˆœμœ„λ₯Ό μ‘°μ •ν•΄ μ²˜λ¦¬ν•˜μ§€ μ•Šλ„λ‘ ν•˜λŠ” κΈ°μˆ μ΄λ‹€. 이것이 ν™œμ„±ν™” 되면 CPUκ°€ λ¬΄μ‹œν•˜κ²Œ λ˜μ–΄ μ²˜λ¦¬λ˜μ§€ μ•ŠλŠ”λ‹€. ν•˜λ“œμ›¨μ–΄μ , μ†Œν”„νŠΈμ›¨μ–΄μ μœΌλ‘œ κ΅¬ν˜„κ°€λŠ₯ν•˜λ‹€. 예둜 κ²Œμž„, λ³΄μ•ˆ λ“± νŠΉμ • ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©μžμ—κ²Œ νŠΉμ • μ‹œμ μ— ν‚€λ³΄λ“œ μž…λ ₯을 받지 μ•Šκ²Œ μ œμ–΄ ν•  수 μžˆλ‹€. μ‚¬μš©μž μž…λ ₯을 ν†΅ν•œ κ°œμž…μ„ 막을 수 μžˆλ‹€. λ‹€λ₯Έ μ˜ˆμ‹œλ‘œλŠ” 배터리 μ ˆμ•½μ„ μœ„ν•œ μ €μ „λ ₯ λͺ¨λ“œκ°€ μžˆλ‹€.

728x90