다른 명령
편집 요약 없음 |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
==개요== | ==개요== | ||
[[파일:Flow of Exception.png|섬네일|300x300픽셀|Flow of Exception]] | |||
Exception이란 특정 이벤트가 발생함에 따라 OS kernel로 Control을 이동시키는 것을 의미한다. 이때 exception이 발생하면 커널<ref>메모리에 존재하는 OS의 핵심 부분이다. 시스템 리소스에 직접 접근하여 시스템의 상태를 관리하고 오류나 예외상황을 처리한다.</ref>에서 exception handler를 통해서 이를 처리한다. | Exception이란 특정 이벤트가 발생함에 따라 OS kernel로 Control을 이동시키는 것을 의미한다. 이때 exception이 발생하면 커널<ref>메모리에 존재하는 OS의 핵심 부분이다. 시스템 리소스에 직접 접근하여 시스템의 상태를 관리하고 오류나 예외상황을 처리한다.</ref>에서 exception handler를 통해서 이를 처리한다. | ||
* 예시: 0나누기 / 오버플로우 / page fault<ref> 프로그램이 가상 메모리에 접근하려고 할 때, 해당 페이지(데이터 블록)가 주기억장치(RAM)에 존재하지 않으면 발생한다.</ref> / I/O request completion / Ctrl - C | * 예시: 0나누기 / 오버플로우 / page fault<ref> 프로그램이 가상 메모리에 접근하려고 할 때, 해당 페이지(데이터 블록)가 주기억장치(RAM)에 존재하지 않으면 발생한다.</ref> / I/O request completion / Ctrl - C | ||
또한 Exception table이란 예외 발생시 해당 예외를 처리하는 Exception Handler의 주소를 저장하는 데이터 구조를 의미한다. | |||
각각의 Exception은 고유한 예외 코드 K를 가지고 있으며, exception handler K는 해당 예외가 발생시 Exception Table에 저장된 주소를 통해 호출된다. | |||
{| class="wikitable" | |||
|+ | |||
!Class | |||
!Cause | |||
!Async/sync | |||
!Return behavior | |||
|- | |||
|Interrupt | |||
|Signal from I/O Device | |||
|Async | |||
|Always returns to next instruction | |||
|- | |||
|Trap | |||
|Intentional exception | |||
|Sync | |||
|Always returns to next instruction | |||
|- | |||
|Fault | |||
|Potentially recoverable error | |||
|Sync | |||
|Might returns to current instruction | |||
|- | |||
|Abort | |||
|Non recoverable error | |||
|Sync | |||
|Never returns | |||
|} | |||
2025년 3월 11일 (화) 16:21 판
개요
Exception이란 특정 이벤트가 발생함에 따라 OS kernel로 Control을 이동시키는 것을 의미한다. 이때 exception이 발생하면 커널[1]에서 exception handler를 통해서 이를 처리한다.
- 예시: 0나누기 / 오버플로우 / page fault[2] / I/O request completion / Ctrl - C
또한 Exception table이란 예외 발생시 해당 예외를 처리하는 Exception Handler의 주소를 저장하는 데이터 구조를 의미한다. 각각의 Exception은 고유한 예외 코드 K를 가지고 있으며, exception handler K는 해당 예외가 발생시 Exception Table에 저장된 주소를 통해 호출된다.
| Class | Cause | Async/sync | Return behavior |
|---|---|---|---|
| Interrupt | Signal from I/O Device | Async | Always returns to next instruction |
| Trap | Intentional exception | Sync | Always returns to next instruction |
| Fault | Potentially recoverable error | Sync | Might returns to current instruction |
| Abort | Non recoverable error | Sync | Never returns |