인터럽트
위키백과 ― 우리 모두의 백과사전.
인터럽트(interrupt)란 어떤 장치가 다른 장치의 일을 잠시 중단시키고 자신의 상태 변화를 알려 주는 것이다. 인터럽트가 걸리면 인터럽트를 받은 장치는 현재 자신의 상태를 기억시켜두고 인터럽트 처리를 진행한다.
목차 |
[편집] 인터럽트의 기능
인터럽트는 모든 서비스 루틴들의 주소를 가지고 있는 인터럽트 벡터를 통해, 인터럽트 서비스 루틴으로 제어 신호를 전송한다. 인터럽트 아키텍처는 인터럽트된 명령의 주소를 보존해야 한다. 어떤 인터럽트를 처리하고 있는 중에는 그 인터럽트를 잃어버리지 않기 위해 새로운 인터럽트를 받아들이지 않는다. 트랩이란 에러나 사용자 요청에 의해 소프트웨어가 발생시킨 인터럽트이다.
[편집] 인터럽트 핸들링
운영체제는 레지스터와 프로그램 카운터를 보관함으로써 CPU의 상태를 보존한다. 인터럽트가 폴링, 벡터 인터럽트 중 어떤 형식인지 판단한다. 코드의 개별 부분들은 각 인터럽트 형식에 대해 어떤 동작을 취해야 할지 결정한다.
[편집] 인터럽트 처리 과정
- 수행 상태를 보관한다.
- 인터럽트 서비스 루틴으로 점프한다.
- 저장된 상태를 복구한다.
- 수행을 재개한다.
[편집] 인터럽트의 종류
- 슈퍼바이저 호출 인터럽트(Superviser Call Interrupt)
- 입출력 인터럽트(I/O Interrupt)
- 외부 인터럽트(External Interrupt)
- 재시작 인터럽트(Restart Interrupt)
- 프로그램 검사 인터럽트(Program Check Interrupt)