3장 - 컴퓨터 시스템의 동작 원리 : 인터럽트의 일반적 기능

2023. 11. 17. 16:262023/운영체제와 정보기술의 원리

운영체제는 각종 하드웨어 및 소프트웨어 자원 관리 뿐만 아니라 사용자 프로그램에 필요한 서비스도 제공한다.

이처럼 운영체제가 해야할 일을 개발자가 미리 프로그래밍 해서 커널내에 포함시켜두는데, 이 중 하나가 '인터럽트 처리 루틴'이다.

 

인터럽트 처리 루틴

다양한 인터럽트에 대해 각각 처리해야 할 업무들을 정의

 

EX ) 

1. 디스크 컨트롤러가 인터럽트 발생

2. CPU는 하던 일을 멈추고 이 인터럽트가 발생했을 때 수행하도록 정의된 코드를 찾아 수행

3. 수행한 일은 디스크의 로컬버퍼에 있는 내용을 사용자 프로그램의 메모리로 전달

4. 해당 프로그램이 CPU를 할당받을 경우 다음 명령을 수행할 수 있도록 표시하는 일

 

하드웨어 인터럽트

하드웨어 인터럽트는 컨트롤러 등 하드웨어 장치가 CPU의 인터럽트 라인을 세팅하는 반면, 소프트웨어 인터럽트는 소프트웨어가 그 일을 수행

 

 

인터럽트 벡터(Interrupt Vector)
운영체제는 할 일을 쉽게 찾아가기 위해 인터럽트 종류마다 번호를 정하는데, 번호에 따라서 처리해야할 코드가 위치한 부분을 가리키는 자료 구조를 말한다.

인터럽트 처리루틴(Interrupt Service Routine) 또는 인터럽트 핸들러(Interrupt Handler)
실제 처리해야하는 코드가 정의된 곳

소프트웨어 인터럽트 (Trap : 트랩)

1) 예외상황(Exception)

사용자 프로그램이 0으로 나누는 연산을 하는 등 비정상적인 작업을 시도하거나, 자신의 메모리 영역 바깥에 접근하려는 시도 등 권한이 없는 작업을 시도할 때 처리하기 위해 발생시키는 인터럽트

 

2) 시스템 콜(System Call)

사용자 프로그램이 운영체제 내부에 정의된 코드를 실행하고 싶을때 운영체제에 서비스를 요청하는 방법

즉, 사용자 프로그램 자신의 코드는 직접 CPU를 가지고 실행하지만, 사용자 프로그램에 정의됮 않고 운영체제 커널에 있는 코드를 사용자 프로그램이 실행하고자 할 때에는 인터럽트 라인 세팅을 통해 CPU 제어권을 운영체제로 넘겨 실행

 

두가지 모두 사용자 프로세스로부터 CPU 제어권이 운영체게(OS)에 이양되어 처리되는데, 이 과정에서 프로그램 코드가 직접 인터럽트 라인 세팅하는 명령을 실행해 인터럽트 발생시킨 후에 제어권이 넘어가게 됨