본문 바로가기
카테고리 없음

컴퓨터 프로그램 인터럽트

by by이종호기자 2022. 5. 23.
반응형

프로그램 인터럽트에 대해서 알아보겠습니다. 이 개념이 무엇인지 알아보고, CPU가 어떤 형태로도 작동되는지에 대해서도 살펴보겠습니다.

프로그램 인터럽트란?

프로그램 인터럽트 (program interrupt)는 정상적인 프로그램의 진행을 벗어나게 하는 여러 가지 문제들을 다루는 것입니다. 이는 내부적 또는 외부적인 요구에 의해 현재 진행되고 있는 프로그램을 벗어나 다른 서비스 프로그램을 수행하도록 합니다. 서비스 프로그램의 수행이 끝나면 다시 원래의 프로그램을 수행하게 됩니다.

서브루틴 call과의 유사점

원칙적으로 인터럽트는 다음 세 가지의 요건을 제외하면 서브루틴 call 과 비슷한 것입니다.

1. 다음에 설명한 소프트웨어 인터럽트의 경우를 제외하고는, 명령어의 수행에 의한 것이라기보다 내외부적 신호에 의해 프로그램의 진행이 바뀝니다.

2. 서비스 프로그램의 주소는 명령어의 주소 필드에 있는 것이 아니라 하드웨 어에 의해 결정됩니다.

3. 인터럽트에서는 프로그램 카운터만이 아니라 CPU의 다른 상태를 나타내는 정보도 대피시킵니다.

인터럽트 요인이 발생했을때 CPU

프로그램이 인터럽트되어 서비스 프로그램을 수행하고나서 다시 원래의 프로 그램으로 돌아올 때에는, 인터럽트가 발생하기 이전과 똑같은 상태로 CPU를 돌려놓아야 합니다. 인터럽트 요인이 발생했을 때 CPU의 다음과 같은 상태를 확 인해야 합니다.

1. 프로그램 카운터의 내용

2. 모든 레지스터의 내용

3. 상태 조건의 내용

모든 상태 비트 조건의 집합을 program status word(PSW)라고 부르기도 합니다. PSW는 CPU의 상태를 나타내는 정보를 가지게 되고 독립된 레지스터로 구성됩니다. 이는 ALU 로부터의 상태 비트, 발생 가능한 인터럽트, CPU가 감독 자 모드인가 사용자 모드인가 등을 나타냅니다.

반응형

댓글