인터럽트
인터럽트란?
|
컴퓨터가 파일을 처리하면서 복잡하고 커다란 파일을 처리하면 거기에 집중해서 아무런 일을 못하게 됩니다. 커다란 파일을 복사하는데 CPU가 마우스 동작을 받지 않고 거기에만 집중한다면 파일을 옮길동안 아무것도 하지 못하는 상황이 될 것입니다. 이런예기치 않은 상황이 발생할 경우 현재 실행중인작업을 일시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것을 말합니다.
IRQ
인터럽트를 요청하는 것에도 우선순위가 있습니다. 이것을 IRQ라고 부르는데 컴퓨터를 구성하는 각 장치들은 CPU에게 인터럽트를 요청할 때 CPU가 각 장치를 구분할 수 있는 고유한 IRQ가 있습니다. CPU는 각 장치에서 발생하는 IRQ를 확인한 후 우선순외가 가장 높은 장치에게 먼저 인터럽트를 허용합니다. 만약 IRQ가 동일한 하드웨어가 있으면 충돌이 발생하여 두 장치 모두 사용할 수 없게 됩니다.
인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 구분됩니다.
외부인터럽트
외부인터럽트는 입·출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해서 발생합니다.
예를들면
입 출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알리는 경우
특정 장치에 할당된 작업 시간이 끝났을 경우
컴퓨터의 전원 공급이 끊어졌을 경우
내부 인터럽트
내부인터럽트는 다음과 같이 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩이라고도 부른다.
예를들면
명령 처리 중 오버플로 또는 언더플로가 발생했을 경우
0으로 나눈느 명령이 수행됬을 경우
소프트웨어 인터럽트
소프트웨어 인터럽트는 프로그램 처리중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 운영체제의 감시 프로그램을 호출하는 SVC인터럽트가 있다.