운영체제

[운영체제] Interrupt (인터럽트)

ssh9308 2024. 5. 9. 09:00
반응형

Polling (폴링)

 

cpu 가 입출력 장치에 데이터를 읽거나 쓰려고 하는 상황을 생각해 보자.

cpu는 입출력 작업이 들어오면 입출력 관리자에게 입출력 명령을 내린다.

cpu 관점에서는 입출력 명령이 언제 완료될지 알 수 없기 때문에, 

 

주기적으로 계속 확인해줘야 한다.

이러한 방식을 폴링 (Polling) 방식이라고 한다.


폴링방식의 단점은 주기적으로 CPU가 확인해줘야 하니까 성능이 좋지 않다는 것이다.

인터럽트는 폴링 방식의 단점을 해결한 방식이다.

 

 

 

 

인터럽트 (interrupt)

 

인터럽트는 컴퓨터 아키텍처에서 매우 중요한 개념으로, 

실행 중인 프로그램 외부 또는 내부에서 발생하는 이벤트에 대해 

 

CPU가 반응하여 처리를 수행하도록 하는 메커니즘을 말한다. 

인터럽트를 통해 컴퓨터 시스템은 다양한 작업을 효율적으로 동시에 처리할 수 있다.

 

 

인터럽트의 종류

 

1) 하드웨어 인터럽트

 

외부 장치로부터의 신호에 의해 발생한다.

예를 들어, 키보드 입력, 네트워크 카드의 데이터 수신, 타이머 신호 등이 있다. 

이러한 인터럽트는 일반적으로 장치 컨트롤러가 CPU에 신호를 보내 인터럽트 요청을 전달한다.

 


2) 소프트웨어 인터럽트

 

프로그램 코드에 의해 의도적으로 발생되는 인터럽트다. 

예를 들어, 시스템 호출, 

 

예외 처리(예: 0으로 나누기, 유효하지 않은 메모리 접근) 등이 이에 해당한다. 

소프트웨어 인터럽트는 프로그램이 실행 중에 

 

특정 조건을 만족하거나 요청할 때 발생한다.

 

 

 

 

인터럽트 처리 과정

 

1) 인터럽트 요청(IRQ)

장치 또는 프로그램이 CPU에 작업을 요청할 때 인터럽트를 발생시킨다.

 


2) 인터럽트 서비스 루틴(ISR)

인터럽트가 발생하면, CPU는 현재 실행 중인 작업의 상태를 저장하고, 

 

정의된 인터럽트 서비스 루틴으로 제어를 전환한다.


이 루틴은 인터럽트의 원인이 된 작업을 처리한다.

 


3) 작업 복귀

ISR 실행이 완료되면, 

 

CPU는 인터럽트 발생 전의 작업 상태를 복원하고 이전에 실행 중이던 작업으로 돌아간다.

 

 

 

반응형