Операційна система Windows проводить значну роботу у фоновому режимі під час вимкнення, перезавантаження або виходу з облікового запису. Цей процес гарантує, що всі ваші робочі дані та інформація з програм будуть надійно збережені перед тим, як комп’ютер вимкнеться.
Перевірка користувачів, які ввійшли в систему під час завершення роботи
Коли ви віддаєте команду комп’ютеру вимкнутися або перезавантажитися, Windows спочатку перевіряє, чи є інші активні сесії користувачів. Це стає актуальним, якщо ви заблокували свій сеанс та увійшли до системи під іншим обліковим записом.
Якщо Windows виявить, що інший користувач ще не завершив свою роботу належним чином, ви побачите повідомлення: “Хтось інший ще використовує цей комп’ютер”. Якщо ви примусово перезавантажите комп’ютер, інший користувач може втратити незбережені дані. Зазвичай, краще дозволити іншому користувачеві завершити роботу, зберегти свої дані та вийти, перш ніж завершувати процес вимкнення.
Windows дозволяє вам натиснути “Все одно закрити”, якщо ви впевнені, що інший користувач не має незбереженої роботи. Це призведе до примусового виходу з облікового запису іншого користувача та закриття всіх його програм. Всі незбережені дані будуть втрачені.
Якщо ви єдиний користувач, який увійшов в систему, ви не побачите цього повідомлення, і Windows перейде до наступного етапу.
Повідомлення програмам про необхідність зберегти роботу та закритися
Перш ніж комп’ютер фактично вимкнеться, Windows відправляє повідомлення всім запущеним програмам з проханням зберегти свою роботу та закритися. Це відбувається під час вимкнення або перезавантаження комп’ютера, оскільки вихід з облікового запису є невід’ємною частиною процесу вимкнення.
Зокрема, Windows надсилає повідомлення WM_QUERYENDSESSION кожному відкритому вікну. Це не просто примусове закриття програм. Програмам повідомляється, щоб вони зберегли свою роботу та закрилися, і на це може знадобитися деякий час. Саме тому іноді вимкнення або вихід з комп’ютера може зайняти певний час.
Програми можуть “заблокувати” цей процес, повідомляючи про необхідність вашої участі. Наприклад, програма може мати відкриті файли, які потрібно зберегти. Якщо програма запитує введення, ви побачите повідомлення “Ця програма заважає вимкненню”. Програма також може відображати власне повідомлення, використовуючи функцію ShutdownBlockReasonCreate.
Якщо ви бачите таке повідомлення, натисніть “Скасувати”, перевірте програму, збережіть дані та закрийте її вручну. Якщо ви готові відкинути незбережені зміни, ви можете продовжити, натиснувши “Все одно закрити” або “Все одно вийти”.
Зверніть увагу, що Windows закриває програми поступово, коли вони готові. Якщо у вас відкрито десять програм, і лише одна заважає вимкненню, ви побачите лише цю одну програму, якщо натиснете “Скасувати”. Інші дев’ять програм Windows вже закрила.
У Windows 10, система запам’ятовує, які вікна програм були відкриті, і намагається знову відкрити їх під час наступного входу в систему.
Вихід з облікового запису Windows
Після того як всім відкритим програмам було надано інструкцію зберегти свої дані та закритися, Windows виходить з вашого облікового запису. Весь “сеанс” Windows, пов’язаний з вашим обліковим записом користувача, завершується, і жодна програма не буде працювати від імені вашого облікового запису.
Чимало окремих дій виконується під час виходу з Windows. Наприклад, вміст кущів реєстру Windows вашого облікового запису, які зазвичай зберігаються в пам’яті, записується на диск. Ці дані знову завантажуються в пам’ять при наступному вході в систему.
Якщо ви просто виходите з системи, Windows поверне вас на екран входу, щоб ви могли увійти під іншим обліковим записом. Якщо ви завершуєте роботу або перезавантажуєте комп’ютер, Windows продовжує процес вимкнення.
Вимкнення Windows
Після того, як Windows завершила вихід з усіх облікових записів, залишається лише завершити роботу системи. Windows відправляє повідомлення всім системним службам і власним процесам, щоб вони повністю закрилися, зберігаючи необхідні дані на диск. Зокрема, відправляється повідомлення SERVICE_ACCEPT_PRESHUTDOWN до всіх запущених служб. Після отримання цього повідомлення, служба отримує ще одне – SERVICE_ACCEPT_SHUTDOWN. Після цього служба має 20 секунд, щоб очистити всі процеси та вимкнутися, перед примусовим вимкненням від Windows.
Windows 10 також зберігає стан ядра Windows на диск. Це можна порівняти з частковою гібернацією. Під час наступного запуску комп’ютера, Windows зможе відновити збережене ядро і завантажитися швидше, пропустивши довгий процес ініціалізації обладнання. Ця функція відома як “Швидкий запуск”.
Windows також може встановлювати наявні оновлення під час заключних етапів процесу вимкнення. Windows виконує різні оновлення під час вимкнення, перед запуском комп’ютера, та у фоновому режимі, коли комп’ютер працює.
Після завершення всіх дій, Windows повністю відключає ваш твердотільний або жорсткий диск, чекаючи на сигнал “все очищено”, що свідчить про збереження всіх даних системи на фізичному диску. Все програмне забезпечення було повністю закрите, а дані надійно збережені.
Windows вимикає комп’ютер
Насамкінець, Windows відправляє сигнал вимкнення ACPI (Advanced Configuration and Power Interface) на ваш ПК. Це сигнал для комп’ютера, щоб вимкнутися фізично. На цьому процес вимкнення завершено.
Якщо ви користувалися Windows 95, то можете пам’ятати ті часи, коли не було сигналу ACPI для завершення роботи. На цьому етапі Windows показувала повідомлення “Тепер безпечно вимкнути комп’ютер”, і потрібно було самостійно натискати кнопку живлення. Стандарт ACPI, вперше представлений в 1996 році, дозволяє Windows самостійно вимикати комп’ютер.
Це відрізняється від використання режиму сну або гібернації. У режимі сну комп’ютер залишається увімкненим, але в режимі дуже низького споживання енергії. У режимі гібернації комп’ютер зберігає весь стан системи на диск і відновлює його, коли ви знову вмикаєте комп’ютер.