Don't Look Back In Anger

탑스팟 컴퓨터일반 22. 인터럽트 본문

IT/탑스팟 컴퓨터일반

탑스팟 컴퓨터일반 22. 인터럽트

버로나 2022. 2. 19. 15:23

<인터럽트(Interrupt)>

- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 실행중인 작업을 일시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것

 

<인터럽트의 종류>

- 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 구분

외부 인터럽트 외부 인터럽트는 다음과 같이 입·출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발생
- 입·출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우
- 특정 장치에 할당된 작업 시간이 끝났을 경우
- 컴퓨터의 전원 공급이 끊어졌을 경우
내부 인터럽트 내부 인터럽트는 다음과 같이 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부름
- 명령 처리 중 오버플로(Overflow) 또는 언더플로(Underflow)가 발생했을 경우
- 0으로 나누는 명령이 수행될 경우
소프트웨어 인터럽트
(= 슈퍼바이저 콜(SVC) 인터럽트)
소프트웨어 인터럽트는 프로그램 처리중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 운영체제의 감시 프로그램을 호출하는 SVC(Super Visor Call) 인터럽트가 있음

 

https://youtu.be/u76nAGoJAEY

 

<인터럽트의 동작 원리>

① 인터럽트 요청 신호 발생

② 프로그램 실행 중단

③ 현재의 프로그램의 상태 보존

④ 인터럽트 처리 루틴을 실행 : 장치 식별

⑤ 인터럽트 서비스(취급) 루틴 실행 : 실질적인 인터럽트 처리

⑥ 상태 복구

⑦ 중단된 프로그램 실행 재개

 

https://youtu.be/n_mEZS6I950

 

<인터럽트 우선순위 체제>

(1) 소프트웨어적인 방법 (Polling)

 

(2) 하드웨어에 의한 방식

① 데이지 체인(Daisy-Chain)

- 모든 입출력 모듈이 하나의 인터럽트 요구 선을 공유

- 인터럽트를 발생하는 모든 장치를 직렬로 연결하되 우선순위가 가장 높은 장치를 선두로 우선순위에 따라 연결

- 위치에 의해 우선순위가 결정되므로, CPU와 가장 가까운 것이 우선순위가 높다

- 하드웨어가 간단한 장점은 있지만, 우선순위가 낮은 장치들이 서비스를 받지 못하거나 오래 기다려야 하는 단점이 있다

- 인터럽트를 발생시킨 장치가 인터럽트 인식(ACK) 신호를 받으면 자신의 장치번호를 중앙처리장치로 보낸다

 

② 병렬 우선순위 인터럽트

 

<인터럽트 - 구동 입출력 방식>

- 중앙처리장치에서 입출력 명령을 받은 입출력 모듈이 동작을 수행하는 동안 중앙처리장치가 다른 프로그램을 처리할 수 있다

 

<인터럽트 - 구동 입출력 방식의 읽기 동작>

① 중앙처리장치가 입출력 모듈로 읽기 명령을 보낸다

② 입출력 모듈은 주변장치에서 데이터를 읽는다. 중앙처리장치는 다른 일을 수행한다

③ 입출력 모듈이 중앙처리장치로 인터럽트 신호를 보낸다

④ 중앙처리장치가 입력된 데이터를 요구한다

⑤ 입출력 모듈이 중앙처리장치로 데이터를 전송한다