[운영체제] 인터럽트
June 16, 2020
특정상황이 발생하여 처리가 필요한 경우에 현재 실행중인 작업을 중단하고, 발생 상황을 처리한 후에 실행중이던 작업으로 복귀하여 계속 처리하는 것을 의미한다.
현대 운영체제는 인터럽트 기반 시스템이다.
메모리에 올라간 OS프로그램에는 여러 코드가 들어있는데 Interrupt가 발생할때에 작동한다.
하드웨어 인터럽트
- 인터럽트 결과 운영체제 내의 특정 코드 실행(ISR)
- Interrupt Service Routine 종료 후 다시 대기
- 정전 또는 전원 공급의 이상
- CPU 또는 기타 하드웨어의 오류
- 타이머 인터럽트
- 하드웨어 입출력 장치
-
동작 과정
- 마우스를 움직임 -> CPU에 전기신호가 감 -> CPU는 하던일을 멈추고 OS안에 Mouse Interrupt Service Routine (마우스가 전기신호를 보내왔을때 이러이런일을 해라 라는 코드)으로 점프 -> 마우스가 움직이는대로 모니터에 출력해줌
- 마우스를 더블클릭 -> CPU에 전기신호가 감 -> CPU가 하던일을 멈추고 메모리안에 있는 OS에서 Mouse Interrupt Service Routine으로 점프 -> 하드디스크를 뒤져 해당 파일이 어딨는지 찾는다 -> 해당 파일을 메모리에 올린다
- 키보드를 누르면 -> CPU에 전기신호가 감 -> CPU는 하던일을 중지함 -> Keyboard Interrupt Service Routine으로 감
소프트웨어 인터럽트
- 사용자 프로그램이 실행되면서 소프트웨어 인터럽트
- 인터럽트 결과 운영체제 내의 특정 코드 실행(ISR)
- ISR 종료 후 다시 사용자 프로그램으로
- 사용자가 프로그램 실행시 발생
내부 인터럽트
- Trap이라고 부르며, 내부 사정에 의한 인터럽트
- 0으로 나누기
- 오버플로우
- 잘못된 명령어
인터럽트 기반 운영체제
운영체제는 평소에는 대기 상태
- 하드웨어 인터럽트에 의해 운영체제 코드(ISR) 실행
- 소프트웨어 인터럽트 의해 운영체제 코드(ISR) 실행
- 내부 인터럽트 의해 운영체제 코드(ISR) 실행
ISR 종료되면 원래의 대기상태 또는 사용자 프로그램으로 복귀
인터럽트 기반 운영체제의 시간순 나열
User program 실행 -> 특정 행동으로 Interrupt 발생 -> OS로 들어감 -> 해당 ISR 실행 -> 다시 User program으로 돌아감 -> 다시 Interrupt 발생 -> OS로 들어감 -> 반복