인터럽트 기반 시스템(Interrupt-based System)



학습목표

  • 인터럽트 기반 시스템의 동작 원리를 설명할 수 있다.
  • 인터럽트의 종류와 특징에 대해 설명할 수 있다.


1. 인터럽트 기반 시스템은 뭘까?

인터럽트에 의해서 동작하는 시스템으로 오늘날의 운영체제는 인터럽트 기반 시스템이다.
모든 동작은 인터럽트에 의해서 시작되며, 부팅 후에는 사건(event)을 기다리면서 대기하게 된다.

  • 부팅순서
    1. 프로세서는 메모리(ROM)의 부트 로더(Boot Loader. Bootstrap이라고도 함)를 실행한다.
    2. 부트 로더는 디스크의 O/S를 메인메모리(RAM)로 가져오는 작업을 수행하며, 이를 부팅(Booting)이라고 한다.
    3. 부팅이 된 OS는 메모리에 상주하면서 사건을 기다리면서 대기한다. 사건은 키보드, 마우스 등의 입력같은 것들이 있다.
    4. 전원이 꺼지면 종료된다.


2. 인터럽트는 뭘까?

인터럽트는 프로세서에 전기신호를 보내서 현재 하는일을 멈추고 특정 코드를 실행하게 만드는것을 의미한다.
인터럽트로 인해 실행되는 특정 코드를 ISR(Interrupt Service Routine)이라고 한다.
ISR은 OS내부에 위치하고 있으며 인터럽트의 종류별로 여러가지가 존재한다.


3. 인터럽트의 종류

인터럽트의 종류에는 하드웨어 인터럽트, 소프트웨어 인터럽트, 내부 인터럽트가 있다.

  • 하드웨어 인터럽트

    • 마우스나 키보드같은 하드웨어에서 CPU에 전기신호를 보내 발생시키는 인터럽트이다.
    • 마우스의 이동, 더블클릭. 키보드의 입력 등이 있다.
  • 소프트웨어 인터럽트

    • 유저 프로세스의 시스템콜에서 발생시키는 인터럽트이다.
    • MS-Word의 인쇄, 파일불러오기 등이 있다.
  • 내부 인터럽트

    • CPU의 내부적인 사정에 의해 발생하는 인터럽트이다.
    • 정수를 0으로 나누는 것(Divide by Zero) 등이 있다.


4. 인터럽트의 실제 동작과정

  • 마우스의 커서를 이동하는 경우
  1. 마우스를 움직이면 CPU에 전기신호(인터럽트)를 보내준다. 프로세서(CPU)와 마우스 사이에는 인터럽트 선이 있어서 전달할 수 있다.
  2. CPU가 인터럽트를 감지하면 현재 작업을 중단한다. 그리고 OS내부에 있는 Mouse Interrupt Service Routine으로 점프한다.
  3. Mouse Interrupt Service Routine은 커서를 이동시킨 좌표를 모니터상에 표현해주는 역할을 한다.
  • 마우스를 더블클릭하는 경우
  1. 마우스를 더블클릭하면 CPU에 전기신호(인터럽트)를 보내준다.
  2. CPU가 인터럽트를 감지하면 현재 작업을 중단한다. 그리고 OS내부에 있는 Mouse Interrupt Service Routine으로 점프한다.
  3. Mouse Interrupt Service Routine은 커서가 더블클릭한 좌표에 있는 아이콘(프로그램)을 실행한다. 즉 디스크에서 찾은 다음 메모리에 올린다.


Reference