소프트웨어에서 예외가 발생하면 운영 체제 수준에서 어떻게됩니까?


1

고급 프로그래밍 언어 (예 : Java)에서는 예외 개념이 있습니다.

이러한 예외는 내재적이거나 명시적일 수 있습니다. 예외가 발생한 후에는 특별한 오류 처리 분기에서 발견 될 수 있습니다.

이제 궁금합니다 : 후드 아래에서 어떤 일이 발생합니까?

운영 체제에 대한 예외는 무엇입니까?

예외는 어떻게 발생합니까?

답변:


1

MSDN의 정보 : 여기

예외는 CPU가 처리하는 인터럽트와 유사합니다. 소프트웨어 나 하드웨어 등 예외가 발생하면 프로세서는 실행을 중지하고 시스템에 제어권을 넘깁니다. 시스템은 현재 스레드 상태 및 예외 정보를 저장합니다. 그런 다음 핸들러를 찾습니다. 이것은 본질적으로 그것이 "잡히는"방법입니다.

핸들러를 찾는 순서는 다음과 같습니다.

  • 프로그램에 연결된 디버거
  • 프레임 기반 예외 처리기 찾기 (언어 별)
  • 디버거 다시 요청
  • 디버깅되지 않거나 디버거가 예외를 처리하지 않으면 OS가 기본 처리를 제공합니다. 대부분의 예외에서 기본 조치는 ExitProcess를 호출하는 것입니다.

커널 모드 코드 (운영 체제)이면 예외 처리기를 찾습니다. 하나가 없거나 사용 가능한 예외가 특정 예외를 처리하지 않으면 ExitWindows 함수가 호출됩니다. 브라우니는 그 점을 추측 할 수 있다면 지적한다.

즉, 예외를 처리하는 고급 언어 인 OS는 최후의 수단을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.