이거 공룡책에 안나오고

cs app에 나오는건데 뒤적거리기 귀찮아서 내가 알고있는대로 씨부려볼테니 맞나봐봐.


1.

폴트 예외 트랩
3종류가 있다.


2.

폴트와 예외는 단일명령어의 실행도중 단일명령어 실행에 문제가 생겨서 해당 명령어를 중단한다.

트랩은, 단일명령어가 끝나고. 명령어와 명령어 사이에 온전하게, 임의의 명령어의 중단없이 안전하게 핸들러를 갔다가 나온다.

3.

폴트와 예외는 단일명령어 실행 도중, 단일명령어를 중단하고 예외핸들러로 넘어간다

예외핸들러가 끝난 후,

폴트는 중단했던 명령어를 처음부터 다시시작한다.

예외는 중단했던 명령어의 다음명령어부터 재개한다.



4.

내가 지금 헷갈리는 부분은

예외가 다음 명령어부터 재개하는 경우가 안떠오른단거임.

보통 핸들러선에서 해당프로세스를 죽이지않나

그러면 만약 init[pid = 1] 이 예외터지면, 그거 죽음?

뭐 이러저런생각.

예외가 좀 어렵네.

그리고 트랩 이것도 어려운게
인터럽트핸들링도 트랩이라고보더라