본문 바로가기

컴퓨터/컴퓨터활용능력

[컴퓨터 일반] 10. 인터럽트 /채널/DMA

 

[컴퓨터 일반] 10. 인터럽트 /채널/DMA

 

인터럽트, 채널, DMA는 CPU와 입·출력장치 사이에서 사용되는 제어 방식입니다.

 

1. 인터럽트(Interrupt)

인터럽트(Interrupt)는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 일시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것을 말합니다.

인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 구분됩니다.

 

외부 인터럽트 

외부 인터럽트는 입·출력장치, 타이밍 장치, 전원 등 외부적인 요인에의해 발생합니다.

- 입·출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우

- 특정 장치에 할당된 작업 시간이 끝났을 경우

- 컴퓨터의 전원 공급이 끊어졌을 경우 

내부 인터럽트

 내부 인터럽트는 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부릅니다.

- 명령 처리 중 로버플로(Overflow) 또는 언더플로(Underflow)가 발생했을 경우

- 0으로 나누는 명령이 수행될 경우

소프트웨어 인터럽트 

 소프터웨어 인터럽트는 프로그램 처리중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 운영체제의 감시 프로그램을 호출하는 SVC(Super Visor Call) 인터럽트가 있습니다.

 IRQ(Interrupt ReQuest, 인터럽트 요청값) : 컴퓨터를 구성하는 각 장치들은 인터럽트를 요청할 때 CPU가 각 장치를 구분할 수 있는 고유한 IRQ가   있습니다. CPU는 각 장치에서 발생하는 IRQ를 확인한 후 우선순위가 가장 높은 장치에서 먼저 인터럽트를 허용합니다. 만약 IRQ가 동일한 하드웨어가 있으면 충돌이 발생하여 두 장치 모두 사용할 수 없게 됩니다. 

 

2. 채널(Channel)

채널(Channel)은 주변장치에 대한 제어 권한을 CPU로부터 넘겨받아 CPU대신 입·출력을 관리하는 것으로, 중앙처이장치와 입·출력장치 사이의 속도 차이로 인한 문제점을 해결하기 위해 사용됩니다.

● 채널은 입·출력 작업이 끝나면CPU에게 인터럽트 신호를 보냅니다.

채널에는 고속의 입·출력장치를 제어하는 셀렉터(Selector) 채널과 저속의 입·출력장치를 제어하는 멀티플렉서(Multiplexer) 채널, 그리고 두기능이 혼합된 블록 멀티플렉서(Block Multiplexer) 채널이 있습니다.

 

3. DMA(Direct Memory Access)

DMA(Direct Memory Access)는 CPU의 참여없이 입·출력장치와 메모리(주기억장치)가 직접 데이터를 주고받는 것을 말합니다.

DMA 제어기는 작업이 끝나면 CPU에게 인터럽트 신호를 보내 작업이 종료됐음을 알립니다.

DMA 방식을 이용하면 CPU는 입·출력 작업에 참여하지 않고 다음 명령을 계속 처리하므로, 시스템의 전반적인 속도가 향상됩니다.