Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_OS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
296.45 Кб
Скачать

4. Фази завантаження ос Windows та їх характеристика.

Ініціалізація ntoskrnl.exe складається з двох етапів: фаз 0 і 1.

Під час виконання фази 0 переривання заборонені, на екрані нічого не відображається. Метою цього етапу є підготовка початкових структур даних, необхідних для ініціалізації фази під час виконання фази 1. За допомогою менеджера процесів створюється початковий об’єкт-процес із назвою idle, процес system і системний потік для виконання ініціалізації фази 1. Після завершення фази 0 переривання дозволені, і починає виконуватися системний потік. Під час виконання фази 1 керування екраном здійснює відео драйвер bootvid.dll. Відбувається остаточна ініціалізація різних підсистем виконавчої системи. Під час ініціалізації підсистеми введення виведення відбувається підготовка необхідних структур даних, ініціалізація драйверів. Фаза 1 завершується запуском менеджера сесії (smss.exe).

5. Роль диспетчера сеансів.

SMSS.EXE - Даний процес являє підсистему менеджера сеансів. Ця підсистема є відповідальною за запуск користувальницького сеансу. Цей процес ініціалізується системним потоком і відповідальний за різні дії, включаючи запуск процесів Winlogon і Win32 (Csrss.exe) і установку системних змінних. Після запуску даних процесів процес Smss очікує їх завершення. При "нормальному" завершенні процесів система коректно завершує роботу. Якщо процеси завершуються аварійно, процес Smss.exe змушує систему припинити відповідати на запити. Цей процес не можна завершити з менеджера завдань.

6. Завершення роботи ос Windows.

Якщо в систему хтось зайшов, і деякий процес ініціалізує завершення роботи системи, викликаючи Windows-функцію ExitWindowsEx, Csrss отримує повідомлення о необхідності завершення завершення системи. Тоді Сsrss посилає скритому вікну, яке належить Winlogon, Windows-повідомлення з вимогою про завершення роботи системи Winlogon, втілює зареєстрованого користувача в даний момент, викликає

ExitWindowsEx з набором спеціальних внутрішніх прапорців. В результаті Csrss отримує ще одне повідомлення з запитом на завершення роботи системи.

На цей раз Csrss бачить, що поступив запит від Winlogon, і перебирає всі процеси в сеансі інтерактивного користувача. Тоді Csrss посилає потоку повідомлення протягом указаного часу завершити свою роботу, що знаходиться в HKCU\Control Panel\Desktop\HungAppTimeout(по домовленості – 5000мс).

Якщо протягом цього часу поток не завершується Csrss виводить діалогове вікно, повідомляючи користувача про те, що коректне завершення програми неможливе, і пропонує примусово завершити роботу системи, або відмінити завершення роботи системи. Для цього вікна тайм-аут не передбачений, і система може очікувати безкінечно довго. Якщо тільки всі потоки завершуються, Csrss переходить в інтерактивний сеанс.

Надалі Winlogon викликає функцію ExitWindowsEx, щоб Csrss завершив будь-які СОМ-процеси, які є частиною сеансу інтерактивного користувача. До цього моменту виконання всіх процесів в сеансі вже завершено. Winlogon знову викликає функцію ExitWindowsEx, на цей раз в контексті системного процесу, і та посилає Csrss повідомлення.

Як тільки Csrss закінчує посилати повідомлення системним процесам про завершення роботи.

Winlogon викликає функцію виконавчої системи NtShutdownSystem. Вона в свою чергу викликає функцію NtSetSystemPowerState, управляючу завершенням драйверів і окремих компонентів виконавчої системи (диспетчерів Plug and Play, живлення, вводу-виводу, конфігурації, і пам’яті ).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]