인터럽트

코난·2024년 1월 15일
0

CS 면접 정리

목록 보기
23/67

인터럽트란?

인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 현재 실행중인 작업을 일시 중단하고, 발생한 상황을 우선 처리한 후 실행중인 작업으로 복귀하는 것을 말한다.

인터럽트의 종류

외부 인터럽트

  • 전원 이상 인터럽트 : 정전, 파워 이상 등
  • 기계 착오 인터럽트 : CPU의 기능적인 오류
  • 외부 인터럽트 :
    • 자원의 할당된 시간이 다 끝난 경우
    • 키보드로 인터럽트 키를 누른 경우(Ctrl + Alt + Delete)
    • 외부장치로부터 인터럽트 요청이 있는 경우
  • 입출력 인터럽트 :
    • 입출력장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우
    • 입출력 데이터에 이상이 있는 경우

내부 인터럽트

  • 잘못된 명령이나 잘못된 데이터를 사용할 때 발생
  • 프로그램 검사 인터럽트
    • Division by zero
    • Overflow / Underflow
    • 기타 프로그램 Exception

소프트웨어 인터럽트

  • 프로그램 처리 중 명령의 요청에 의해서 발생
  • 대표적인 형태로는 프로그램에서 감시 프로그램(SVC) 호출
  • SVC
    • 사용자가 프로그램을 실행시키거나 감시프로그램을 호출하는 동작을 수행하는 경우
    • 복잡한 입출력 처리를 하는 경우

인터럽트 처리를 위한 작업 순서

  1. 인터럽트가 발생하며 운영체제가 제어권을 받는다.
  2. 운영체제는 인터럽트 받은 현재의 프로세스 상태를 저장한다. (PCB에 저장한다)
  3. 운영체제는 인터럽트의 발생 원인을 찾아 지정되어 있은 루틴으로 제어권을 넘겨준다.
  4. 인터럽트 처리 루틴이 인터럽트를 처리한다.
  5. 인터럽트가 걸렸던 이전 프로세스의 상태로 복구된다.
  6. 인터럽트가 걸렸던 시점 이후부터 프로세스가 실행된다.

인터럽트 우선순위

일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높고, 내부 인터럽트 보다 외부 인터럽트가 우선 순위가 높다.

폴링 VS 인터럽트

폴링

SW적으로 주기적으로 값을 읽는 방식! -> CPU가 항상 깨어 있어야 함

  • 폴링은 대상을 주기적으로 감시하여 상황이 발생하면 해당 처리 루틴을 실행해 처리한다면, 인터럽트는 상대가 CPU에게 일을 처리해달라고 요청하는 수단이다. 폴링은 주기적으로 미아크로프로세서가 상태를 파악하기 위해 장치의 레지스터를 읽어야 하고, 이 작업이 진행되는 동안은 다른 장치의 체크는 힘들다.
  • 보통 while문과 같은 loop문으로 이어지는데, 계속해서 상태를 체크하면서 확인해야하기 때문에 군데군데에서 소스 상태를 체크할 수 있도록 코딩해야 한다.
  • 폴링의 주기가 짧으면 서버 성능에 부담이 생기고 주기가 길어지면 실시간성이 떨어진다.

인터럽트

주로 HW적으로 구성되어 있어 원하는 값이 들어오면 등록된 함수 호출!(HIGH or LOW) -> CPU가 sleep 상태일때도 사용 가능

  • 인터럽트는 새치기, 중단이라는 뜻으로 CPU가 프로그램을 실행하고 있을 때 주변 장치들의 입출력이나 하드웨어 문제가 발생하여 처리가 필요한 경우, 프로그램에서 예외 등이 발생했을 때 CPU에게 이를 알려주는 방식이다.
  • 인터럽트 핀에 신호가 들어오면, 스택 공간에 실행중이던 주소번지를 저장하고, 인터럽트 서비스 루틴을 실행한다. 루틴을 마치면, 저장되어 있던 스택에 작업중이었던 주소번지를 읽어들여 다시 작업하는 곳으로 복귀해서 하던 일을 계속 이어나가는 것이다.

https://itwiki.kr/w/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8
https://velog.io/@jeeho102/%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8-%ED%8F%B4%EB%A7%81%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://gyeong-log.tistory.com/63

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글