하드웨어가 CPU에게 어떤 이벤트를 알리기 위해 보내는 신호 : 비동기적으로 발생하며, 현재 실행 중인 프로그램과는 무관하게 발생 가능
발생 원인
처리
CPU는 인터럽트를 받으면 현재 작업을 잠시 멈추고, 인터럽트 벡터 테이블(Interrupt Vector Table)을 참조하여 해당 인터럽트 핸들러를 실행
사용자 프로그램이 의도적으로 운영체제의 서비스를 요청하기 위해 발생시키는 소프트웨어적인 예외(동기적으로 발생하며, 시스템 콜이 대표적인 예시)
발생 원인
open()
, read()
, write()
등 파일 관련 작업을 할 때malloc()
과 같은 함수로 메모리를 할당받을 때fork()
와 같은 함수로 새로운 프로세스를 생성할 때처리
사용자 프로그램은 특정한 시스템 콜 명령어를 실행하고, CPU는 트랩이 발생하면 커널 모드로 전환하여 운영체제 코드를 실행
프로그램 실행 중에 발생하는 예상치 못한 문제로, 대개 프로그램의 버그나 잘못된 동작으로 인해 발생. 오류는 복구 가능