인터럽트

Ju_Nik_e·2023년 5월 28일
0

Pintos

목록 보기
2/3
post-thumbnail

인터럽트란?

장치나 소프트웨어에서 운영체제로 전송되는 신호이다.(하드웨어를 잠깐 멈추는(방해) 신호)
컴퓨터는 기본적으로 혼자 작동할 수 없고, 주변기기와 함께 작동한다. 주변기기와 컴퓨터가 통신 즉, 입/출력을 할 때마다 인터럽트가 발생한다.

  • 인터럽트 발생 시 운영체제는 현재 진행 중인 작업을 일시적으로 중단하고 인터럽트 핸들러를 사용해 인터럽트를 처리한다.

  • 인터럽트는 사용자 입력, 데이터 전송 완료, 오류 조건 등 즉각적인 처리를 필요로 하는 이벤트를 알리기 위해 사용된다.

  • 인터럽트 핸들러는 인터럽트를 처리하고 인터럽트의 유형과 우선순위에 따라 적절한 조치를 취한다.

  • 인터럽트 처리 과정에서 운영 체제는 중요하지 않은 기능을 우선순위가 높은 인터럽트 처리를 무시하거나 지연시킬 수 있다. 이를 위해 중요한 작업이나 이벤트 처리에 우선순위를 부여할 수 있다.

인터럽트의 예시

  • 하드웨어 오류
    프린터에서 용지 걸림과 같은 하드웨어 오류가 발생한 경우

  • 디스크 드라이버 준비
    디스크 드라이버에서 더 많은 데이터를 수신할 준비가 되었을 경우

  • 사용자의 입력
    사용자가 현재 프로세스를 중단하려고 ctrl+alt+delete 키를 눌렀을 경우

  • 소프트웨어 오류
    소프트웨어에서 오류가 발생한 경우

위와 같이 일부 인터럽트는 사용자 개입을 필요로 할 수 있으나(사용자의 입력), 몇몇은 자동으로 발생한다(디스크 드라이버 준비).

인터럽트의 역할

인터럽트를 통해 다중 프로그램 실행이 가능해지므로, 사용자는 동시에 여러 작업을 수행하는 것처럼 느낄 수 있다.

  • 컴퓨터는 원래 한 번에 하나의 프로그램만 실행(작업을 처리)할 수 있다.

  • 인터럽트로 인해 멀티태스킹이 가능해지면서, 여러 프로그램이 동시에 실행되는 것처럼 느껴지게 한다.

  • 실제로는 프로그램들이 굉장히 빠르게 전환되면서, 스케쥴된 인터럽트를 사용한다.

인터럽트 핸들러

인터럽트 신호를 수신하는 대로 처리하는 역할을 한다.

  • 인터럽트 신호를 우선순위에 따라 처리
    여러 개의 인터럽트가 동시에 발생할 경우, 적절한 순서로 처리하기 위해 우선순위를 결정한다.

  • 일반적으로 인터럽트를 처리하기 위해 큐를 사용해 인터럽트를 배치한다.
    우선순위에 따라 큐에 인터럽들을 배치하고 핸들러는 큐에서 순서대로 인터럽트를 가져와 처리한다.

0개의 댓글