대기 체인 탐색(Wait Chain Traversal)은 Windows 7에서 처음 도입된 기능으로, 응답이 멈추거나 정지된 애플리케이션의 실제 원인이 되는 프로세스를 추적할 수 있게 해주는 강력한 도구입니다. Windows 8과 Windows 10에서는 한 단계 더 나아가, 별도의 도구 없이 작업 관리자(Task Manager)에서 바로 대기 체인을 분석할 수 있게 되었습니다.
이 기능은 디버거가 애플리케이션의 멈춤(hang) 현상과 교착 상태(deadlock)를 진단할 수 있도록 지원하는데, 오늘은 이 대기 체인 탐색 기능을 좀 더 자세히 살펴보겠습니다.
대기 체인 탐색(Wait Chain Traversal)이란?
Windows 7에서는 리소스 모니터(Resource Monitor)를 통해 대기 체인을 분석할 수 있습니다. 실행 창에 resmon을 입력해 리소스 모니터를 연 뒤, 개요 또는 CPU 탭에서 응답이 멈춘 프로세스나 일시 중단된 프로세스를 찾아 마우스 오른쪽 버튼으로 클릭하면, 컨텍스트 메뉴에서 대기 체인 분석(Analyze Wait Chain) 항목을 확인할 수 있습니다.

Windows 8/10에서는 리소스 모니터뿐만 아니라 작업 관리자에서도 바로 대기 체인을 분석할 수 있습니다. 작업 관리자를 열고 응답이 멈추거나 정지된 프로세스를 찾은 후, 마우스 오른쪽 버튼을 클릭하고 컨텍스트 메뉴에서 대기 체인 분석을 선택하기만 하면 됩니다.

대기 체인 분석 방법
대기 체인 분석 트리는 어떤 프로세스나 노드가 다른 프로세스가 사용 중이거나 사용하려는 리소스를 점유하고 있는지, 그리고 선택한 프로세스가 계속 실행되기 위해 어떤 요소가 필요한지를 트리 구조로 보여줍니다. 이를 통해 WCT(Wait Chain Traversal)는 Windows 디버거가 애플리케이션 멈춤과 교착 상태를 진단할 수 있도록 돕습니다. 자세한 내용은 TechNet 문서에서 확인할 수 있습니다.
작업 관리자의 개요 또는 CPU 탭을 열면 현재 실행 중인 프로세스 목록이 표시됩니다. 만약 어떤 프로세스가 '멈춰' 있다면 해당 항목은 빨간색 글씨로 '응답 없음' 상태로 표시됩니다. 이때 해당 프로세스를 마우스 오른쪽 버튼으로 클릭하면 프로세스 종료를 포함한 새로운 작업을 지정할 수 있습니다.

응답 없는 프로세스 종료하기
대기 체인 분석을 선택하면 해당 프로세스와 연관된 프로세스 목록 및 프로세스 트리가 나타납니다. 예를 들어 'xyz.exe 프로세스가 다른 프로세스(abc.exe)를 기다리고 있습니다'와 같은 메시지가 표시될 수 있습니다. 작업 관리자를 관리자 권한으로 실행하면 훨씬 더 많은 프로세스를 확인할 수 있으며, Windows 8부터는 관리자 계정으로 로그인한 경우 작업 관리자가 기본적으로 승격된 권한으로 실행됩니다.

분석 결과를 확인한 후에는 기다리거나 해당 프로세스를 종료할 수 있습니다. 다만 프로세스를 강제로 종료할 때는 주의가 필요합니다. 특히 시스템 프로세스를 종료하면 이에 의존하는 다른 기능들까지 함께 충돌이 발생할 수 있으므로 신중하게 판단해야 합니다.
참고로, Process Hacker를 사용하면 어떤 프로세스가 정지되었는지 확인하는 데 도움을 받을 수 있습니다. What is Hang이라는 유틸리티도 유용합니다. 이 도구는 현재 멈춰 있는 소프트웨어나 프로세스를 감지하고, 정지 현상의 근본 원인을 파악하고 해결하는 데 필요한 정보를 화면에 표시해 줍니다.