1.인터럽트 개념


인터럽트란 일상 생활에서의 갑작스러운 사건이라고 할 수 있다. 예를 들어

  • 인터럽트 요청: 학생이 질문 하였다면,
  • 상태저장: 강사는 설명하던 것을 잠시 멈추고,
  • 인터럽트 서비스: 학생의 질문에 답변을 한 후에,
  • 인터럽트 복귀: 다시 질문 전에 강의하던 내용으로 돌아와 계속 강의를 진행한다. 

컴퓨터에서도 이와 같은 사건이 발생할 수 있다.

컴퓨터의 정상적인 프로그램 실행을 방해하는 사건이 발생하는 것을 컴퓨터의 실행을 방해한다는 의미로 인터럽트라고 한다. 

인터럽트는 컴퓨터내부와 외부에서 발생할 수 있다.

컴퓨터 내부에서 발생하는 인터럽트가 발생하면 컴퓨터는 더이상 프로그램을 실행할 수가 없다. 


-내부 인터럽트

  • 하드웨어 고장: 데이터 전달 과정에서 비트 오류 혹은 컴퓨터 전원 꺼짐 등 프로그램의 실행과 관계 없음
  • 실행할 수 없는 명령어: 기억장치에서 인출한 명령어의 비트 패턴이 정의되어 있지 않아 CPU가 그 명령어를 실행할 수 없음
  • 명령어 실행 오류: 인출 명령어는 정상적이지만 명령어를 실행할 수 없는 경우.(ex. 인출한 명령어가 나누기인데, 나누는 수가 0)
  • 사용 권한 위배: 운영체제가 컴퓨터자원을 보호하기 위해 사용자가 접근할 수 있는 영역과 접근할 수 없는 영역을 제한해 놓았다. 만약 운영체제만 접근 가능한 영역에                     액세스하려고 한다면 인터럽트가 발생한다. 

-외부 인터럽트 

  • 타이머 인터럽트
  • 입추력 인터럽트: 속도가 느린 입출력장치가 입출력 준비가 완료되었다는 것을 중앙처리 장치에게 알리기 위하여 사용하는 인터럽트


2. 인터럽트 처리 과정


①인터럽트 요청(interrupt request): 임의의 소스가 인터럽트를 요청

②인터럽트 승인(interrupt acknowledge): CPU는 인터럽트 요청을 인식하고, 인터럽트 소스에게 인터럽트를 확인하였을음 알려준다. 

③상태 저장(context save): CPU는 현재 실행하던 프로그램을 중단하고 현 상태를 저장한다.

④인터럽트 서비스(interrupt service): CPU는 인터럽트 소스가 요구한 작업을 실행한다.

⑤인터럽트에서 복귀(return form interrupt): CPU는 원래 실행하던 프로그램으로 복귀한다. 


CPU는 인터럽트 소스가 요청한 작업을 수행하여야 하는데, 이것도 기억장치에 저장되어 있는 프로그램이다. 

이프로그램을 인터럽트 서비스 루틴(Interrupt Service Routine, ISR) 혹은 인터럽트 핸들러(interrupt handler)라고 한다. 

인터럽트 서비스 루틴은 인터럽트 종류마다 하나씩 기억장치에 준비되어 있어야 한다. 


CPU가 인터럽트 요청을 인식하고 승인하기 위하여 중앙처리장치의 제어 버스는 다음과 같은 두개의 제어선을 포함하고 있다. 





'컴퓨터 공부 > 컴퓨터구조' 카테고리의 다른 글

인터넷 접속 과정과 nat  (0) 2016.08.11
스택포인터  (4) 2016.01.18

+ Recent posts