점점 강해지고 있습니다.
[OS] 인터럽트(Interrupt) 란?
인터럽트란?
Interrupt : 방해하다
일을 하다가 누가 말을 걸면(방해하면) 하던 일을 멈추고 그 사람을 보고 이야기를 할 것이다.
컴퓨터과학에서 인터럽트도 똑같다. CPU가 작업 도중에 급하게 다른 일을 처리하고자 할 때 사용되는 기능이다.
인터럽트의 진행 과정
- 기존의 작업을 처리하던 도중(Main program 실행 중), 인터럽트가 발생한다.
- 현재 컴퓨터가 처리하는 일을 중지하고 CPU 내부의 레지스터, 메인 메모리 내용 등 현재의 컴퓨터의 상태를 스택에 저장한다.
- 프로그램 카운터(PC)에 인터럽트 서비스 루틴(ISR, 인터럽트 처리 프로그램)의 시작 위치를 저장
- 제어권이 인터럽트 처리 프로그램(ISR)을 실행
- 인터럽트 처리 이후 스택에 저장했던 내용을 레지스터로 다시 옮김
- 프로그램 카운터(PC)에 중단된 프로그램의 시작 위치를 저장
- 중단된 프로그램 재실행
인터럽트는 크게 외부 / 내부 인터럽트로 나뉘게 된다.
외부 인터럽트 vs 내부 인터럽트
내부 인터럽트(소프트웨어 인터럽트)
- 하드웨어 고장(Hardware Interrupt)
- 컴퓨터 고장
- 데이터 전달 과정에서의 비트 오류
- 전원이 나간 경우
- 실행할 수 없는 명령어
- 기억장치에서 인출한 명령어의 비트 패턴이 정의되어 있지 않은 경우
- 명령어 실행 오류 (Trap)
- 나누기 0 : CPU가 명령어를 수행하다가 처리할 수 없는 예외를 만나면 자기자신을 인터럽트 걸어 처리함
- 사용 권한 위배
- 사용자가 운영체제만 사용할 수 있는 자원에 액세스하는 경우
외부 인터럽트(하드웨어 인터럽트)
외부 인터럽트는 주로 입출력장치 에 의해 발생된다.
- 타이머 인터럽트
- 타이머가 일정한 시간 간격으로 CPU에게 인터럽트를 요청하여 프로세스의 문맥 교환을 진행 (보통 10ms, 0.01초마다 진행)
- 입출력(I/O) 인터럽트
- 마우스, 키보드, 프린터 등 속도가 느린 입출력장치의 입출력 준비가 완료되었음을 알리기 위해 인터럽트를 요청
인터럽트의 역할
-
인터럽트는 현대의 운영체제가 하드웨어와의 상호작용을 향상시켜, CPU가 멀티 프로그래밍을 가능하게 하는 핵심적인 역할을 한다.
-
인터럽트는 갑작스러운 컴퓨터의 전류 공급 중단이나, 사용자의 입력, 입출력 작업의 완료, 운영체제에 의한 긴급 요청 등과 같은 긴급한 상황에 대처하기 위해서도 필요하다.
참고자료
https://www.geeksforgeeks.org/difference-between-isr-and-function-call/
Thank You For Reading