운영체제

[운영체제] 인터럽트(Interrupt) 란 무엇일까?

미 성 2024. 4. 17. 15:49

 
 
 



☁️

Interrupt 란 ?

터럽트는 CPU가 프로그램을 실행하고 있을 때, 입/출력 장치 혹은 다른 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려서 처리하는 기술
 





* 동기식 예외(synchronous exceptions)

: 명령어 실행 중에 발생하는 이벤트로 인해 발생하며, CPU 자체가 유발한 것.
(소프트웨어 인터럽트 / 내부 인터럽트 )
- CPU에 의해 유발되며, OS(커널)에 의해 처리됨.
 
1. traps : 의도적으로 발생하는 예외
ex) system call, 특수 명령어
- 다음 명령어로 제어권이 반환된다.

2. faults : 의도하지 않았지만 복구 가능한 예외
ex) 페이지 폴트
- 현재의 명령어를 다시 실행하거나 프로그램 중단

3. aborts : 의도하지 않았고 복구도 불가능한 예외
- 현재 실행 중인 프로그램을 중단
 
 
* 비동기식 예외(asynchronous exceptions)

: CPU에 의해 직접 유발되지 않은 예외 상황.
대표적인 예로 입출력 완료 인터럽트, 타이머 인터럽트 등이 있음.
- 비동기적으로 CPU의 실행 흐름과 무관하게 발생하며, OS가 이를 처리함. 
 


명령어 재개 시점 

- 동기식 인터럽트
: 인터럽트 처리 루틴 실행한 후에 다시 이전 프로세스의 상태를 복원하여 실행을 재개함.
 
- 비동기식 인터럽트
: 인터럽트 처리 루틴을 실행한 후에 다음 명령어부터 실행을 재개
( 현재 실행 명령어와 인터럽트는 관련이 없으므로 )
 
 
* interrupt handler 과정 ( OS 관여 X. CPU 자체 진행 )
 🧞
1. 현재 프로그램 중단 ( 중단되는 즉시 PSW 값 변환됨 )
2. PC와 PSW(Program status word)를 스택에 저장
3. CPU는 인터럽트 벡터 테이블에서 찾은 주소로 이동하여, 인터럽트 해결책을 찾고 적절한 작업을 수행함
4. 인터럽트 처리 루틴이 완료되면 CPU는 스택에 저장된 PC와 PSW를 복원함
5. 프로그램 실행 재개
 
* PSW와 MODE-BIT은 다른 개념
 

 
* 인터럽트 벡터 테이블
: 각 인터럽트 소스는 테이블 내 고유한 INDEX를 가지며, 이 INDEX에 해당 interrupt 처리 루틴의 주소가 저장됨.
 
 
 
 

 
 
* MODE BIT ( 컴퓨터 시스템 내부에 내장되어 있는 하드웨어 구성요소 )
 
dual-mode
: 중요한 위험한 상황을 발생시킬 수 있는 명령은 커널모드 에서만 작동 가능하게하고,
그렇지 않은 연산만 유저모드 를 통해서 작동
 
운영체제는 이를 위하여 DUAL-MODE로 작동한다.
 
CPU 내부에 MODE BIT을 두어 USER MODE와 Kernel MODE를 구분한다. CPU가 mode bit을 확인하며 사용자 모드인지 커널 모드인지 파악하는 것이다. 사용자 모드는 1, 커널 모드는 0이다.
 
만일, 사용자가 중요한 작업을 수행해야 한다면 "SYSTEM CALL"을 통해 운영체제에게 요청한다. 이 때 커널 모드가 0으로 바뀐다. 




 
 
 
* TIMER  ( 컴퓨터 시스템 내부에 내장되어 있는 하드웨어 구성요소 )
: CPU와 직접 연결되어 있어, CPU 인터럽트를 발생시킬 수 있다.
 
1. CPU 인터럽트 발생 : 특정 시간이 지나면 CPU에 인터럽트를 발생시켜 제어권을 운영체제로 전달한다.
2. 시간 제한 설정
3. 시분할 시스템 구현
 



 
 
* I/O device controller
: 컴퓨터와 I/O 장치 사이에 하드웨어 인터페이스 역할을 함. 컨트롤러에는 임시 저장 가능한 작은 메모리 버퍼도 있음. I/O 작업을 관리하는 작은 CPU와 같은 역할도 함. I/O 작업이 완료되면 컨트롤러는 CPU에 인터럽트 신호를 보냄.

'운영체제' 카테고리의 다른 글

[운영체제] DMA(Directly memory access)  (17) 2024.04.19
[운영체제] 프로세스 뜻, 프로세스 상태  (11) 2024.04.17