OS - 인터럽트

itonse·2024년 5월 22일
0

CS 스터디

목록 보기
40/56

해당 주제의 기술면접 질문 미리보기

Q1. 인터럽트(Interrupt) 가 무엇인지 설명해주세요.
Q2. 인터럽트 발생 시 처리 과정을 설명해보세요.


인터럽트란?

인터럽트는 프로그램 실행 도중 예기치 않은 상황이 발생했을 때, 현재 실행 중인 작업을 즉시 중단하고 발생한 상황을 우선 처리하도록 CPU에 알리는 것을 말합니다.



인터럽트 종류

(1) 내부 인터럽트

  • Trap이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생합니다.
    -> 0으로 나누기, 오버플로우, 잘못된 명령어 사용(Exception)

  • 주로 프로그램 오류나 예외 상황을 처리하기 위해 발생합니다.

(2) 외부 인터럽트

  • CPU의 하드웨어 신호에 의해 발생합니다.

  • 입출력 장치(키보드 입력, 마우스 클릭), 전원 등 외부적인 요인으로 발생합니다.

  • 외부 인터럽트는 일반적으로 하드웨어 장치의 작업 완료나 상태 변화를 알리기 위해 사용됩니다.

(3) 소프트웨어 인터럽트

  • 프로그램 처리 중 명령의 요청에 의해 발생한 것 입니다.
    -> 시스템 콜, 예외처리
  • 소프트웨어 인터럽트는 주로 운영체제와의 상호작용을 위해 사용됩니다.



인터럽트 발생 처리 과정

이미지 출처
  1. 인터럽트 요청 발생: CPU가 인터럽트 신호를 감지합니다.

  2. 현재 명령어 수행 완료: 현재 실행 중인 명령어를 마칩니다.

  3. 프로그램 상태 보관: 프로그램 카운터(PC)와 레지스터 등의 현재 상태를 스택에 저장합니다.

  4. 인터럽트 벡터 테이블 참조: 인터럽트 벡터 테이블에서 해당 인터럽트에 대한 서비스 루틴(ISR)의 주소를 찾습니다.

  5. 인터럽트 서비스 루틴(ISR) 실행: 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리합니다.

  6. 인터럽트 처리 완료: 인터럽트 서비스 루틴이 작업을 마칩니다.

  7. 프로그램 상태 복구: 스택에서 저장된 프로그램 상태를 복원합니다.

  8. 프로그램 재실행: 중단된 지점에서 프로그램을 다시 실행합니다.



인터럽트 관련 기술면접 질문

Q1. 인터럽트(Interrupt) 가 무엇인지 설명해주세요.

인터럽트는 프로그램 실행 도중 예기치 않은 상황이 발생했을 때, 현재 실행 중인 작업을 즉시 중단하고 발생한 상황을 우선 처리하도록 CPU에 알리는 신호입니다. 이를 통해 시스템은 긴급한 작업을 먼저 처리할 수 있으며, 주로 하드웨어나 소프트웨어 이벤트에 의해 발생합니다.


Q2. 인터럽트 발생 시 처리 과정을 설명해보세요.

인터럽트가 발생하면 먼저, CPU는 인터럽트 신호를 감지합니다. 이후 현재 실행 중인 명령어가 완료된 시점에서 작업을 중단하고, 프로그램 카운터(PC)와 레지스터 등의 현재 상태를 저장합니다.

다음으로, CPU는 인터럽트 벡터 테이블을 참조하여 해당 인터럽트를 처리할 인터럽트 서비스 루틴(ISR)의 주소를 찾고, ISR을 실행하여 인터럽트를 처리합니다.

인터럽트 처리 루틴이 완료되면, CPU는 저장된 프로그램 상태를 복원하고 다시 사용자 모드로 전환합니다. 마지막으로, 중단된 지점에서 프로그램을 다시 실행하여 작업을 계속 이어갑니다.



ref.
https://maivve.tistory.com/273
https://lealea.tistory.com/245

0개의 댓글