[OS] 인터럽트

Emily·2020년 11월 20일
0

운영체제

목록 보기
1/1
post-custom-banner

인터럽트란?

프로그램을 실행하는 도중에 예기지 않은 상황이 발생할 경우 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것

인터럽트의 종류와 발생 원인

외부 인터럽트

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

전원 이상 인터럽트 : 정전이되거나 전원 이상이 있는경우 발생
기계 착오 인터럽트 : CPU의 기능적인 오류 동작이 발생한 경우 발생
외부 신호 인터럽트 : 타이머에 의해 규정된 시간을 알리는경우, 키보드로 인터럽트 키를 누른 경우, 외부 장치로부터 인터럽트 요청이 있는 경우 발생
입출력 인터럽트 : 입출력 Data의 오류나 이상 현상이 발생한 경우, 입출력장치가 데이터의 전송을 요구하거나 전송을 끝났음을 알릴 경우 발생

내부 인터럽트(Trap)

잘못된 명령이나 데이터를 사용할 때 발생하는 인터럽트

프로그램 검사 인터럽트 : 0으로 나누기가 발생한 경우, OverFlow 또는 UnderFlow가 발생한경우, 프로그램에서 명령어를 잘못 사용한 경우, 부당한 기억장소의 참조와 같은 프로그램 상의 오류가 발생

소프트웨어 인터럽트

프로그램 처리 중 명령의 요청에 의해 발생하는 인터럽트

SVC인터럽트 : 사용자가 SVC명령을 써서 의도적으로 호출한 경우, 복잡한 입출력 처리를 해야하는 경우, 기억장치 할당 및 오퍼레이터와 대화를 해야하는 경우 발생

인터럽트 발생 시 처리과정

  1. 프로그램 실행을 중단한다.
  2. 현재의 프로그램 상태를 보존한다.
  3. 인터럽트 처리 루틴을 실행한다.
  4. 인터럽트 서비스 루틴을 실행한다.
    5, 인터럽트 요청 신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장한다.
  5. PC의 값을 이용하여 인터럽트 발생 이전에 수행중이던 프로그램을 계속 실행한다.

참고 사이트

인터럽트의 정의와 종류 및 처리과정

profile
룰루랄라
post-custom-banner

0개의 댓글