Computer/운영체제

운영체제 - 1

진호우 2025. 6. 2. 21:06

인터럽트

인터럽트란 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다.

 

인터럽트의 종류

인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다.

 

외부 인터럽트

* 전원 이상 인터첩트(Power fail interrupt)

* 기계 착오 인터럽트(Machine check interrupt)

* 외부 신호 인터럽트(External interrupt)

* 입출력 인터럽트(I/O interrupt)

 

내부 인터럽트

* 잘못된 명령이나 잘못된 데이터를 사용할때 발생하며 Trap이라 부른다.

* 프로그램 검사 인터럽트(Program check interrupt)

* 소프트웨어적이 내용이나 분류상 인터럽트가 아니다.

 

소프트웨어 인터럽트

* 사용자가 프로그램을 실행시키거나 감시프로그램을 호출하는 동작을 수행하는 경우

* 소프트웨어 이용중 다른 프로세스를 실행시키면 시분할 처리를 위해 자원 할당 등의 동작이 수행된다.

 

인터럽트 동작 순서

1. 인터럽트 요청

2. 프로그램 실행 중단 : 현재 실행중이던 Micor operation 까지 수행한다.

3. 현재의 프로그램 상태 보존 : Process Control Block, Program Counter 등

4. 인터럽트 처리루틴 실행 : 인터럽트를 요청한 장치를 식별한다.

5. 인터럽트 서비스 루틴 실행 : 인터럽트 원인을 파악하고 실질적인 작업을 수행한다. 처리기 레지스터 상태를 보존한다. 서비스 루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 또 재귀적으로 1~5를 수행한다.

6. 상태 복구 : 인터럽트 발생 시 저장해둔 Program Counter를 다시 복구한다.

7. 중단된 프로그램 실행 재개 : PC의 값을 이용하여 이저에 수행중이던 프로그램을 재개한다.

 

인터럽트 우선순위

여러 장치에서 인터럽트가 동시에 발생하거나 인터럽트 서비스 루틴 수행 중 인터럽트가 발생했을 경우 우선순위를 따져 처리한다.

 

전원 이상 > 기계 착오 > 외부신호 > 입출력 > 명령어 잘못 > 프로그램 검사 > SVC

 

일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높고 내부 인터럽트보다 외부 인터럽트가 우선 순위가 높다.