인터럽트

Choco·2023년 7월 28일
post-thumbnail

인터럽트(interrupt)란?

CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 실행중인 작업을 중단하고 처리

인터럽트의 종류는 크게 내부,외부 나뉜다.

내부 인터럽트

  • 잘못된 명령(divsion by Zero,Over/Underflow 등)

외부 인터럽트

  • 전원 이상:정전이나 파워 문제
  • CPU 기능 오류
  • 외부신호:작업관리자 호출,절전모드
  • 입출력 장치에서의 호출

인터럽트 처리 과정

CPU는 인터럽트 요청이 들어오는 즉시 프로그램을 중단하는것이 아닌 실행되고있는 명령어 단위가 끝날때 마다 요청을 확인하여 인터럽트를 승인시킨다.

승인을 하면 인터럽트 단계로 들어가서 다시 복귀하여 프로그램을 실행시킬때(CPU가 원래하고 있던 일 재개) 필요한 정보들을 저장하고,인터럽트 요청 소스를 확인하고,인터럽트 서비스 루틴(ISR)을 준비한다.

더 자세히 알아보자

  1. 인터럽트 상태가 되면 프로그램을 중단 시키고 현재 현재 상태(PC,SR,PCB)를 스택에 저장한다.
  2. 인터럽트 서비스 루틴(특정 인터럽트가 오면 그에 맞는 행동)이 모아져있는 인터럽트 벡터에서 해당 인터럽트를 찾아 루틴을 한다.
  3. 루틴이 끝나고 복귀하면 스택에 저장했던 값 복구한다.
profile
주니어 백엔드 개발자 입니다:)

1개의 댓글

comment-user-thumbnail
2023년 7월 28일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기