투케이2K
54. [IT 기술] 인터럽트 (Interrupt) 설명 본문
[제 목]
[IT 기술] 인터럽트 (Interrupt) 설명
[설 명]
1. 인터럽트 (Interrupt) 란 프로그램을 실행 중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 작업 입니다
2. 인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류 됩니다
3. 외부 인터럽트 :
- 전원 이상 인터럽트(Power fail interrupt): 정전, 파워 이상 등
- 기계 착오 인터럽트(Machine check interrupt): CPU의 기능적인 오류
- 외부 인터럽트(External interrupt)
* 자원이 할당된 시간이 다 끝난 경우
* 키보드로 인터럽트 키를 누른 경우(대표적으로 Control + Alt + Delete)
* 외부장치로부터 인터럽트 요청이 있는 경우
- 입출력 인터럽트(I/O Interrupt)
* 입출력장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우
* 입출력 데이터에 이상이 있는 경우
4. 내부 인터럽트 :
- 잘못된 명령이나 잘못된 데이터를 사용할때 발생
- Trap (트랩) 이라고도 함
- 프로그램 검사 인터럽트(Program check interrupt)
* Division by zero (0 나누기)
* Overflow/Underflow
* 기타 프로그램 Exception
5. 소프트웨어 인터럽트 :
- 프로그램 처리 중 명령의 요청에 의해서 발생
- 대표적인 형태는 프로그램에서 감시 프로그램(SVC) 호출
- SVC(SuperVisor Call)
* 사용자가 프로그램을 실행시키거나 감시프로그램(Supervisor)을 호출하는 동작을 수행하는 경우
* 복잡한 입출력 처리를 하는 경우
6. 인터럽트 동작 순서 :
- 인터럽트 요청
- 프로그램 실행 중단 : 현재 실행중이던 Micro operation 까지 수행한다.
- 현재의 프로그램 상태 보존 : PCB(Process Control Block), PC(Program Counter) 등
- 인터럽트 처리루틴 실행 : 인터럽트를 요청한 장치를 식별한다.
- 인터럽트 서비스 루틴 실행
* 인터럽트 원인을 파악하고 실질적인 작업을 수행한다. 처리기 레지스터 상태를 보존한다.
* 서비스루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 또 재귀적으로 1~5를 수행한다.
* 인터럽트 서비스 루틴을 실행할 때 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생을 방지할 수 있다.
- 상태복구 : 인터럽트 발생 시 저장해둔 PC(Program counter)를 다시 복구한다.
- 중단된 프로그램 실행 재개 : PCB의 값을 이용하여 이전에 수행중이던 프로그램을 재개한다.
7. 인터럽트 우선순위 :
- 일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높고,
- 일반적으로 높고 내부 인터럽트 보다 외부 인터럽트가 우선 순위가 높다
[참고 사이트]
https://itwiki.kr/w/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8
'IT기술 & IT용어' 카테고리의 다른 글
56. [IT 용어] 프록시 (Proxy) 용어 설명 (0) | 2022.10.23 |
---|---|
55. [IT 용어] DMZ 구간 용어 설명 (0) | 2022.10.23 |
53. [IT 기술] 폴링 (polling) 설명 (0) | 2022.10.21 |
52. [IT 용어] 모듈 (Module) , 공통 모듈 (Common Module) 용어 설명 (0) | 2022.10.21 |
51. [IT 용어] SDK (Software Development Kit) 설명 (0) | 2022.10.21 |