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

Системные процессы

В каждой ОС Windows можно выполнить следующие системные процессы:

1) процесс IDLE (процесс так называемого простоя);

2) процесс System – содержит большинство потоков режима ядра. Замечание: в целом, IDL и System не являются процессами в строгом понимании этого слова, т.к. они не выполняют кода.

3) слайд 36 – диспетчер сеансов smss.exe – подсистема windows srss.exe;

4) процесс входа в систему winlogon.exe;

5) диспетчер управления сервисами

6) серверный процесс локальной аутентификации lslss.exe

Чтобы посмотреть их взаимосвязь, рассмотрим дерево на слайде 37 на основе процесса explorer.exe.

Процесс IDLE – не выполняет реальный код пользовательского режима, нет модуля idleprocess.exe. Кроме того, специфика – разные утилиты называют его по-разному.

Прерывания (interrupts) и dpc (deferred procedure calls)

На слайде 37 эти строки указывают время, затраченное на обслуживания прерываний и так называемых отложенных вызовов процедур.

На этом слайде они относятся к процессам, но на самом деле процессами не являются.

Процесс system и его потоки

Процесс system служит носителем потоков, которые работают только в режиме ядра – системных потоков режима ядра (Kernel mode System Threads). Эти потоки имеют атрибуты обычных потоков (пользовательского режима), но выполняются внутри системного кода ОС (NTOSKrnl.exe) или какого-то драйвера.

Особенность: у системных потоков нет адресного пространства из какого-то пользовательского процесса и поэтому им выделяется память динамически из так называемых куч (Heap) реальной ОП.

Эти потоки, как правило, создаются специальной функцией PSCreateSystemThread (см. DDK).. Функция вызывается и работает только в режиме ядра.

Пример: системные потоки используют диспетчер памяти для реализации записи измененных рамок реальной ОП в область страничного обмена на диск (в .h файл) или загрузки потоков процессов в реальной ОП для выполнения.

Примечание: в ОС Windows ядро создает особый системный поток, который называется: «Диспетчер настройки баланса» (Balance Set Manager) – фоновый процесс, активизируется в среднем раз в секунду. Проверяет различные события, связанные с управлением реальной ОП. Диспетчер кэша также использует системные потоки (для опережающей чтение и отложенной записи). Имеются также системные потоки по управлению некоторыми устройствами ввода-вывода. Владельцем системных потоков является процесс system.

Замечание: драйверы устройств могут создавать системные потки в любом процессе.

Диспетчер сеансов

Диспетчер сеансов (Session Manager). Файл .exe (smss.exe) его представлен на слайде 41. Является первым процессом при создании пользовательского процесса. Порождается системным потоком режима ядра. Диспетчер сеансов также отвечает за этапы запуска Windows. Запускает процессы подсистем (как правило, csrss.exe), которые, в свою очередь, запускают другие.

В целом диспетчер сеансов ждет от ядра описателей этих процессов для того, чтобы завершить запуск Windows.

В ОС Windows существует специальный сеанс – Terminal Service. Когда диспетчер сеансов получает запрос на его создание, он вызывает функцию NtSetSystemInformation для настройки сеансовых структур данных. Настраивается виртуальное адресное пространство, подкачивается память для того, чтобы запустить финишные процессы загрузки Windows winlogon.exe и csrss.exe для данного сеанса.

Winlogon, LSASS и Userinit

Процесс входа в Windows winlogon.exe (слайд 42) обрабатывает вход пользователя в систему и выход из нее. При нажатии клавиши SAS (Security attention sequence) он получает запрос о входе пользователя в систему. По умолчанию SAS – комбинация ctrl+alt+del.

Замечание: в ОС Windows предусмотрен механизм, который позволяет предотвратить перехват пользовательским процессом нажатие SAS с целью безопасности.

Идентификация и аутентификация при входе в систему реализованы в заменяемой DLL под названием GINA. По умолчанию имеется стандартная GINA Windows (msgina.dll). Замечание: разработчики могут включать свою msgina.dll.

После ввода имени и пароля пользователя эти данные посылаются так называемому процессу локальной аутентификации LSASS, который представлен lsass.exe. Он вызывает необходимые DLL, которые проверяют по определенному алгоритму соответствие с частью реестра, каталогов или других данных, относящихся к аутентификации. В случае успеха lsass.exe вызывает функцию монитора состояний защиты, чтобы сформировать маркер доступа AccessTokenObject, соответствующий профилю безопасности данного пользователя. Впоследствии используется winlogon.exe для создания пользовательского процесса. Начальным процессом пользовательского процесса Windows по умолчанию является процесс UserInit.exe. Параметры UserInit хранятся в реестре. UserInit выполняет действия по инициализации пользовательской среды (запускает сценарии регистрации пользователя в системе и др., по параметру shell в реестре раздела winlogon создает процесс по запуску пользовательской оболочки (explorer.exe)).

Замечание: explorer.exe не показывает родительский процесс UserInit, т.к. после запуска UserInit завершается. Т.е. Winlogon порождает Explorer.

Примечание: Winlogon активизируется в ходе работы также при нажатии клавиш SAS.

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