반응형
인터럽트란?
방해하다(interrupt)라는 의미를 가진 것처럼, CPU가 현재 실행 중인 작업을 잠시 멈추고 중요한 이벤트를 처리한 뒤, 원래의 프로그램으로 복귀하도록 하는 것.
인터럽트의 종류
(1) 하드웨어 인터럽트
- 정의: 외부 장치(하드웨어)에서 발생하는 인터럽트.
- 예시:
- 키보드 입력
- 마우스 클릭
- 타이머 이벤트
- 네트워크 패킷 도착
(2) 소프트웨어 인터럽트
- 정의: 소프트웨어에서 발생하는 인터럽트.
- 예시:
- 시스템 호출(Syscall): 프로세스가 커널 서비스 요청
- 예외(Exception): 프로그램 오류(0으로 나누기 등)
인터럽트 처리 과정
1. 인터럽트 요청 신호 발생
- 하드웨어 장치(입출력 장치)에서 CPU에게 인터럽트 요청
2. 현재 상태 저장
- CPU는 인터럽트 요청 신호를 받고 현재 상태(레지스터, PC)를 스택에 저장
3. 인터럽트 처리
- CPU는 인터럽트를 처리하기 위해 인터럽트 벡터를 참조한다.
- 인터럽트 벡터에 맞는 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리한다.
4. 상태 복원
- 인터럽트 처리 후 스택에 저장했던 작업 상태를 복원하고 중단되었던 작업을 재개한다.
* 스택: 기존 처리하던 작업 정보를 담고 있다. 주기억 장치의 일부를 차지.
* 인터럽트 벡터: 각 인터럽트 요청에 대응하는 ISR의 주소를 저장
* 인터럽트 서비스 루틴: 특정 인터럽트를 처리하는 작업이 정의되어 있음
인터럽트 사이클이 포함된 명령어 사이클
댓글