(하드웨어)인터럽트란?
하드웨어 장치들이 CPU에게 하드웨어 신호(인터럽트 신호)를 물리적으로 발생시켜 입출력 완료나 타이머 완료 등을 CPU에게 알려주는 방법입니다.
또 인터럽트는 비동기적 사건을 CPU에게 알려주는 행위입니다.
CPU에서 인터럽트 신호를 받게되면 CPU는 하던 일을 멈추고 인터럽트 요청을 처리하는 코드를 실행시킵니다.
이 코드를 인터럽트 서비스 루틴이라고 부르며, 커널 코드나 디바이스 드라이버내에 작성됩니다.
예를 들어 하드웨어 장치(키보드)가 입력을 하면, CPU에 인터럽트 신호가 발생하고 CPU는 하던을 멈추고
인터럽트 신호를 처리하기 위해 인터럽트 서비스 루틴을 실행합니다.
인터럽트 서비스 루틴 코드가 키 값을 읽어 커널 영역에 있는 키 입력 버퍼나 키 입력을 기다리는 응용프로그램 버퍼로 전달합니다.
CPU는 인터럽트 서비스 루틴을 마치고 나서 전에 실행하던 코드로 돌아갑니다.
운영체제에서 인터럽트를 통해 입출력 작업의 완료, 예고 없는 데이터 도착, 키보드나 마우스 입력, 배터리 경고 등
장치에 관련된 모든 이벤트를 처리합니다.
요약
1. 인터럽트는 비동기적 사건을 CPU에게 알려주는 행위
2. 인터럽트 신호를 처리하는 코드를 인터럽트 서비스 루틴이라고 한다.
'CS지식' 카테고리의 다른 글
[CS]운영체제 (1) | 2022.12.30 |
---|---|
프로세스 제어 블록(PCB)란? (0) | 2022.10.12 |
사용자 모드(User mode)와 커널 모드(kernel mode)란? (0) | 2022.10.10 |
시스템 호출이란? (0) | 2022.10.04 |