OS
CS OS 인터럽트
차가운개발
2024. 10. 22. 17:52
인터럽트는 컴퓨터 시스템에서 현재 수행 중인 작업을 일시적으로 중단하고, 더 긴급한 작업을 처리하기 위해 제어권을 특정 코드(인터럽트 핸들러)로 넘기는 매커니즘이다. 하드웨어와 소프트웨어에서 모두 발생할 수 있으며 여러 작업을 동시에 처리하고 시스템 자원을 효율적으로 관리할 수 있도록 돕는다.
ㅇ 개념
- 정의
현재 실행 중인 프로세스를 중단하고 특정 이벤트를 처리하기 위해 운영체제가 개입하도록 하는 신호다. - 처리 방식
현재의 작업 상태를 저장한 후 운영체제는 인터럽트 핸들러라는 특수한 루틴을 실행한다. 이 루틴은 인터럽트를 처리한 후 저장된 작업 상태를 복구하여 중단된 작업을 재개한다.
ㅇ 인터럽트의 종류
- 하드웨어 인터럽트
외부 장치(키보드, 마우스, 모니터 등)에 의해 발생하는 인터럽트다. 비동기적으로 발생하며 프로세스의 작업 흐름과 독립적으로 처리된다. - 소프트웨어 인터럽트
소프트웨어에서 명령어를 통해 의도적으로 발생시키는 인터럽트다. 보통 시스템 호출이나 예외 처리시 사용된다.
동기적으로 발생하며 프로그램의 흐름에 따라 발생 시점이 결정된다. - 예외
프로그램 실행 중에 예외적인 상황(나누기에서 0으로 나누기, 페이지 폴트, 잘못된 메모리 접근 등)이 발생할 때 인터럽트로 처리된다. 소프트웨어 인터럽트의 일종으로 볼 수 있다.
ㅇ 인터럽트의 처리과정
- 인터럽트 발생
인터럽트 신호가 발생하면, 프로세서는 작업을 중단하고 요청을 확인한다. - 요청 확인
프로세서는 요청을 확인하고, 우선순위가 높은 인터럽트부터 처리한다. - 작업 상태 저장
현재 실행 중인 작업 상태를 스택에 저장하여 나중에 복원할 수 있도록 한다. - 핸들러 실행
인터럽트를 처리하기 위한 인터럽트 핸들러가 실행된다. - 복원
인터럽트 처리가 완료되면, 저장된 작업 상태를 복원하고 중단된 작업을 재개한다.
ㅇ 장단점
장점
- 효율적인 자원 관리
CPU가 바쁜 작업을 수행하는 동안에도 외부 장치의 이벤트를 즉시 처리할 수 있다. - 빠른 응답성
사용자의 입력이나 하드웨어 이벤트에 빠르게 반응할 수 있어 시스템 성능을 높일 수 있다.
단점
- 복잡성 증가
인터럽트를 처리하는 과정에서 많은 상황을 고려해야 하므로, 복잡성이 증가한다. - 문맥 교환 비용
인터럽트를 처리하기 위해 현재 작업 상태를 저장하고, 복원하는 과정에서 오버헤드가 발생할 수 있다.