Skip to content

Exception 종류 #2

@capDoYeonLee

Description

@capDoYeonLee

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 치명적 오류 발생 ✅ 동기 ❌ 복구 불가 메모리 손상, 하드웨어 오류

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions