Interrupt
CPU에게 디바이스 컨트롤러를 사용가능하다고 알려주는 하드웨어 매커니즘
CPU의 인터럽트 요청 라인이 입출력 디바이스 컨트롤러에 의해 동작하는
CPU의 인터럽트 처리 순서
- CPU가 원래 하던 일을 하고 있다가
- 인터럽트가 오면, CPU는 현재 실행 중인 작업을 잠시 멈추고
- 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)을 실행한다
- ISR은 인터럽트를 발생시킨 디바이스의 요청을 처리하는 코드
- ISR 처리가 끝나면, CPU는 멈췄던 작업으로 다시 돌아가 계속 실행한다.
ISR, Interrupt Service Routine:
1. 인터럽트를 받음
2. CPU의 현재 상태를 저장
- 프로그램 카운터(PC) : 다음에 실행할 명령 주소
- CPU 레지스터들 : 작업에 필요한 각종 데이터와 상태값
- 플래그 레지스터(상태 레지스터) : CPU 상태 정보
3. 어떤 타입(polling, vectored interrupt)가 발생했는지 확인
Polling (cpu 전체에 사용되는 6.polling의 cpu에서가 아님. ISR 내부에서 선택 방식)
디바이스의 상태 결정

Vectored interrupt
벡터를 인터럽트해서 우선 순위에 따라 핸들링
Interrupt handler
각 타입에 따라 해당하는 동작 수행
인터럽트의 기능
1. 인터럽트는 일반적으로 인터럽트 벡터를 통해 제어를 인터럽트 서비스 루틴으로 전달합니다. 이 인터럽트 벡터는 모든 서비스 루틴의 주소를 포함하고 있다.
2. 인터럽트 구조는 현재 실행 중이던 명령어의 주소(또는 다음에 실행할 주소) 를 저장
3. 트랩(trap) 또는 예외(exception)는 에러 또는 사용자 요청에 의해 발생한 소프트웨어 생성 인터럽트이다.
트랩(Trap): CPU가 프로그램 실행 중에 **특정 상황(에러나 사용자 요청)**이 발생했을 때, 정상적인 실행 흐름을 일시적으로 중단하고 운영체제 또는 시스템이 지정한 처리 루틴으로 제어를 넘기는 소프트웨어 발생 인터럽트입니다.
예외(exception): 일반적으로 트랩과 거의 같은 의미로 쓰이며, 보통은 **프로그램 실행 중 발생한 비정상적인 상황(에러)**을 의미합니다.
인터럽트는 크게 하드웨어 인터럽트(외부 장치에서 발생)와 소프트웨어 인터럽트(프로그램 또는 CPU 내부에서 발생)로 나눌 수 있습니다.
소프트웨어 인터럽트: 프로그램 코드나 CPU 내부 상태가 “문제가 발생했다”거나 “운영체제에게 서비스를 요청한다”는 신호를 CPU에 주는 것이라 볼 수 있습니다.
하드웨어 인터럽트는 컴퓨터 외부의 하드웨어 장치가 CPU에게 신호를 보내서 CPU의 현재 작업을 잠시 멈추고, 해당 장치가 요청하는 작업을 처리하도록 제어를 넘기는 메커니즘입니다.

'CS공부 > 운영체제' 카테고리의 다른 글
| 6. Polling (0) | 2025.05.23 |
|---|---|
| 5. I/O Hardware (0) | 2025.05.23 |
| 4. I/O Systems (0) | 2025.05.23 |
| 3. Bus (0) | 2025.05.23 |
| 2. Booting (0) | 2025.05.23 |