Windows를 종료하거나 로그아웃하면 정확히 어떻게 됩니까?

윈도우는 PC를 종료하거나 재시작, 또는 로그아웃할 때 눈에 보이지 않는 곳에서 다양한 작업을 수행합니다. 이 과정은 하드웨어 전원이 완전히 차단되기 전에 모든 작업과 애플리케이션 데이터가 안전하게 저장되도록 보장합니다.

윈도우, 종료 시 로그인 사용자 확인

사용자가 PC 종료 또는 재시작을 명령하면, 윈도우는 먼저 다른 사용자 계정의 활성 세션 유무를 확인합니다. 이는 여러 사용자 계정으로 전환하여 로그인할 때, 현재 사용자의 윈도우 세션이 잠기기 전에 발생합니다.

다른 사용자가 아직 로그아웃하지 않은 상태를 윈도우가 감지하면, “다른 사용자가 이 PC를 사용 중입니다”라는 메시지를 표시합니다. 이 상황에서 강제로 재시작하면, 다른 사용자가 저장하지 않은 데이터가 손실될 수 있습니다. 일반적으로는 다른 사용자가 작업을 저장하고 로그아웃할 때까지 기다리는 것이 좋습니다.

하지만 윈도우는 다른 사용자가 저장할 작업이 없다고 확신하는 경우 “어쨌든 종료” 옵션을 제공합니다. 이 옵션을 선택하면 다른 사용자 계정은 강제로 로그아웃되고, 실행 중이던 모든 애플리케이션이 종료됩니다. 이 경우 저장되지 않은 데이터는 손실됩니다.

만약 현재 로그인된 사용자가 본인뿐이라면 이 메시지는 표시되지 않으며, 윈도우는 다음 단계로 바로 넘어갑니다.

윈도우, 프로그램에 작업 저장 및 종료 요청

PC에서 로그아웃하기 전에, 윈도우는 모든 실행 중인 프로그램에 작업 내용을 저장하고 종료하도록 요청합니다. 로그아웃은 종료 과정의 필수적인 부분이기 때문에, PC 종료나 재시작 시에도 동일한 과정이 진행됩니다.

구체적으로 윈도우는 각 창에 WM_QUERYENDSESSION 메시지를 보냅니다. 이는 단순히 프로그램을 강제로 종료시키는 것이 아니라, 프로그램에 스스로 작업을 저장하고 종료할 수 있는 시간을 부여하는 것입니다. 이 과정에 시간이 소요되는 것이 때때로 PC 종료나 로그아웃이 지연되는 이유입니다.

프로그램은 사용자 입력을 필요로 함으로써 이 과정을 “차단”할 수도 있습니다. 예를 들어, 저장해야 할 열린 파일이 있는 프로그램은 사용자의 저장 여부를 묻는 메시지를 표시할 수 있습니다. 이런 경우, 윈도우는 “이 앱은 종료를 막고 있습니다”라는 메시지를 보여줍니다. 프로그램은 ShutdownBlockReasonCreate 기능을 사용하여 사용자에게 사용자 정의 메시지를 보여줄 수도 있습니다.

이 메시지가 나타나면 “취소” 버튼을 눌러 해당 프로그램을 확인하고 데이터를 저장한 후 직접 종료해야 합니다. 만약 데이터를 저장하지 않아도 괜찮다면, “종료” 또는 “로그아웃”을 클릭하여 계속할 수 있습니다.

윈도우는 준비가 된 프로그램부터 하나씩 종료하기 때문에, 여러 프로그램이 실행 중이더라도 하나의 프로그램만 종료를 막고 있다면 해당 프로그램만 보여줍니다. 다른 프로그램들은 이미 윈도우에 의해 종료된 상태입니다.

윈도우 10에서는 열려 있던 프로그램 창을 기억하고, 다음 PC 로그인 시 자동으로 다시 열어주는 기능도 제공합니다.

윈도우, 로그아웃 과정

윈도우는 모든 실행 중인 프로그램에 데이터 저장 및 종료를 요청한 후, 사용자를 로그아웃시킵니다. 사용자 계정의 모든 윈도우 “세션”이 종료되고, 실행 중이던 프로그램들은 더 이상 사용자 계정으로 실행되지 않습니다.

로그아웃 과정에서는 다양한 개별 작업들이 수행됩니다. 예를 들어, 사용자 계정의 윈도우 레지스트리 하이브 내용은 일반적으로 메모리에 저장되어 있는데, 로그아웃 시 디스크에 저장됩니다. 그리고 다음 로그인 시 다시 메모리에 로드됩니다.

만약 로그아웃만 하는 경우, 윈도우는 로그인 화면으로 돌아가고, 다른 사용자가 로그인할 수 있습니다. 하지만 종료나 재시작의 경우에는, 윈도우는 종료 과정을 계속 진행합니다.

윈도우, 자동 종료 과정

모든 사용자의 로그아웃이 완료되면, 윈도우 자체를 종료하는 과정이 시작됩니다. 윈도우는 모든 시스템 서비스와 자체 프로세스를 완전히 종료하고, 필요한 데이터를 디스크에 저장합니다. 구체적으로, 윈도우는 SERVICE_ACCEPT_PRESHUTDOWN 메시지를 실행 중인 서비스에 보냅니다. 서비스는 이 메시지를 받은 후 SERVICE_ACCEPT_SHUTDOWN 메시지를 받습니다. 윈도우가 강제로 종료하기 전에, 서비스는 이 메시지를 받고 최대 20초 동안 정리 및 종료 작업을 수행합니다.

윈도우 10에서는 윈도우 커널의 상태를 디스크에 저장하는 기능도 있습니다. 이는 부분적인 최대 절전 모드와 유사하며, 다음 PC 시작 시 저장된 커널을 로드함으로써 하드웨어 초기화 과정을 건너뛰어 부팅 시간을 단축시킵니다. 이 기능을 “빠른 시작”이라고 합니다.

윈도우는 종료 과정의 마지막 단계에서 사용 가능한 윈도우 업데이트를 적용하기도 합니다. 윈도우는 종료 시, PC 시작 전, 그리고 실행 중 백그라운드에서 다양한 업데이트 관련 작업을 수행합니다.

모든 작업이 완료되면 윈도우는 SSD나 HDD를 완전히 마운트 해제하고, 모든 시스템 데이터가 물리적 디스크에 저장되었다는 것을 나타내는 “모두 지우기” 신호를 기다립니다. 이로써 모든 소프트웨어가 종료되고, 모든 데이터가 디스크에 저장된 것을 확인합니다.

윈도우, PC 전원 종료

마지막으로 윈도우는 ACPI 종료 신호를 PC로 보냅니다. 이는 PC에게 스스로 물리적인 전원을 끄도록 명령하는 신호입니다. 이로써 종료 과정이 완전히 완료됩니다.

만약 윈도우 95를 사용해본 경험이 있다면, ACPI 종료 신호가 발생하기 전에 윈도우가 “이제 컴퓨터를 끄는 것이 안전합니다”라는 메시지를 표시하고, 사용자가 직접 전원 버튼을 눌러야 했던 기억이 있을 것입니다. 1996년에 처음 출시된 ACPI(Advanced Configuration and Power Interface) 표준 덕분에 윈도우는 이제 PC의 전원을 직접 끌 수 있게 되었습니다.

이는 절전 모드나 최대 절전 모드와는 다른 동작 방식입니다. 절전 모드에서는 PC가 매우 낮은 전력으로 켜진 상태를 유지하며, 최대 절전 모드에서는 PC가 전체 시스템 상태를 디스크에 저장했다가 다시 켤 때 복원합니다.