<aside> 🥕

결론 : CPU가 현재 실행 중인 프로그램을 멈추고, 운영체제 코드(커널 코드)를 실행하기 시작한다!

</aside>

원래 CPU는 “사용자 프로그램 코드”를 실행 중

CPU는 이중 모드로 동작하며, 보통 CPU는 사용자 프로그램의 명령어를 차례차례 실행하는 상태 (EX : 계산기 프로그램을 실행 중이라면, add, mul 같은 계산 루프 실행)

제어권이 넘어가는 순간들

CPU가 “이제 OS가 처리해야겠다”라고 판단하는 순간

1️⃣ 시스템 콜

프로그램이 read(), write() 같은 커널 기능을 요청할 때

2️⃣ 인터럽트

타이머 인터럽트(시계 땡 소리), 키보드 입력, 디스크 I/O 완료 신호같은 경우

3️⃣ 예외

잘못된 메모리 접근(segfault), 0으로 나누기의 경우

“제어권을 넘긴다”는 것의 의미

예시(타이머 인터럽트)