인터럽트

이동섭·2023년 10월 16일
0

운영체제

목록 보기
4/13
post-custom-banner

컴퓨터 시스템에서 발생한 사건을 CPU에 알리는 것
인터럽트가 발생한다면 현재 실행 중인 프로세스를 일시 중지하고 인터럽트를 처리한다.

외부 인터럽트

컴퓨팅 시스템 외부에서 발생하는 사건에 의해 발생한다.
보통 비동기적으로 발생한다.
ex) 키보드 입력, 마우스 클릭, 네트워크 신호 수신

내부 인터럽트

프로그램 실행 중에 소프트웨어나 하드웨어의 상태 변화로 발생한다.
ex) 분모가 0인 나눗셈 연산, system call

하드웨어 인터럽트

외부 장치 =(키보드, 마우스 등)에서 발생하는 사건에 의해 발생한다.
ex) 사용자가 키보드를 누르면 키보드는 하드웨어 인터럽트를 생성해 CPU에 신호를 보낸다.

소프트웨어 인터럽트

프로그램 내부에서 명령의 결과나 상태 변경 등에 의해 발생한다.
ex) system call, exception

인터럽트 발생 처리 과정

  1. 인터럽트 발생
  • 하드웨어 장치, 운영 체제, 또는 실행 중인 프로그램 등으로부터 인터럽트가 발생
  1. 현재 상태 저장
  • CPU는 현재 수행 중이던 작업의 상태를 저장하는 '컨텍스트 저장(context saving)'을 수행한다. 컨텍스트에는 프로그램 카운터, 레지스터 값 등의 정보가 포함됩니다.
  1. 인터럽트 서비스 루틴 호출
  • 인터럽트 벡터 테이블(Interrupt Vector Table)에서 해당 인터럽트에 대한 처리 루틴의 주소를 찾아서 그곳으로 제어권을 넘깁니다. 이 때 호출되는 함수를 '인터럽트 서비스 루틴(Interrupt Service Routine)'이라고 합니다.
  1. 인터럽트 처리
  • 인터럽트 서비스 루틴은 발생한 인터럽트에 대한 적절한 동작을 수행한다.
  1. 상태 복원 및 제어 반환
  • 처리가 완료되면 원래의 컨텍스트를 복원하고 CPU 제어권을 원래 실행하던 작업으로 돌려준다.

인터럽트 폴링 방식

CPU가 주기적으로 또는 연속적으로 각 장치의 상태를 확인(폴링)하여, 해당 장치에서 서비스가 필요한 작업이 있는지를 검사하는 방식

인터럽트 기반 방식

장치는 서비스가 필요할 때만 CPU에 신호(인터럽트)를 보내고, 그 외의 시간에는 CPU가 다른 작업을 계속할 수 있는 방식

post-custom-banner

0개의 댓글