본문 바로가기
IT

[운영체제] 인터럽트

by 내일은교양왕 2023. 10. 28.

운영체제의 인터럽트는 컴퓨터 시스템에서 발생하는 이벤트나 예외 상황을 처리하기 위한 중요한 메커니즘


개념

인터럽트는 CPU의 실행 흐름을 일시적으로 멈추고 다른 작업을 처리하기 위해 사용되는 신호 또는 이벤트
인터럽트는 외부 디바이스의 요청, 예외 상황, 소프트웨어 요청 등으로 발생할 수 있습니다.


인터럽트의 종류

외부 인터럽트

전원 이상 인터럽트, 기계 착오 인터럽트, 하드웨어 인터럽트 등

 

하드웨어 인터럽트

주로 하드웨어 디바이스가 CPU에 요청할 때 발생하며, 예를 들어 타이머 인터럽트, 입출력 인터럽트, 인터럽트 요청 (IRQ) 등이 있습니다.

 

입출력 인터럽트

입출력 장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우


소프트웨어 인터럽트

프로그램 내에서 명시적으로 호출되는 소프트웨어 인터럽트도 있습니다. 이것은 시스템 호출 또는 소프트웨어 인터럽트 명령을 통해 발생합니다.

 

인터럽트 처리

  1. 2가지 상황으로 인한 인터럽트 발생 
    1. 인터럽트가 발생 -> CPU는 현재 수행 중인 작업을 일시 중단
    2. CPU가 하나의 명령어를 처리 후 인터럽트 발생 여부 확인
  2. 현재 상태 보존: PCB(Proecess Control Block), PC(Program Counter) 등
  3. 인터럽츠 처리 루틴 실행:  인터럽트를 요청한 장치를 식별
  4. 인터럽트 서비스 루틴(Interrupt Service Routine, ISR): 인터럽트 원인을 파악하고 실절적인 작업을 수행. 
  5. 상태 복구: 인터럽트 발생 시 저장해둔 PC(Program Counter)를 다시 복구한다.
  6. 이전 작업으로 복귀

 

인터럽트의 용도

인터럽트는 다양한 용도로 사용됩니다. 예를 들어, 하드웨어 인터럽트는 입출력 장치의 데이터 전송이 완료되었음을 알리며, 소프트웨어 인터럽트는 운영체제와 사용자 프로그램 간의 통신을 지원합니다.
타이머 인터럽트는 시분할 다중 작업 환경에서 CPU 스케줄링을 관리하는 데 사용됩니다.

인터럽트의 우선순위

다수의 인터럽트가 동시에 발생할 수 있으므로, 운영체제는 인터럽트 우선순위를 관리합니다. 높은 우선순위의 인터럽트는 더 높은 중요도로 처리됩니다.

 

인터럽트 컨트롤러

복잡한 시스템에서 여러 인터럽트를 관리하기 위해 인터럽트 컨트롤러가 사용됩니다. 이것은 인터럽트 우선순위와 관련된 기능을 수행합니다.

 

인터럽트와 운영체제

운영체제는 인터럽트를 통해 시스템 자원을 효율적으로 관리하며, 다중 작업 환경을 지원합니다. 인터럽트는 프로세스 스케줄링, 메모리 관리, 입출력 관리 등에 핵심적으로 사용됩니다.

인터럽트는 컴퓨터 시스템의 핵심 구성 요소로, 시스템의 안정성과 효율성을 유지하기 위한 중요한 역할을 합니다.

'IT' 카테고리의 다른 글

[운영체제] DMA (Direct Memory Access)  (0) 2023.10.28
[컴퓨터 구조] CPU > Program Counter  (1) 2023.10.28
[컴퓨터 구조] cpu 작동 원리 (기본편)  (0) 2023.10.26
web > popstate  (0) 2023.09.25
[nextjs] router.beforePopState  (0) 2023.09.25