인터럽트(interrupt)란? 하드웨어, 소프트웨어

컴퓨터는 멀티태스킹이 불가능합니다. 그러나 가능한 것처럼 보입니다. 왜냐하면 운영체제에 인터럽트(interrupt) 기능이 있기 때문입니다.

인터럽트란?

인터럽트는 CPU가 하던 작업을 중단하고, 먼저 처리할 다른 작업을 수행하고 다시 원래의 작업으로 복귀하도록 하는 신호입니다.

인터럽트가 필요한 이유

운영체제는 동시에 여러 작업을 처리할 수 없습니다. 그러나 사용자는 한 번에 여러 작업을 처리하길 원합니다. 멀티태스팅이 가능하려면 먼저 시작한 작업이라 할지라도 우선순위가 더 높은 작업을 먼저 처리하도록 지시할 수 있어야 합니다. 그 기능이 인터럽트입니다.

 

인터럽트가 필요한 이유를 설명하는 예시로 프린터의 인쇄 작업을 들 수 있습니다.

 

사용자가 인쇄 기능을 사용하면 CPU는 프린터에게 문서 인쇄를 지시합니다. 프린터는 작업을 수행합니다. 이때 문제가 있습니다. 프린터는 CPU만큼 처리 속도가 빠르지 않다는 것입니다. 때문에 CPU는 프린터가 작업을 마칠 때까지 기다려야 합니다. 상당한 비효율입니다. 그러나 인터럽트가 작동하면 CPU는 프린터가 하는 작업을 끝내기 전에 다른 작업을 하고 올 수 있습니다.

인터럽트의 종류

인터럽트는 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉩니다.

 

1. 하드웨어 인터럽트

하드웨어 인터럽트는 외부 장치 또는 하드웨어에서 생성되는 인터럽트입니다. 위에서 언급한 프린터 예시는 하드웨어 인터럽트로 볼 수 있습니다. 그 외에도 키보드 입력, 마우스 클릭, USB 장치, NIC 카드 등으로 인터럽트 발생이 가능합니다.

 

2. 소프트웨어 인터럽트

소프트웨어 인터럽트는 컴퓨터의 내부 시스템에서 생성되는 인터럽트입니다. 소프트웨어 인터럽트는 응용 프로그램이 종료 또는 예외처리 되거나 운영체제에 서비스를 요청할 때 발생합니다. 소프트웨어 인터럽트는 커널과 통신해 간접적으로 중앙 처리 장치를 인터럽트 합니다.

반응형

댓글

Designed by JB FACTORY