본문 바로가기
컴퓨터 지식창고

인터럽트에 대한 설명

by 재미보장 2021. 12. 12.

이번 포스팅에서는 컴퓨터 시스템상의 인터럽트 개념에 대하여 자세하 알아보겠다.

인터럽트란

기본적으로 단일 컴퓨터는 오직 한번에 한 개의 컴퓨터 명령어만을 수행할 수 있다. 그러나, 인터럽트 신호가 있기 때문에, 다른 프로그램이나 명령문을 수행할 수 있는 순서를 가질 수 있다. 이렇게 하는 것을 멀티태스킹이라고 하는데, 이것은 사용자로 하여금 동시에 여러 개의 작업을 할 수 있도록 해준다. 컴퓨터는 사용자가 효과적으로 일할 수 있게끔, 단순히 그 프로그램들이 수행될 순서를 관리한다. 물론, 컴퓨터는 사용자의 모든 작업들이 동시에 수행되는 것처럼 보이게 빠른 속도로 동작한다.

 

인터럽트는 컴퓨터에 장착된 장치나 컴퓨터 내의 프로그램으로부터 오는 신호로서 운영체계가 하던 일을 멈추고 다음에 무엇을 할 것인지를 결정하게 한다. 오늘날 거의 모든 PC나 대형 컴퓨터들이 인터럽트 기반의 시스템인데, 즉 일단 프로그램 내의 컴퓨터 명령문을 시작되면, 더 이상 작업을 진행할 수 없거나, 또는 인터럽트 신호가 감지될 때까지 명령문들을 실행한다. 인터럽트 신호가 감지되면, 컴퓨터는 실행되고 있던 프로그램을 재개하거나, 또는 다른 프로그램의 실행을 시작한다.

운영체계는 대개 인터럽트 관리기능을 가지고 있다. 인터럽트 관리장치는 만약 하나이상의 인터럽트가 처리되어야 하는 경우라면, 인터럽트들 간의 우선 순위를 정하고 그들을 큐에 저장한다. 운영체계는 스케줄러라고 불리는 또다른 작은 프로그램을 가지고 있는데, 이는 다음 번에 수행되어야할 프로그램에게 제어권을 넘겨준다.

즉 인터럽트는 주로 예상시점을 가늠하기 어려운 이벤트를 처리하기 위해 사용하는 방법입니다.

일반적으로 봤을 때 프로그램 자신의 맡은 일을 시작 부터 종료할 때까지 중단 없이 끝내도록 하는게 매우 간단해 보이긴 하지만 이런 저런 이유로 외부에서 "중단(Interrupts)"이 요청되게 된다. 예를 들자면 마우스의 움직임이 있을 때 발생하는 것과 같은 인터럽트로 마우스 장치는 마우스가 움직일 때 현재의 프로세스에 인터럽트를 발생시키게 된다. 이렇게 인터럽트가 발생하게 되면 인터럽트 핸들 러(interrupt handler)가 수행된다. 인터럽트 핸들러는 프로그램을 중단시키는 루틴을 수행한다.

인터럽트의 종류

인터럽트는 마우스와 같은 주변장치에서 발생하는 하드웨어 인터럽트와 소프트웨어에서 인위적으로 발생시키는 소프트웨어 인터럽트가 있는데, 합해서 256가지의 인터럽트를 가지게 되며, 각각의 인터 럽트는 고유한 번호를 가지게 된다. 인터럽트 핸들러는 인터럽트가 발생한 물리적인 메모리의 위치를 기억하기 위한 세그먼트 어드레스를 포함하게 된다. 그래서 인터럽트 핸들러가 끝난후 중단된 프로세 스에서 다시 하던 일을 계속하도록 지시할 수 있다.

하드웨어 인터럽트

하드웨어 인터럽트들은 CPU외의 다른 장치들에서 발생한다. 키보드, 디스크 드라이브, CD-ROM, 사운 드 카드, 마우스와 같은 장치들이 이에 포함된다. 내부 인터럽트는 CPU로 부터 발생하는 운영오류 등 이 포함된다. 이러한 인터럽트들은 트랩(traps)이라고 부르기도 한다.

소프트웨어 인터럽트 

소프트웨어 인터럽트들은 말그대로 프로그램에서 필요에 따라 발생시키는 인터럽트 들로 고유의 API (Application Programming Interface)를 이용해서 발생시킨다. 유닉스와 윈도우즈 같은 현대적인 대 부분의 운영체제들은 C로된 소프트웨어 인터럽트 인터페이스를 가진다.

 연관정보 : 리룩스의 개념과 장점

 

리눅스의 개념과 장점에 대하여 알아보자

리눅스는 유닉스를 모태로 한다. 유닉스에서 나왔다고 봐도 되지만, 리눅스는 사실 오픈소스 개념으로 출시되고, 리눅스 제단이 있지만, 누구가 소스를 수정하여 재컴파일할 수 있다. 이번 포스

gguljaem.tistory.com

 

연관정보 : 명령어 처리방식 RISC와 CISC의 비교 

 

 

명령어 처리방식 RISC와 CISC의 기본개념과 비교

컴퓨터의 명령어 처리 방식에는 RISC와 CISC RISC(Reduced Instruction Set Computer)는 컴퓨터 내부적으로 사용하는 명령어 세트를 단순화 시켜서 처리하는 형태의 구조이다. 단순한 명령을 조합해서 하나의

gguljaem.tistory.com

 

댓글