-
인터럽트(Interrupt) 동작 과정운영체제 2025. 3. 20. 21:50
1. 인터럽트란 무엇인가?
인터럽트(interrupt)는 CPU가 기존에 처리하던 일을 잠시 멈추고 특정 이벤트를 처리하도록 하는 메커니즘이다.
예를 들어, 우리가 키보드의 키를 누르면 키보드 버퍼에 값이 저장되고, 하드웨어 인터럽트가 발생한다. 이때 CPU는 현재 작업을 멈추고, 키보드 입력을 처리한 후 다시 원래 작업으로 복귀한다.
2. 인터럽트의 종류
인터럽트는 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉜다.
- 하드웨어 인터럽트
- 외부 장치에서 발생하는 인터럽트로, CPU가 직접 제어할 수 없는 이벤트를 처리한다.
- 예시: 키보드 입력, 마우스 클릭, 네트워크 패킷 수신, 타이머 이벤트 등
- ② 소프트웨어 인터럽트
- 프로그램 실행 중 발생하는 인터럽트로, 주로 운영체제와의 상호작용을 위해 사용된다.
- 예시: 시스템 콜 (syscall), 예외 (Exception, Fault)
3. 인터럽트 동작 과정
1. 인터럽트 발생 (Interrupt Request)
- 하드웨어 또는 소프트웨어에서 인터럽트가 발생한다.
2. 현재 작업 저장 (Context Saving)
- CPU는 현재 실행 중인 프로세스의레지스터 값(PC, SP, GPR 등)을 저장한다.
- 일반적으로 커널 스택에 현재 실행 상태를 저장한다.
3. 인터럽트 벡터 테이블 조회
- CPU는 인터럽트 벡터 테이블(Interrupt Vector Table, IVT)을 조회하여 해당 인터럽트 번호에 대응하는 핸들러 주소를 찾는다.
- 인터럽트 벡터 테이블은 보통 메모리의 특정 영역에 위치하며, 운영체제가 관리한다.
4. 인터럽트 핸들러 실행
- CPU는 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)을 실행한다.
- ISR은 인터럽트 유형에 따라 적절한 처리를 수행한다.
- 예를 들면,
- 키보드 입력 처리
- 네트워크 패킷 수신 처리
- 타이머 인터럽트 처리 (context switch)
5. 인터럽트 종료 (Interrupt Completion)
- ISR 실행이 완료되면 CPU는 저장해 두었던 컨텍스트를 복원한다.
- iret(Interrupt Return) 명령어 또는 syscall 종료 절차를 통해 원래 실행 중이던 프로세스로 복귀한다.
'운영체제' 카테고리의 다른 글
MSI-X 인터럽트는 어떻게 동작할까? (0) 2025.04.01 시스템 콜(system call)의 동작 과정 (0) 2025.03.10 - 하드웨어 인터럽트