Microsoft Word 또는 Excel과 같은 프로그램이 "충돌"하면 프로그램 실행 중에 심각한 문제가 발생했음을 의미합니다. 운영 체제는 종종 심각한 문제가 있음을 인식하고 깨끗한 방법으로 기분을 상하게 응용 프로그램을 죽인다. 이 작업을 수행할 때 운영 체제는 "치명적인 예외 오류"와 같은 비밀스러운 말을 할 것입니다(또한 사용자인 당신에게는 전혀 쓸모가 없지만 원래 프로그래머에게는 유용할 수 있는 대규모 16진수 모음을 표시하는 경우가 많습니다). 프로그램이 충돌하는 다른 방법은 운영 체제를 다운시키는 것입니다. 즉, 재부팅해야 합니다.
수수께끼 같은 오류 메시지로 할 수 있는 일은 없지만 적어도 그 메시지가 무엇을 의미하는지 아는 것은 좋을 것입니다! 따라서 가장 일반적인 세 가지를 살펴 보겠습니다.
- 치명적인 예외 오류 - Microsoft Word와 같은 응용 프로그램은 많은 계층과 구성 요소로 구성됩니다. 핵심 운영 체제, 운영 체제 서비스 계층, 시스템 서비스 위에 있는 캡슐화 계층, 수백 개의 소프트웨어 라이브러리, 내부 기능/클래스 라이브러리 및 DLL, 그리고 마지막으로 메인 애플리케이션 계층이 있습니다. 대부분의 최신 운영 체제 및 언어(예: C++ , Java 등)는 예외 및 예외 처리 로 알려진 프로그래밍 개념을 지원합니다 . 예외를 통해 서로 다른 계층이 서로 문제를 전달할 수 있습니다. 예를 들어 프로그램에 약간의 메모리가 필요하다고 가정해 보겠습니다., 따라서 운영 체제에 메모리 블록을 예약하도록 요청합니다. 운영 체제가 메모리 요청을 받아들일 수 없는 경우(요청된 블록이 너무 크거나 시스템의 메모리가 부족하거나 기타 이유로) 요청을 만든 계층까지 "메모리 예외가 발생"합니다. 다양한 계층에서 계속해서 예외를 위쪽으로 throw할 수 있습니다. 선을 따라 어딘가에 레이어 중 하나가 "예외를 포착"하고 문제를 처리해야 합니다. 프로그램은 "와우 -- 시스템 메모리가 부족합니다. 멋진 대화 상자를 통해 사용자에게 이 사실을 알려야 합니다."라고 말해야 합니다. 프로그램이 예외를 포착하는 데 실패하면(어떤 이유로 프로그래머가 해당 특정 예외를 처리하는 코드를 작성하지 않았기 때문에), 예외는 모든 계층의 맨 위로 이동합니다.운영 체제는 이를 "처리되지 않은 예외"로 인식합니다. 그런 다음 운영 체제는 프로그램을 종료합니다. 잘 설계된 소프트웨어는 모든 예외를 처리합니다.
- 잘못된 페이지 오류 - 프로그램이 메모리( RAM )를 사용하여 데이터를 저장합니다. 예를 들어, 문서를 Microsoft Word로 로드할 때 편집 중인 파일의 많은 부분이 RAM의 공간을 차지합니다. 프로그램은 메모리가 필요하므로 운영 체제에서 특정 크기의 메모리 블록을 요청합니다. 프로그램은 "포인터"를 사용하여 할당하는 각 블록의 위치를 기억합니다. 프로그램이 메모리 블록의 끝 너머에 있는 위치에 데이터를 쓰려고 하거나 프로그램이 혼란스러워서 유효하지 않은 포인터를 사용하여 존재하지 않는 메모리 블록에 액세스하려고 하면 운영 체제는 이를 보고 "페이지 오류" 또는 "세그먼트 오류"입니다. 운영 체제는 프로그램이 수행 중인 작업을 분명히 알지 못하기 때문에 프로그램을 종료합니다.
- 잘못된 연산 - 마이크로프로세서 에는 제한된 수의 명령어가 있으며 각 명령어는 "opcode"라는 숫자로 표시됩니다. 연산 코드 43은 "추가"를 의미할 수 있고, 연산 코드 52는 "곱하기"를 의미할 수 있습니다. , 그러면 마이크로프로세서가 불평을 중지합니다. 운영 체제는 문제가 되는 프로그램을 종료하여 이 불만 사항을 처리합니다. 불법 opcode는 일반적으로 유효한 프로그램 정보가 포함되지 않은 메모리 위치로 점프하는 소프트웨어에서 발생합니다.
이 모든 문제는 프로그래머의 인적 오류로 인해 발생합니다. 프로그래머가 예외를 잡을 만큼 부지런하지 않거나 프로그램이 잘못된 메모리에 액세스하도록 허용합니다. 때때로 근본 원인은 무능이나 경험 부족이지만 대부분의 경우 오늘날 프로그램의 복잡성입니다. 복잡하고 계층화된 환경에서 프로그램이 관리하는 수백 개의 예외와 종종 수백만 개의 메모리 블록이 있습니다. 한 번의 잘못된 움직임과 응용 프로그램 충돌 - 소프트웨어는 매우 취약합니다. 테스트는 많은 오류를 발견하지만 일반적으로 모든 오류를 찾지는 않습니다.
다음 링크를 통해 자세히 알아볼 수 있습니다.
- 치명적인 예외 오류란 무엇입니까?
- MS Windows 오류 메시지
- 인터넷 학습: 오류 메시지 디코딩
- 컴퓨터 메모리 작동 방식
- 운영 체제 작동 방식
- 마이크로프로세서의 작동 방식