인터럽트 (Interrupt)

I. 예외상황 우선처리, 인터럽트

가. 인터럽트 (Interrupt)의 개념

  • 예외상황 발생 시 진행중인 작업을 정지시키고 정의된 절차를 수행하기 위한 제어 프로세스

나. 인터럽트의 발생 원인/우선순위

원인우선순위설명
주변장치 인터럽트높음– 시스템 오류, 입출력(I/O) 요청
– 전원 이상 등의 인터럽트
프로세스 오류중간– CPU 연산 시 Page Fault, Device Zero, Overflow 등의 예외 발생
프로그램 요청낮음– 프로그램의 시스템 콜(System Call)을 이용한 인터럽트 요청
  • 우선순위를 정의한 인터럽트 벡터 정보를 IDT(Interrupt Descriptor Table) 저장, 해당 인터럽트 처리 루틴(ISR)으로 분기

 

II. 운영체제(OS)의 인터럽트 구성 요소 및 동작 절차

가. 인터럽트의 동작 절차

  • 인터럽트 발생 시 인터럽트 벡터 테이블 조회/분기, 처리루틴 수행, 복귀 3단계 절차로 동작

나. 운영체제(OS)의 인터럽트 구성 요소

구성 요소동작 절차설명
인터럽트
벡터 테이블
(IVT)
인터럽트 발생– 요청 신호 모니터링 및 검출
인터럽트 벡터 조회– IVT에 인터럽트ID 조회
– 인터럽트ID에 대응하는 인터럽트 서비스 루틴으로 분기
인터럽트
서비스 루틴
(ISR)
인터럽트 금지– 인터럽트 처리 루틴 진입 후 상호 배제(Lock)
프로세스 상태저장– 이전 프로세스 정보 저장(Context Switching)
인터럽트 처리– 인터럽트 요청 작업수행
프로세스 상태복구– 이전 프로세스 정보 복구(Context Switching)
인터럽트 허용– 상호배제 자원 반납 (Unlock), 인터럽트 루틴 종료
  • 인터럽트 종류에 따라 우선순위 부여, 처리 순서 결정 위해 우선순위 처리 방법 필요

 

III. 인터럽트의 마이크로 연산

가. 인터럽트의 마이크로 코드 및 버스 통신

마이크로 코드버스 통신 구성도
t0: MBR ← PC
t1: MAR ← SP,
PC←ISR시작주소
t2: M[MAR] ← MBR

나. ISR 수행까지 과정

구분ISR 수행 전ISR 수행 시




① 100번지의 LOAD 명령어가 인출/실행
② 250번지 0004가 AC 저장
③ PC 다음주소 0101 저장
④ ISR 마이크로 코드 수행
– PC에 ISR 시작주소(0650)
– SP(0999)에 0101 저장
– SP: 다음주소(0998) 가리킴

다. ISR 수행이 끝난 후 태스크 실행 과정

구분ISR 수행 종료태스크 재개




① ISR 마이크로 코드 종료
– PC에 ISR 코드주소(0660)
– SP(0999)에 0101 존재
– SP: 다음주소(0998) 가리킴
② 태스크 재개
– PC에 SP(0999) 0101저장
– SP: 이전주소(0999) 가리킴
③ 101번지의 명령어 수행

 

IV. 인터럽트(Interrupt)의 종류 및 우선순위 체계

가. 인터럽트의 종류

구분종류설명
H/W
인터럽트
외부
인터럽트
– 주변장치(N/W, I/O, 전원) 의해 발생
– 전원이상, 데이터 처리, Wakeup 등
내부
인터럽트
– 프로세서(CPU)의 연산 처리 중 발생
– Cache miss, Zero Divide, Overflow 등
S/W
인터럽트
SVC
인터럽트
– 프로그램의 시스템 콜 요청 시 발생
– 메모리 할당/해제, 자원 요청/반납 등
  • 외부 > 내부 > SVC 인터럽트 순으로 높은 우선순위를 부여하고 인터럽트 모드 레벨 관리

나. 인터럽트 우선순위 체계

구분종류설명
H/W
처리방식
직렬방식
(Daisy-Chain)

– 모든 장치를 단일 회선하여 연결
– 우선순위 높은 장치 첫 번째로 위치
병렬방식
(Parallel)

– 모든 장치 개별 인터럽트 요청 회선
– 마스크 레지스터 비트 가중치 부여
S/W
처리방식
폴링방식
(Polling)

– 우선순위 높은장치 선택, 요청 확인
– 우선순위 S/W 변경가능, H/W 간단
  • 인터럽트 우선순위 체계는 복수 개의 인터럽트가 발생하면 우선 처리 작업 결정, 순서 제어 방법

 

V. 인터럽트 우선순위 체계 비교

구분H/W 처리 방식S/W 처리 방식
회로 설계– 장치 수에 따라
설계 복잡도 증가
– 간단한 구조로
설계 가능
구성 비용– 연결 장치에 따라
  비용 증가
– 상대적인 구성 비용이
  저렴
반응 속도– 고속 처리 가능– 반응시간 느림
유연성– 물리적 연결에 따른
  수정이 어려움
– S/W 변경으로 우선순위 수정 가능
  • 시스템 설계 시 변경 가능성이 적은 인터럽트는 H/W 방식으로 구성하고 동작 환경에 따라 우선순위를 동적으로 관리가 필요한 경우 S/W 방식을 고려하여 설계

 

VI. 우선순위와 순차처리에 따른 인터럽트 처리

가. 우선순위에 따른 인터럽트 처리

개념도설명
– 인터럽트의 우선순위를 정하고, 우선순위가 낮은 인터럽트 처리 중 높은 인터럽트가 들어오면 현재 인터럽트 서비스 루틴을 중단하고 새로운 인터럽트 처리 수행

나. 순차처리에 따른 인터럽트 처리

개념도설명
– CPU가 인터럽트 서비스 루틴을 처리하고 있는 도중에 새로운 인터럽트 요구가 들어오더라도 CPU가 인터럽트 사이클을 수행하지 않도록 방지

 

3 Comments

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^