컴퓨터 사이언스

인터럽트

woohap 2024. 11. 1. 21:46

인터럽트

프로세서가 현재 실행 중인 작업을 일시 중단하고 다른 작업을 처리해야할 때 발생하는 신호 
Ex) 키보드, 마우스 입력, 시스템 콜, 페이지 폴트 등등 

**** 인터럽트를 실행한다고 해서 반드시 다른 작업을 처리한 후 원래 작업으로 돌아오는 것은 아니다.
Ex) 문맥교환 인터럽트의 경우 다른 프로세스로 전환됨

일반적인 인터럽트 사이클

1. CPU가 인터럽트 발생을 확인하고, 현재 실행 중인 작업을 중단한다.
2. 실행 중인 프로세스의 PC, 스택, 일반 레지스터, 상태 레지터 등의 현재 상태를 특수 저장소에 저장
일반적으로 커널 스택이나 커널 메모리 영역 또는 PCB에 저장 
3. CPU의 PC에 인터럽트 처리 루틴의 시작 주소를 저장하여 인터럽트 처리 
인터럽터 벡터 테이블을 참조하여 인터럽트 처리 루틴 주소를 찾음 
4. 처리가 완료되면 특수 저장소에 저장해 둔 현재 프로세스의 정보들을 다시 CPU 레지스터에 적재 
5. 중단된 프로그램 다시 실행 

** 인터럽트 처리 루틴이란 인터럽트 핸들러를 의미한다. 
** 인터럽트 벡터 테이블은 인터럽트 처리 루틴 주소를 저장한 테이블 이는 커널 메모리 영역에 저장

인터럽트 종류

1. 하드웨어 인터럽트 (외부 인터럽트), 트랩
- 외부 하드웨어 장치에 의해 발생 
  → 외부 하드웨어란 CPU와 메인 메모리를 제외한 외부 하드웨어를 의미 
- 예측 불가능한 시점에 발생 가능(비동기적) Ex) 타이머 인터럽트, I/O 인터럽트, 하드웨어 고장 등

2. 소프트웨어 인터럽트 (내부 인터럽트)
프로그램 실행 중 특정 조건에 의해 발생 
CPU 내부에서 발생하는 동기적 이벤트 
의도적으로 발생시킬 수 있음 
Ex) 시스템 콜 요청, 예외(0으로 나누기, 페이지 폴트, 스택 오버플로우) 등등

컨트롤러란

각 하드웨어마다 컨트롤러가 존재 
- 장치 제어 : 하드웨어 동작을 관리하고 제어
- 데이터 처리 : 장치와 시스템 간의 데이터 흐름 관리
- 인터페이스 : CPU와 장치간 통신을 담당
- 상태 모니터링 : 장치의 상태를 지속적으로 확인하고 필요시 CPU에 알림

'컴퓨터 사이언스' 카테고리의 다른 글

가상 메모리 - 요약  (0) 2024.11.05
문맥교환  (0) 2024.11.02
시스템 콜  (0) 2024.10.30
커널  (0) 2024.10.29
원자적 실행 (Atomic Operation)  (0) 2024.10.28