PE Notes · CA/OS
인터럽트
CPU가 사건을 받는 인터럽트를 폴링·데이지 체인·벡터 방식과 가르고, 상태 저장부터 ISR 복귀까지의 처리와 DMA 관계를 정리합니다.
장치가 끝났는지 CPU가 계속 물어보면 일은 멈춥니다. 는 실행 중에 사건이 오면 현재 흐름을 접고 그 사건을 처리한 뒤 돌아옵니다. 외부는 입출력 완료·타이머·전원이고, 내부 트랩은 0 나눗셈·잘못된 명령·잘못된 주소입니다. 프로그램이 일부러 올리는 소프트웨어 인터럽트는 시스템 호출입니다.
누가 우선순위를 정하는가
은 CPU가 상태 레지스터를 순회합니다. 구현은 단순하고 사이클을 낭비합니다. 은 우선이 높은 장치를 가까운 고리에 답니다. 하드웨어가 순서를 고정해 바꾸기 어렵습니다. 는 장치마다 번호를 주고, 그 번호로 서비스 루틴 주소를 바로 찾습니다. 현대 운영체제의 기본입니다.
| 방식 | 한 줄 | 대가 |
|---|---|---|
| 폴링 | CPU가 장치를 돌아봄 | 단순, 낭비 |
| 데이지 체인 | 고리 순서가 우선순위 | 변경이 어려움 |
| 벡터 | 번호 → 테이블 → 루틴 | 빠르고 유연 |
는 전송이 끝나는 순간 인터럽트로 알립니다. CPU는 복사 루프에 묶이지 않습니다.
여섯 칸과 테이블
사건이 오면 IRQ가 들어옵니다. CPU는 프로그램 카운터와 상태 워드를 스택·PCB에 맡깁니다. 번호로 를 보고 주소를 꺼냅니다. 루틴이 장치를 비우고, 저장했던 값을 되돌린 뒤 끊긴 명령부터 다시 달립니다. 문맥 교환 노트는 이 저장·복원이 스케줄 전환과 같은 뼈대임을 말합니다.
벡터 테이블은 앞쪽이 트랩, 뒤쪽이 장치 IRQ인 경우가 많습니다. 0번 근처는 나눗셈 오류, 페이지 폴트는 중간 번호, 장치는 뒤쪽 칸에 두는 식입니다. 다중 코어는 프로그래머블 컨트롤러가 코어마다 라우팅하고 마스크합니다. 스케줄러는 인터럽트 직후 더 높은 준비 작업을 고를 수 있습니다. 답안은 정의, 세 방식 표, 여섯 단계, IVT를 한 장에 닫습니다.