소프트웨어와 하드웨어 - 인터럽트란?
인터럽트는 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 분류할 수 있습니다.
일반적으로 인터럽트는 하드웨어 인터럽트를 가리키는 경우가 많고
후자를 SWI(SoftWare Interrupt)라고 구별하기도 합니다.
하드웨어 인터럽트
하드웨어 인터럽트는 CPU 외부의 디스크 컨트롤러나 주변장치로부터 요구되는 것으로,
운영체제의 처리를 요하는 상황을 알리기 위해 전기적인 신호를 사용해 구현됩니다.
하드웨어 인터럽트가 발생하는 예
1. 기계검사 인터럽트 - 프로그램을 실행하는 도중 갑작스런 정전이나 컴퓨터 자체 내에서
기계적인 문제가 발생한 경우
2. 외부 인터럽트 - 오퍼레이터나 타이머에 의해 의도적으로 프로그램이 중단된 경우
3. 입출력 인터럽트 - 입출력의 종료나 입출력의 오류에 의해 CPU의 기능이 요청되는 경우
4. 프로그램검사 인터럽트 - 프로그램 실행 중 보호된 기억공간 내에 접근하거나 불법적인
명령 수행과 같은 프로그램의 문제가 발생한 경우
소프트웨어 인터럽트
소프트웨어 인터럽트는 외부가 아닌 CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에
관련된 모듈이 변화하는 경우 발생합니다.
프로그램 실행 중 프로그램 상의 처리 불가능한 오류나 이벤트를 알리기 위한 경우 발생하는데,
이를 트랩(trap) 또는 예외(exception)라 부릅니다.
또한 프로그램 내에서 특별한 서비스를 요구하거나 감시(supervisor)를 목적으로 의도적으로
프로그램이 발생시킨 특별한 명령어에 의해 발생되기도 한다.
소프트웨어 인터럽트가 발생하는 예
1. 존재하지 않는 메모리 주소에 접근
2. 나눗셈에서 0으로 나누고자 하는 경우
'IT' 카테고리의 다른 글
프레임워크의 정의와 장단점 (0) | 2018.02.06 |
---|---|
깃(Git)과 깃허브(GitHub)의 정의 (0) | 2018.02.05 |
IT 계층구조 (0) | 2018.01.25 |
css - 긴글 자동 줄바꿈 (0) | 2018.01.12 |
JSP / 자바스크립트 / 자바 데이터 및 함수호출 (0) | 2017.11.10 |