인터럽트 기반 시스템

유다한·2023년 9월 4일

운영체제

목록 보기
4/10

현대의 OS의 기반 시스템인 인터럽트에 대해 알아보겠습니다.

인터럽트

OS는 프로그램의 모음으로 인터럽트를 기반으로 작동합니다. 인터럽트가 발생했을 때 OS는 작동하고, 인터럽트가 없다면 대기합니다.

인터럽트(interrupt)란 가로채다라는 뜻을 가지고 있습니다.
이벤트가 발생했을 때 컴퓨터가 하고 있는 일을 중단하고 OS에 이벤트가 발생했음을 알립니다. 운영체제는 해당 인터럽트를 처리하기 위한 적절한 인터럽트 처리 루틴을 실행합니다.

인터럽트 서비스 루틴

OS에 인터럽트 이벤트 알람이 들어왔을 때 실행하는 프로그램입니다.
이 프로그램은 인터럽트의 종류에 따라 다양한 작업을 수행할 수 있습니다.
또한, 인터럽트에 종류에 따라 정해진 루틴으로 처리합니다.

인터럽트의 중요성

OS는 성능과 효율성을 향상시키는데 가장 큰 목적을 두고 있죠?
인터럽트는 이 성능을 향상시키는데 중요한 역할을 하고 있습니다.

이벤트 발생 시 컴퓨터를 잠시 멈추고 어떤 프로세스를 먼저 실행할 것인지 결정하기 때문에 그 결정에 따라 성능이 달라집니다.

하드웨어 인터럽트

우리가 마우스를 움직이면 전기적 신호가 CPU로 전달되고 OS에 있는 인터럽트 서비스 루틴에 맞게 처리가 되어 마우스가 화면에서 움직이는 것을 볼 수 있습니다.

소프트웨어 인터럽트

하드웨어 인터럽트처럼 소프트웨어 명령을 통해 인터럽트 명령을 내릴 수 있습니다. 한글 프로그램에서 hwp파일을 불러오는 경우가 소프트웨어 인터럽트라고 할 수 있습니다. 이때 인터럽트를 실행하는 것은 swi라는 어셈블리어 명령어에 의해 해당하는 인터럽트가 실행되게 됩니다.

내부 인터럽트

1/0과 같은 예외가 발생했을 때 이를 처리하는 것 또한 인터럽트입니다.

  • 위와 같은 예외를 처리하는 인터럽트 서비스 루틴은 divide by zero라는 이름을 가지고 있습니다.

인터럽트 종료

인터럽트가 종료되면 어떻게 될까요?
중단된 작업을 다시 시작하게되고 인터럽트는 이벤트 리스너로써 다음 인터럽트 발생을 기다리게 됩니다.

정리

userp는 유저가 인터럽트와 관계 없이 컴퓨터에서 실행되고 있는 프로그램이라고 하겠습니다.
userp를 사용하다가 OS가 관리하는 하드웨어나 다른 것들을 사용할 때 userp의 실행을 멈추고 인터럽스 서비스 루틴이 실행되며 필요한 하드웨어 등을 사용합니다. 루틴이 종료되면 다시 userp가 실행되고 또 다시 필요한 작업이 있으면 OS에서 인터럽트 서비스 루틴의 실행과 종료 유저 프로그램 실행이 반복됩니다.

profile
유다한입니다.

0개의 댓글