반응형
- 컴퓨터 작동 중 효과적 응급대응 인터럽트의 정의
- 인터럽트(Interrupt)의 정의
- 컴퓨터 시스템 외부, 내부, SW적인 원인으로 CPU가 처리하던 프로그램을 중단하고 컴퓨터 제어를 특수 사건이나 환경을 처리할 수 있도록 보내는 제어신호
- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하는 것
- 인터럽트의 필요성
시스템 효율성 개선 |
고속 CPU, 저속 Device간 처리 효율 향상 |
다중 입출력 장치에 대한 우선 순위 | |
시스템 안정성 개선 |
정전과 같은 비정상 상태 발생시, 수행 결과 저장 및 복구 수행 |
- 인터럽트 처리의 기본요소(결정 방법)
구분 |
설명 |
인터럽트
요청 (IRQ)
|
Interrupt ReQuest, CPU에 인터럽트를 요청하는 신호
CPU에게 인터럽트 요청 시 CPU가 각 장치를 구분할 수 있는 공유한 IRQ 존재.
|
인터럽트 처리루틴
(IPR) 또는
인터럽트 벡터
|
Interrupt Process Routine, 인터럽트 발생 원인을 찾아 ISR 호출 |
인터럽트
서비스 루틴(ISR)
|
Interrupt Service Routine, 인터럽트에 대한 실체 처리를 담당 |
- 인터럽트 우선순위 체계는 하나 이상의 인터럽트가 발생했을 때 인터럽트 원인을 식별하고 먼저 서비스될 인터럽트를 결정하는 방법
- 인터럽트 개념도
- 인터럽트의 발생 원인과 인터럽트의 종류
- 인터럽트의 발생 원인
- 기계적인 문제. (정전, 데이터 전달 과정에서 HW 오류 발생)
- 프로그램 상의 문제.
- 컴퓨터 조작자의 의도적인 조작에 의한 중단.
- 입출력 장치들의 동작에 CPU의 기능이 요청되는 경우.
- 산술 연산 overflow, under flow 발생
- 인터럽트의 종류
분류 |
종류 |
설명 |
외부
인터럽트
(HW
인터럽트)
|
전원 이상 인터럽트 |
정전 또는 전원 이상에 의한 인터럽트 발생 |
기계 착오 인터럽트 |
CPU의 기능적인 오류 동작 발생 |
|
외부 신호 인터럽트 |
타이머에 의해 규정된 시간을 알리는 경우
키보드로 인터럽트를 발생시킨 경우(Ctrl+Alt+Del)
외부 장치로부터 인터럽트 요청 발생
|
|
입 출력 인터럽트 |
입출력 데이터의 오류나 이상 현상이 발생한 경우
입출력 장치가 데이터의 전송을 요구 또는 전송 완료 알림
|
|
내부
인터럽트
(HW
인터럽트)
|
프로그램 검사
인터럽트
|
0으로 나누기가 발생한 경우
Overflow, Underflow가 발생한 경우
부당한 기억장소의 참조와 같은 프로그램상의 오류
|
SW
인터럽트
|
SVC 인터럽트 |
사용자가 SVC 명령을 써서 의도적으로 인터럽트를 발생
기억장치 할당 및 오퍼레이터와의 통신이 필요한 경우
|
- 인터럽트 소스를 확인하는 방법에 따라 벡터형 인터럽트, 폴링형 인터럽트로도 분류할 수 있음
- 인터럽트의 우선순위를 결정하는 SW, HW 방식의 이해
- SW, HW 방식에 따른 인터럽트 우선순위 체계
구분 |
설명 |
|
SW적 방식 (폴링) |
인터럽트 발생시 우선순위가 가장 높은 인터럽트 자원(Source) 부터 인터럽트 요청 플래그를 차례로 검사하여 찾고 이에 해당하는 인터럽트 서비스 루틴 수행
우선 순위 변경이 쉬움(S/W변경)
회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적임
많은 인터럽트가 있을 때 그들을 모두 조사하는데 많은 시간이 걸려 반응시간이 느리다는 단점이 있음
|
|
HW 방식
(Vectored Interrupt)
|
직렬 연결 |
Daisy-Chain
우선순위 부여 방식으로 인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결
우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결
|
병렬 연결 |
Multiple Interrupt
인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결
각 장치의 회선에 대응하는 Mask Register를 사용하고 우선순위는 Mask Register의 비트 위치에 의해 결정
|
- SW, HW 방식에 따른 인터럽트 우선순위 체제 비교
구분 |
SW적 구현 방식 |
HW적 구현 방식 |
반응속도 |
저속 |
고속 |
회로 복잡도 |
단순 |
복잡 |
경제성 |
경제적 |
비 경제적 |
융통성 |
있음 |
없음 |
동작방식 |
1) 현재 수행중인 명령어 완료
2) 수행이 중단된 프로그램의 상태(레지스터의 내용 + PC값)를 안전한 기억장소에 보존
3) 인터럽트 처리 루틴(IPR)을 통해 인터럽트의 원인을 찾아냄
4) 해당되는 인터럽트의 서비스 루틴을 수행
5) 보존시킨 프로그램의 상태를 복구하여 인터럽트 당한 프로그램을 중단된 곳에서부터 다시 계속하여 수행
|
1) 현재 수행중인 명령어 완료
2) 수행이 중단된 프로그램의 상태 (레지스터의 내용 + PC값)를 안전한 기억장소에 보존
3) 인터럽트 벡터를 통해 인터럽트 서비스 루틴으로 분기 (인터럽트의 원인이 하드웨어에 의해 판별되므로 인터럽트 처리 루틴이 필요하지 않음)
4) 해당되는 인터럽트의 서비스 루틴을 수행
5) 보존시킨 프로그램의 상태를 복구하여 인터럽트 당한 프로그램을 중단된 곳에서부터 다시 계속하여 수행
|
- 인터럽트의 처리 우선 순위와 인터럽트 처리 과정
- 인터럽트의 처리 우선 순위
구분 |
내용 |
개념 |
하나의 명령 사이클 수행 도중 여러 인터럽트가 중앙처리장치에 도달할 경우 처리할 인터럽트를 결정하기 위한 순위 |
기능 |
각 장치에 우선순위를 부과하는 기능
인터럽트를 요청한 장치의 우선순위를 판별하는 기능
우선순위가 높은 것을 먼저 처리할 수 있는 기능
|
종류별
우선순위
|
- 외부 인터럽트 -> 내부 인터럽트 -> SW 인터럽트 의 우선순위로 처리
- 전원이상 -> 기계 착오 -> 외부 신호 -> 입.출력 -> 내부 -> SW 인터럽트
|
우선순위
판별 방법
|
LCFS(Last Come First Serve): 가장 최근에 인터럽트를 요청한 장치가 최고 우선 순위
FCFS(First Come Fist Serve): 제일 먼저 인터럽트를 요청한 장치가 최고 우선순위
|
HW 방식: 데이지 체인 방식, 병렬 우선순위 부여 방식
SW(폴링) 방식: 우선순위가 높은 source 부터 차례대로 인터럽트 요청 플래그 검사
|
- 인터럽트에 대한 우선순위 결정은 하드웨어 구성, 소프트웨어 구현에 따라 가변 가능함
- 인터럽트의 처리 과정
- 단일 인터럽트의 처리 과정
개념도 |
처리 과정 |
1.인터럽트 요청 신호 검출 및 인터럽트 우선순위 제어 및 허용 여부 판단
2.인터럽트 처리 루틴의 시작 번지 확인
3.복귀 주소 및 레지스터 저장
4.인터럽트 서비스 루틴 실행
5.인터럽트 서비스 루틴 종료 및 프로세스 복귀
|
- 중첩 인터럽트(Nested Interrupt)의 처리 과정
우선순위에 따른 인터럽트 처리 |
순차 처리에 따른 인터럽트 처리 |
- 인터럽트의 우선 순위를 정하고, 우선 순위가 낮은 인터럽트가 처리되고 있는 동안에 우선순위가 더 높은 인터럽트가 들어오면,
- 현재의 인터럽트 서비스 루틴의 수행을 중단하고 새로운 인터럽트를 처리
|
- 이전 인터럽트의 처리가 종료될 때까지 인터럽트 처리를 연기
- CPU가 인터럽트 서비스 루틴을 처리하고 있는 도중에는 새로운 인터럽트 요구가 들어오더라도 CPU가 인터럽트 사이클을 수행하지 않도록 방지
|
- Device 의 ISR 처리 시 우선순위가 높은 Network 인터럽트가 발생하여, Network ISR을 수행 후 Device ISR로 복귀
|
- Device 의 ISR 처리 중에 Network 인터럽트가 발생하였으나, Device ISR 완료까지 Pending. Device ISR 완료 후 인터럽트의 유무를 확인 후 Network ISR을 수행
|
- 다중 인터럽트의 효율적 처리를 위한 인터럽트 벡터
구분 |
내용 |
|
개념 |
인터럽트가 발생했을 때, 그 인터럽트를 처리할 수 있는 서비스 루틴들의 주소를 가지고 있는 공간 |
인터럽트 벡터 테이블 구조
|
벡터형
인터럽트
Vectored
Interrupt
|
- 인터럽트가 발생했을 때, 인터럽트 벡터, 즉 해당 인터럽트를 처리할 수 있는 서비스 루틴들의 주소를 가지고 있고, 인터럽트에 따라 이를 호출하여 인터럽트를 처리 하는 방식
- 인터럽트 처리 시간이 빠름
- 주변장치의 많고 적음에 영향이 없다.
|
- 인터럽트 동작원리의 개념 및 상세 동작원리
- 인터럽트 동작원리 개념(요청회선의 연결방법)
- 인터럽트가 가능한 자원들에게 고유 번호를 부여하여 CPU가 구별하도록 인터럽트 번호를 할당
유형 |
설명 |
단일
회선방법 (SW폴링, 데이지체인)
|
- 프로그램 수행 중 Disk가 인터럽트를 요청하면 PC+1 값인 46번지를 저장후 인터럽트 처리루틴인 300번지로 분기하여 Dis의 인터럽트 서비스 루틴인 401번지로 분기
|
② 수행이 중단된 프로그램의 상태(레지스터의 내용 + PC값)를 안전한 기억장소에 보존
③ 인터럽트 처리 루틴을 통해 인터럽트의 원인을 찾아냄
④ 해당되는 인터럽트의 서비스 루틴을 수행
⑤ 보존시킨 프로그램의 상태(레지스터의 내용 + PC값)를
복구하여 인터럽트 당한 프로그램을 중단된 곳에서부터 다시
계속하여 수행
| |
한 개의 회선에서 여러 개의 장치를 연결, SW폴링 방식, 데이지 체인방식에 사용
| |
다중
회선방법 (Vectored)
|
프로그램 수행 중 Disk가 인터럽트를 요청하면 PC=1 값인 46번지를 저장 후 인터럽트 백터를 통해 Disk의 인터럽트 서비스 루틴인 401 번지로 분기함.
|
② 수행이 중단된 프로그램의 상태(레지스터의 내용+PC값)를
안전한 기억장소에 보존
③ 인터럽트 백터를 통해 인터럽트 서비스 루틴으로 분기 (인터럽트의 원인이 하드웨어에 의해 판별되므로 인터럽트 처리 루틴이 필요하지 않음)
④ 해당되는 인터럽트의 서비스 루틴을 수행
⑤ 보존시킨 프로그램의 상태(레지스터의 내용 + PC값)를 복구하여 인터럽트 당한 프로그램을 중단된 곳에서부터 다시 계속하여 수행
| |
장치마다 고유의 요청 신호 회선을 연결, 다중 인터럽트 방식(Vectored)에 사용
| |
혼합 회선방법 |
- 단일회선방법과 다중회선방식을 혼합
|
-끝-
반응형
'IT 연구회' 카테고리의 다른 글
[기계학습] 알고리즘 도식 (0) | 2018.05.16 |
---|---|
[WAS] tomcat vs jboss (0) | 2018.05.14 |
[tomcat] 시작 (0) | 2018.05.14 |
RBAC (0) | 2017.12.30 |
연산자 종류 (0) | 2017.12.24 |
Kanban (0) | 2017.09.05 |
폭포수(waterfall) 모델 (0) | 2017.09.05 |
SDLC (0) | 2017.09.05 |
데이터 모델링(data modeling) (0) | 2017.08.21 |
HCE(Host Card Emulation) (0) | 2017.08.16 |