Windows Vista부터 Microsoft는 설치나 업데이트를 완료하는 데 필요한 시스템 재시작 횟수를 없애거나 최소화하기 위해 다시 시작 관리자(Restart Manager)라는 새로운 기능을 도입했습니다.

Windows 다시 시작 관리자란?
예를 들어 어떤 응용 프로그램이나 Windows 10/8/7/Vista 자체가 업데이트가 필요하다고 가정해 보겠습니다. 이때 설치 프로그램은 다시 시작 관리자를 호출하여 해당 시스템 영역을 안전하게 정리해 업데이트할 수 있는지 확인합니다. 가능하다면 재부팅 없이 곧바로 업데이트가 진행됩니다.
만약 불가능하다면 어떻게 될까요? 다시 시작 관리자는 그 순간의 시스템과 응용 프로그램 상태를 스냅샷으로 저장한 뒤 업데이트를 적용하고 응용 프로그램만 다시 시작합니다. 운영 체제 업데이트의 경우에는 재부팅 후에도 운영 체제를 마치 아무 일도 없었던 것처럼 정확히 이전 상태 그대로 되돌려 놓습니다!
사용자가 Word 문서(예: winvistaclub.doc)를 작성 중이고 커서가 5열 7행 위치에 있다고 가정해 봅시다. 그리고 시스템에서 문서나 프로그램 중 하나, 혹은 둘 모두를 업데이트해야 하는 상황입니다.
이때 다시 시작 관리자는 다음 5가지 작업을 수행합니다:
- 해당 파일을 사용 중인 모든 프로세스를 찾아냅니다.
- 파일을 점유하고 있는 프로세스들을 종료합니다.
- 업데이트를 적용합니다.
- 종료했던 프로세스들을 다시 시작합니다.
- 각 실행 프로세스의 정확한 상태를 보존하고, 프로세스 재시작 시 그 상태를 그대로 복원합니다.
프리즈 드라잉(Freeze Drying)
이 기능 덕분에 닫았던 문서를 다시 열면 커서가 문서를 닫기 직전의 정확한 위치(예: 5열 7행)로 복원됩니다. 이것이 바로 프로그램의 프리즈 드라잉(Freeze Drying, 동결 건조) 기술입니다. 다시 시작 관리자는 Microsoft Update, Windows Update, Microsoft Windows Server Update Services(WSUS), Microsoft Software Installer(MSI), Microsoft Systems Management Server(SMS)와 긴밀하게 연동하여 사용 중인 파일을 보유한 프로세스를 감지하고, 전체 시스템을 재시작하지 않고도 서비스를 중지했다가 다시 시작할 수 있도록 지원합니다. 현재 '다시 시작 관리자'의 완전한 기능은 이를 활용하도록 개발된 일부 응용 프로그램에서만 제공되며, 대표적인 예가 바로 Microsoft Office입니다.
Side-by-Side 호환 DLL 파일
그렇다면 다시 시작 관리자를 지원하지 않는 프로그램은 어떻게 처리될까요? Windows는 이를 위해 Side-by-Side 호환(side-by-side compliant) DLL 방식을 도입했습니다. 이 방식에서는 기존 DLL 파일이 아직 사용 중이더라도 새 버전의 DLL을 하드 디스크에 함께 기록할 수 있습니다. 그리고 프로그램이 종료되는 시점에 비로소 Windows가 구버전을 새 버전으로 교체하는 것입니다!
이러한 기술들 덕분에 Windows 10/8/7/Vista에서는 업데이트 후 재시작 횟수가 눈에 띄게 줄어들었습니다.
더 자세한 내용은 MSDN 공식 문서에서 확인할 수 있습니다.
