소프트웨어 행과 크래시의 차이 (응답없음 / 강제종료)
- IT
- 2023. 7. 28.
컴퓨터를 쓰다보면 자주 보는 문제 중 하나가 행(hang)과 크래시(crash)입니다. 실행하고 있던 프로세스가 응답없음으로 전환되며 아무런 동작을 하지 않거나 갑자기 꺼져버리는 현상입니다. 그런데 꽤 자주 두 용어가 혼용되어 사용되곤 합니다. 같은 의미로 인식되는 것이죠. 하지만 둘은 다르며 용어를 구분해서 사용해야 커뮤니케이션에 오류를 줄일 수 있습니다.
행과 크래시
1. 개념
소프트웨어가 행 상태라는 것은 프로그램이 응답을 멈추고 사용자의 입력이나 다른 프로세스에 대해 반응하지 않는 상태를 의미합니다. 이런 상태가 되면 프로그램이 작업을 완료하지 못하고 더 이상 진행되지 않는 것처럼 보입니다. 마우스 클릭이나 키보드 입력에 반응하지 않습니다. 결국 보통은 강제종료를 합니다.
크래시가 난다는 건 프로그램이 예기치 않게 완전히 중단되는 것을 의미합니다. 이는 종종 오류 메시지를 동반합니다. 오류 조건이나 코드의 문제로 인해 프로그램이 실행을 계속할 수 없을 때 발생합니다.
2. 예시
행 현상의 흔한 예로는 웹 브라우저의 행을 들 수 있습니다. 페이지 로딩이 무한이 진행되는 상황입니다. 브라우저 창은 여전히 열려 있지만, 새로운 요청을 만들거나 페이지를 새로 고치는 등의 동작이 이루어지지 않습니다. 브라우저가 투명해지거나 상단에 (응답없음)이라는 메시지가 보이기도 합니다.
크래시의 경우 웹 브라우저의 프로세스가 강제 종료되는 경우입니다. 응답 없음이 아니라 그냥 꺼집니다. 웹 브라우저가 아니라 다른 많은 프로그램에서도 발생할 수 있습니다.
3. 원인
물론 원인은 행과 크래시 모두 다양할 수 있지만 일반적으로 행은 리소스 경합, 무한 루프, 데드락, 특정 작업의 완료를 기다리는 등의 이유로 발생합니다. 예를 들어, 두 개 이상의 프로세스나 스레드가 동일한 리소스에 접근하려고 시도하고, 서로 대기하는 상황에서 데드락이 발생할 수 있습니다. 프로그램에서 무한 루프에 빠진 경우에도 응답하지 않게 됩니다.
크래시는 메모리 할당 오류, 소프트웨어의 버그, 시스템 자원의 과부하, 호환되지 않는 하드웨어, 잘못된 API 호출 등 원인으로 발생할 수 있습니다. 프로그램에서 잘못된 메모리 위치에 접근하려고 하거나 실행할 수 없는 코드를 실행하려고 할 때 프로그램은 크래시가 발생하게 됩니다.
'IT' 카테고리의 다른 글
갤럭시 사진 누끼따는 방법 (피사체 배경 날리기) (0) | 2023.08.02 |
---|---|
USB 포맷하는 방법 (파일시스템, 할당 단위 크기 선택 기준) (0) | 2023.08.01 |
소프트웨어 컨테이너란? VM과 차이 (0) | 2023.07.23 |
크롬 개발자도구 Network 정보 저장하는 방법 (.har) (0) | 2023.07.22 |
유튜브 "화질 사용할 수 없음" 이유와 해결 방법 (0) | 2023.07.20 |