-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Interrupt
정의
CPU 외부에서 발생한 사건에 의해 현재 실행 중인 프로세스를 잠시 멈추고 운영체제가 해당 사건을 처리하는 것입니다.
예시
키보드 입력, 마우스 클릭, 타이머, 디스크 I/O 완료 등.
사용자가 키보드를 눌렀을 때, 하드웨어(키보드 컨트롤러)가 인터럽트를 발생시켜 OS가 입력 처리를 시작.
📌 중요 포인트: 비동기적으로 발생 → 언제 발생할지 예측할 수 없음.
Trap
정의
프로그램이 의도적으로 운영체제의 서비스를 요청하기 위해 발생시키는 예외입니다. 보통 시스템 콜(System Call)을 할 때 사용됩니다.
예시
read(), write(), open() 같은 시스템 콜을 사용할 때, 사용자 프로그램이 trap을 발생시켜 커널 모드로 진입.
예: printf() 호출 시, 내부적으로 write() 시스템 콜 → trap 발생 → OS가 커널 코드로 전환해 처리.
📌 중요 포인트: 동기적이며, 의도된 예외.
Fault
정의
프로그램 실행 중 복구 가능한 오류가 발생했을 때 발생하는 예외입니다. OS가 개입해서 문제를 해결한 후 프로그램을 다시 실행할 수 있습니다.
예시
Page Fault: 프로세스가 아직 메모리에 없는 페이지를 접근하려 할 때 → OS가 디스크에서 페이지를 가져온 뒤 다시 실행.
Divide by Zero Fault: 0으로 나누는 경우 → OS가 처리 가능하다면 복구 시도.
📌 중요 포인트: 동기적, 복구 가능, 일반적으로 문제 해결 후 명령 재시도.
Abort
정의
심각하고 복구 불가능한 오류가 발생해, 프로세스를 즉시 중단해야 하는 상황에서 발생하는 예외입니다.
예시
하드웨어 오류(메모리 오류, 디스크 오류)
데이터 구조가 심각하게 손상되어 OS가 더 이상 프로그램을 계속 실행할 수 없는 경우.
예: 메모리에서 ECC 오류(오류 정정 불가)가 발생하여 시스템이 해당 프로세스를 종료.
📌 중요 포인트: 동기적, 복구 불가, 프로그램 즉시 종료.
| 구분 | 발생 원인 | 동기성 | 복구 가능성 | 예시 |
|---|---|---|---|---|
| Interrupt | 하드웨어 외부 사건 | ❌ 비동기 | ✅ 필요 없음 | 키보드 입력, 디스크 완료 |
| Trap | 프로그램이 요청함 | ✅ 동기 | ✅ 가능 | 시스템 콜 (read, write) |
| Fault | 오류 발생 | ✅ 동기 | ✅ 복구 가능 | Page Fault, Divide by 0 |
| Abort | 치명적 오류 발생 | ✅ 동기 | ❌ 복구 불가 | 메모리 손상, 하드웨어 오류 |