interrupt
CPU는 실행 지점을 보존한 뒤 커널 핸들러로 들어간다
인터럽트 처리는 현재 명령을 마무리하고, 복귀할 상태를 저장한 다음, 번호에 맞는 핸들러를 실행하는 순서입니다.
동기성
트랩은 명령 실행 시점에, 하드웨어 인터럽트는 외부 신호로 발생한다.
보존 대상
PC, FLAGS, 일부 레지스터를 저장해 원래 흐름으로 돌아간다.
제어권
사용자 코드에서 커널 핸들러로 잠시 넘어간다.
01
명령 완료
CPU는 현재 실행 중인 명령을 중간에 끊지 않는다.
02
상태 저장
복귀에 필요한 PC와 플래그를 커널이 볼 수 있게 보관한다.
03
번호 확인
APIC나 CPU 예외 번호로 어떤 사건인지 식별한다.
04
핸들러 실행
커널의 인터럽트 벡터가 알맞은 처리 루틴을 호출한다.
05
복귀
저장한 상태를 복원하고 원래 흐름이나 스케줄러로 돌아간다.
사건
발생 시점
대표 처리
하드웨어 인터럽트
장치가 CPU에 외부 신호를 보낼 때
키보드, 디스크, 네트워크 완료를 커널이 처리한다.
트랩
프로그램이 syscall 같은 명령을 실행할 때
사용자 모드에서 커널 서비스 요청으로 전환한다.
예외
잘못된 연산이나 페이지 폴트가 발생할 때
복구하거나 프로세스에 신호를 보낸다.
중단 전 완료
명령 단위의 일관성을 유지한다.
복귀 정보
저장한 상태가 없으면 원래 프로그램으로 돌아갈 수 없다.
핸들러 매핑
번호와 벡터가 사건별 처리 루틴을 연결한다.