운영 체제에는 인터럽트를 발생시키는 특정 명령어가 있는데, 시스템 콜도 이러한 소프트웨어 인터럽트의 일종이다.
소프트웨어 인터럽트가 발생했을 때 수행되는 과정
- CPU는 현재 수행 중인 작업을 백업한다.
- 커널 영역 내 인터럽트를 처리하기 위한 코드 (여기서는 시스템 콜을 구성하는 코드)를 실행한다.
- 사용자 영역의 코드 실행을 재개한다.
- 사용자 모드: 사용자 영역에 적재된 코드르 실행할 때의 모드
- 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 자원에 접근하는 명령어를 만나도 이를 실행하지 않는다.
- 커널 모드: 커널 영역에 적재된 코드를 실행할 때의 모드