일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 계명대 이종호
- 계명대
- 스위프트
- 리액트 예제
- HTML
- 개발자
- 자스민
- Hitit
- hokidoki
- 이종호
- 힛잇
- react
- 호키스
- jest
- data structure
- TDD
- SWIFT
- IOS
- 리액트
- 호키도키
- 스벨트
- 비동기
- 자바스크립트 자료구조
- 자바스크립트
- javascript
- 개발
- hokeys
- queue
- 자료구조
- Svelte
- Today
- Total
Dog foot print
[C-Architecture]인터럽트 본문
인터럽트 Interrrupt
인터럽트란 프로그램을 수행 중 다른 명령이 먼저 수행되도록 하는 시스템 동작이다. 농구용어 intercept 라는 단어 처럼 기존 실행하던 명령어 순서를 빼앗고 새치기하는 형태의 명령 수행으로 기억하면 좋을 듯하다.
인터럽트 서비스 루틴 ISR : interrupt service toutine
ISR은 인터럽트 접수에 의해 발생되는 인터럽트에 대응하여 특정 기능을 처리하는 기계어 코드 루틴이다.
-위키백과 https://ko.wikipedia.org/wiki/인터럽트_핸들러
인터럽트가 발생되면 본인의 컴퓨터가 설정한 ISR을 완료 하고 종료 후 기존에 실행하다 중지된 명령어 부터 다시 실행한다.
인터럽트 실행시 CPU의 동작
현재 중지된 명령어의 주소를 메모리의 Stack에 적재한다. 그리고 program Counter는 루틴을 실행할 명령어 주소를 가리킨다.
ISR이 종료되면 PC는 마지막에 사용된 명령어의 주소를 stack으로 부터 가지고 와서 다시 실행한다.
다중 인터럽트 처리 방법
다중 인터럽트를 처리하기 위해서는 다음과 같은 두가지 방법이 있다.
ISR이 실행 중일때 새로운 인터럽트 요청이 와도 새로운 ISR을 실행하지 않는 방법
인터럽트 플래그를 두어 ISR이 실행 중 일때 인터럽트 요청이 들어오더라도 플래그에 따라 실행이 되지 않게 하는 방법이다.
주로 시스템 운영상 중요한 프로그램이나 중단 할 수 없는 데이터 입출력 등을 위한 인터럽트를 처리하는데 사용된다.
인터럽트에 우선순위를 지정하여 우선순위가 높은 인터럽트를 먼저 수행하게 하는 방법
인터럽트 우선순위는 다음과 같다.
전원 이상 > 기계 착오 > 외부 신호 > 입출력 > 명령어 오류 > 프로그램 검사 > 관리자 호출
참조
'컴퓨터 구조' 카테고리의 다른 글
[예습하는 OS] 프로세스 기초 (0) | 2020.02.02 |
---|---|
[예습하는 OS] OS 훑어보기 (0) | 2020.02.01 |
[C-Architecture] cpu의 내부구성 요소 (0) | 2019.09.23 |
[C-Architecture] 컴퓨터의 기능과 발전 (0) | 2019.09.12 |
[C-Architecture] 컴퓨터의 시스템 (0) | 2019.09.11 |