← 질문 목록
#410깊이 0

트랩과 인터럽트의 차이는 무엇인가?

운영체제기초

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

무엇이 일으켰느냐로 갈린다. 트랩은 지금 도는 명령이 스스로 일으키고, 인터럽트는 바깥 장치가 명령과 상관없이 끼어든다.

기준트랩인터럽트
일으키는 쪽지금 도는 명령바깥 장치
언제 오는가그 명령을 실행할 때언제 올지 모른다
무엇이 정하는가프로그램이 한 일바깥 사정

명령이 일으키는 것도 한 종류가 아니다. 트랩은 의도해서 부른 것이라 처리한 뒤 다음 명령으로 돌아간다. 시스템 호출과 중단점이 그렇다.

폴트는 다르다. 실패한 그 명령으로 돌아가 다시 실행한다. 0으로 나누기와 페이지 부재가 폴트다. 어보트는 어디서 났는지도 모르고 재시작도 못 한다.

인터럽트는 그렇지 않다. 키를 누르거나 디스크가 다 읽었을 때 오므로 어느 명령에서 끼어들지 정해져 있지 않다.

부르는 이름은 넓게도 좁게도 쓴다. 넓게는 둘 다 인터럽트로 묶고 안에서 온 것을 소프트웨어 인터럽트라 부른다. 좁게 나눌 때만 바깥에서 온 것을 인터럽트라 한다.

예외와 하드웨어 인터럽트는 번호로 표를 찾아 그 자리로 뛴다. 다만 x86-64의 시스템 호출은 그 표를 안 거치고 등록해 둔 진입점으로 바로 간다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

트랩과 인터럽트의 차이는 무엇인가?