인터럽트

숭이·2021년 5월 19일
0

OS

목록 보기
4/11

인터럽트(Interrupt)

  • 프로그램을 실행하는 중에 예기치 않은 상황이 발생할 경우, 혹은 지금 수행중인 작업보다 더 중요한 일이 생기면 CPU에 신호를 보내 현재 진행중인 프로그램을 즉시 중단하고 발생한 상황을 우선적으로 처리하고 다시 복귀하는 과정
  1. 외부 인터럽트
    갑작스러운 전원 이상, 기계 착오, 입출력 요청(입출력 장치의 속도가 느리기 때문에 먼저 해줌)

  2. 내부 인터럽트
    잘못된 명령이나 데이터를 사용할 때(Trap)
    ex) 0으로 숫자를 나눌 때, Overflow, 명령어를 잘못 사용하는 경우
    -> Process Kill을 통해 핸들링 해줘야 한다.

  3. 소프트웨어 인터럽트
    사용자가 직접 프로그램을 실행하여 인터럽트 발생.

인터럽트 발생 처리 과정

2 : 인터럽트 신호가 CPU에 전달되면 즉시 실행중인 프로그램을 중지한다. 추후에 다시 복귀해야 하므로 PC(Program Counter)와 SR(Status Register)를 저장한다.

PC : 명령어의 실행 순서를 담고 다음 실행할 명령어의 주소를 저장하는 공간.	

4 : 인터럽트 백터 : 인터럽트 서비스 루틴에 대한 정보를 모아놓은 영역

인터럽트가 필요한 이유

  • 인터럽트를 사용하지 않으면 CPU는 스스로 이벤트 발생여부를 일정시간마다 확인해야 함(Polling)
    -> 프로세스 수행 효율이 떨어짐
  • 인터럽트를 사용하므로 감시에 신경을 쓰지 않고 인터럽트 요청이 왔을 경우만 따로 수행해주면 되므로 프로세스 수행 효율이 올라감!

0개의 댓글