2016-11-06 4 views
0

두 가지에 대한 이해는 약간 분명하지 않습니다. 인터넷에있는 많은 사람들은 둘 다 똑같다고 말합니다. 제 질문과 비슷한 몇 가지 질문이 있지만, 소프트웨어 수준에서 실제 사례를 보여주는 것은 없습니다.응용 프로그램 수준에서 소프트웨어 인터럽트 및 예외의 예

누구나 나를 두 가지의 명확한 예으로 알려 주면 다른 점을 이해하는 데 도움이됩니까?

예를 들어, 소프트웨어 간섭을 0으로 나눈 값입니까? 또는 예외?

답변

0

인터럽트 및 예외에는 동일한 디스패치 방법 (일반적으로 시스템 인터럽트 벡터를 통해)이 있습니다. 그러나 인터럽트 및 예외는 다르게 트리거됩니다.

예외는 명령 스트림의 실행을 통해 발생합니다. 따라서 예외는 응용 프로그램의 예측 가능한 지점에서 발생합니다.

인터럽트는 실행 스트림 외부의 이벤트로 인해 발생합니다.

제로 나누기는 예외로 만드는 명령어 스트림의 결과로 발생합니다.

일부 운영 체제는 인터럽트 기반입니다 (예 : Windoze 및 VMS). 이러한 이유로 응용 프로그램이 여러 가지 이유로 사용자 (또는 다른 모드)에서 중단 될 수 있습니다.

예를 들면. 두 운영 체제 모두에서 I/O 작업을 대기열에 넣고 I/O 완료시 응용 프로그램을 중단시킬 수 있습니다 (하드웨어가 아닌 운영 체제에 의해 소프트웨어 인터럽트가 트리거 됨).