장치 상태 변화에 대응하는 인터럽트(Interrupt)
- 정보처리기술사/컴퓨터구조,OS
- 2020. 9. 28.
인터럽트의 개념
- 프로그램의 실행 중 CPU의 현재 처리 순서를 중단시키고 다른 동작을 수행하도록 요구하는 시스템 동작
- 어떤 장치가 다른 장치의 일을 잠시 중단시키고 자신의 상태 변화를 알려주는 제어신호
- CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능
대부분의 컴퓨터는 한 순간에는 하나의 일 밖에 처리할 수 없기에 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요함
ex) 컴퓨터에 오류가 발생하여 현재 발생한 페이지 정보를 저장해야 할 때
주요개념
인터럽트 요청 (Interrupt ReQuest, IRQ)
- CPU에 인터럽트를 요청하는 신호, CPU에게 인터럽트 요청 시 CPU가 각 장치를 구분할 수 있는 공유한 IRQ 존재
인터럽트 처리 루틴(Interrupt Process Routine, IPR)
- 인터럽트의 발생 원인을 찾아서 인터럽트 서비스 루틴(ISR)을 호출한다
인터럽트 서비스 루틴(Interrupt Service Routine, ISR)
- 인터럽트에 대한 실체 처리를 담당한다
트랩(Trap)
- Error나 요청에 의해 SW가 발생시킨 인터럽트
인터럽트의 필요성
시스템 효율성 개선
- 고속 CPU, 저속 Device 간 처리 효율이 향상된다.
- 다중 입출력 장치에 대한 우선 순위를 지정한다.
시스템 안정성 개선
- 정전과 같은 비정상 상태 발생시, 수행 결과 저장 및 복구 수행
인터럽트 처리과정
1. 인터럽트 벡터 테이블의 해당 주소로 PC값 변경
2. 인터럽트 벡터 테이블의 해당 주소에서 해당 인터럽트 핸들러로 분기
3. 인터럽트 핸들러에서 현재 상태(context)를 저장하고 해당하는 ISR을 찾아서 분기
4. ISR에서는 실제 해당 인터럽트에 대한 처리를 담당하고 종료 후 인터럽트 핸들러로 복귀
5. 인터럽트 핸들러로 돌아오면 원래 Context를 복원
6. 인터럽트 핸들러 종료 후 돌아오게 되면 수행되던 프로세스가 이어서 수행되고
해당 과정에서 마스킹(masking), 수행불가/가능(disable/enable) 등도 설정됨
인터럽트의 우선 순위
인터럽트가 동시에 발생할 경우 인터럽트 사이에서도 우선순위를 두어 급한 것들을 먼저 처리해야 하며 이를 인터럽트 우선 순위라 한다.
외부(HW)
- 전원 공급의 이상
- CPU의 기계적인 오류
- 외부 신호에 의한 인터럽트
- 입출력 전송 요청 및 전송 완료, 전송 오류
내부(HW)
- 프로그램 검사 인터럽트
외부(HW)
- 수퍼바이저 호출(SVC 인터럽트)
인터럽트 우선순위 정렬(sorting) 방법
소프트웨어적인 방법
폴링(Polling)
- CPU가 모든 제어기에 연결된 TEST I/O 선을 이용해 인터럽트를 요청한 장치를 검사하는 방식
하드웨어적인 방법
직렬 연결 방식
- 데이지 체인(Daisy Chain)이라고도 하며 우선순위 부여 방식으로 인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결하여 우선순위에 따라 순위대로 연결하는 방식
- 우선순위가 낮은 장치들이 서비스를 받지 못하는 현상 발생
병렬 연결 방식
- 각 I/O 제어기마다 별도의 버스 선을 이용하여 인터럽트 요구(INTR) 선과 인터럽트 확인(INTA) 선을 접속하는 방식
- 인터럽트를 쉽게 찾을 수 있는 장점이 있으나 하드웨어 구성이 복잡하고 CPU가 가지고 있는 인터럽트 포트 수에 의해서 연결할 수 있는 장치의 수가 제한 된다는 단점 존재
인터럽트 우선순위 체제 구현 방식 비교
구분 |
HW적 구현 |
SW적 구현 |
반응속도 |
고속 |
저속 |
회로 복잡도 |
복잡 |
단순 |
경제성 |
비 경제적 |
경제적 |
융통성 |
없음 |
있음 |
'정보처리기술사 > 컴퓨터구조,OS' 카테고리의 다른 글
효율적인 명령어 처리, 명령어 파이프라인(instruction Pipeline) (0) | 2021.03.28 |
---|---|
다중 프로세스의 무한대기, 교착상태(Deadlock) (0) | 2020.11.29 |
병렬 컴퓨터의 시간 계산, 암달의 법칙(Amdahl's Law) (0) | 2020.04.24 |
메모리를 분리한 폰노이만 개선 구조, 하버드 아키텍처 (0) | 2019.12.10 |
프로그램 내장 방식의 폰노이만 구조(Von Neumann Architecture) (0) | 2019.12.02 |