OS와 하드웨어

CPU가 인터럽트를 받아들였을 때의 일반적인 처리 흐름으로 올바른 것은 무엇입니까?

  1. A실행 중인 프로그램을 폐기하고 처음부터 다시 실행한다
  2. B인터럽트 핸들러를 실행한 뒤 원래 프로그램으로 돌아가지 않고 다음 프로그램을 시작한다
  3. C실행 중인 위치와 상태를 저장하고, 인터럽트 핸들러를 실행한 뒤 저장한 위치로 돌아간다
정답과 해설 보기

정답: C. 실행 중인 위치와 상태를 저장하고, 인터럽트 핸들러를 실행한 뒤 저장한 위치로 돌아간다

인터럽트를 받아들이면 CPU는 다음에 실행할 예정이었던 명령의 주소와 동작 모드 등의 상태를 저장하고, 인터럽트 벡터 테이블 등으로 정해진 인터럽트 핸들러로 이동합니다. 핸들러는 필요한 레지스터를 저장하고 처리를 수행한 뒤, 끝나면 상태를 복원하여 중단된 위치에서 원래 프로그램을 재개합니다. 프로그램을 폐기하거나 처음부터 다시 하지 않습니다. 핸들러 이후 다른 프로세스로 전환되는 일은 있지만 그것은 OS의 판단입니다.

  • A. 프로그램을 폐기하는 일은 없습니다.
  • B. 기본적으로 원래 위치로 돌아갑니다. 전환할지는 OS가 판단합니다.
  • C. 올바릅니다. 상태를 저장하고 핸들러를 실행한 뒤 원래대로 돌아갑니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 인터럽트 벡터 테이블의 역할로 올바른 것은 무엇입니까?
  2. 중요한 처리 도중에 일시적으로 인터럽트를 금지(마스크)할 때의 주의점으로 올바른 것은 무엇입니까?
  3. 인터럽트 핸들러의 처리를 곧바로 수행하는 짧은 부분과 나중에 일반 컨텍스트에서 수행하는 나머지 부분으로 나누는 이유로 올바른 것은 무엇입니까?
  4. 페이지 테이블의 역할로 올바른 것은 무엇입니까?
  5. 페이지 폴트가 발생하는 경우로 올바른 것은 무엇입니까?

이 분야의 비교