OS의 인터럽트를 알아보자.
# 인터럽트
인터럽트란 CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외 상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것을 의미한다.
예를 들어, CPU를 점유한 프로그램이 프린터에 명령을 내려 프린팅을 요청해야 하는 상황을 가정해 보자.
만약, 프린터가 준비완료될 때까지 기다린다면 가장 비싼 자원인 CPU가 낭비되게 된다.
낭비를 막고 사용 효율을 높일 수 있는 방법은 프린터가 준비되면 CPU에게 준비됐음을 알리는 신호를 보내고, 그전까지 CPU는 다른 작업을 계속 수행하는 것인데 이것이 바로 인터럽트 메카니즘이다.
현대의 운영체제는 이러한 인터럽트에 의해 구동되는데,
운영체제는 인터럽트가 들어와야 CPU를 점유하여 사용하며, 그렇지 않은 대부분의 시간은 사용자 프로그램이 CPU를 점유하고 있다.
이런 인터럽트에는 다음과 같은 두 가지 종류가 있다.
- 하드웨어 인터럽트
- 전원 이상 인터럽트 : 정전, 파워 이상 등
- 기계 착오 인터럽트 : CPU의 기능 오류
- 외부 신호 인터럽트 : 타이머, 키보드로 인터럽트 키를 누른 경우(Window에서 Control + Alt + Delete) 등
- I/O 컨트롤러 인터럽트 등
- 소프트웨어 인터럽트(Trap)
- 프로그램이 커널 함수를 호출(시스템 콜)하는 경우
- Exception이 발생한 경우 (나누기 0 등)
'Computer Science > Operating Systems' 카테고리의 다른 글
[Operating Systems] 프로세스와 쓰레드 (0) | 2023.01.10 |
---|---|
[Operating Systems] 컴퓨터 시스템 구조 (0) | 2022.12.26 |
[Operating Systems] 운영체제란? (0) | 2022.12.21 |