[컴퓨터 구조/운영체제] 예외의 종류

myungji·2024년 4월 29일

이 글은 한빛미디어 출판사의 '혼자 공부하는 컴퓨터 구조+운영체제(강민철 저)'를 정리한 내용입니다.

예외가 발생하면 CPU는 하던 일을 중단하고 해당 예외를 처리한 뒤, 다시 본래 하던 작업으로 되돌아와 실행을 재개한다. 이 때 예외가 발생한 명령어부터 다시 실행을 할지, 아니면 그 다음 명령어부터 실행을 할지에 따라 폴트트랩으로 나뉜다.

1. 폴트(fault)

예외를 처리한 직후 예외가 발생한 명령어부터 실행을 재개하는 예외이다.

예를 들어, CPU가 한 명령어를 실행하려 하는데, 꼭 필요한 데이터가 메모리가 아니라 보조 기억 장치에 있는 상황이라고 해보자. 프로그램이 실행되는데 필요한 데이터는 반드시 메모리에 있어야 한다. 따라서 CPU는 폴트를 발생시키고 보조 기억 장치에서 필요한 데이터를 메모리로 꺼내온다. 그리고 폴트가 발생한 그 명령어부터 실행한다.

2. 트랩(trap)

예외를 처리한 직후 예외가 발생한 다음 명령어부터 실행을 재개하는 예외이다.

디버깅을 할 때, 특정 코드가 실행되는 순간 프로그램이 멈추게 설정할 수 있다(해당 코드가 실행된 순간의 프로그램 상태를 보고싶어서 실행되는 순간 잠깐 실행을 멈추는 것). 이 예외가 트랩이다. 프로그램을 중단시키고 디버깅이 끝나면 프로그램은 다음 명령어부터 실행을 재개한다.

3. 중단(abort)

CPU가 실행중인 프로그램을 강제로 중단시킬 수 밖에 없는 심각한 오류를 발견했을 때 발생하는 예외.

4. 소프트웨어 인터럽트(software interrupt)

시스템이 호출이 발생했을 때 나타나는 예외.


출처 - '혼자 공부하는 컴퓨터 구조+운영체제(한빛미디어, 강민철 저)'

profile
iOS 초보바리

0개의 댓글