<aside> 🥕
결론 : CPU가 현재 실행 중인 프로그램을 멈추고, 운영체제 코드(커널 코드)를 실행하기 시작한다!
</aside>
CPU는 이중 모드로 동작하며, 보통 CPU는 사용자 프로그램의 명령어를 차례차례 실행하는 상태
(EX : 계산기 프로그램을 실행 중이라면, add, mul 같은 계산 루프 실행)
CPU가 “이제 OS가 처리해야겠다”라고 판단하는 순간
프로그램이 read(), write() 같은 커널 기능을 요청할 때
int 0x80 같은 인터럽트 호출)를 실행하고, 사용자 코드 대신 커널 코드(운영체제 함수)로 점프타이머 인터럽트(시계 땡 소리), 키보드 입력, 디스크 I/O 완료 신호같은 경우
잘못된 메모리 접근(segfault), 0으로 나누기의 경우