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