Windows - статьи


Загрузка Windows 2000 - часть 5


Одной из задач HalInitSystem является подготовка системного контролера прерываний каждого процессора к обработке прерываний и конфигурирование таймера, используемого для учета распределяемого процессорного времени.

На стартовом процессоре ExpInitializeExecutive не просто вызвывает HalInitSystem, но и выполняет другие операции по инициализации. Когда HalInitSystem возвращает управление, функция ExpInitializeExecutive, выполняемая на стартовом процессоре, обрабатывает параметр /BURNMEMORY файла Boot.ini (если таковой указан). В соответствии с этим параметром ExpInitializeExecutive исключает указанный объем памяти.

Далее ExpInitializeExecutive вызывает процедуры инициализации для диспетчера памяти, диспетчера объектов, справочного монитора безопасности, диспетчера процессов и диспетчера Plug and Play. Эти компоненты выполняют следующие инициализирующие операции.

  1. Диспетчер памяти формирует таблицы страниц и внутренние структуры данных, необходимые для предоставления базовых сервисов, связанных с памятью. Резервирует пространство для кэша файловой системы, а также выделяет области для пулов подкачиваемой и неподкачиваемой памяти. Другие компоненты исполнительной системы, ядро и драйверы устройств пользуются этими пулами, выделяя память под собственные структуры данных.
  2. При инициализации диспетчера объектов определяются объекты, необходимые для создания его пространства имен, чтобы другие компоненты могли помещать в него свои объекты. Также создается таблица описателей для поддержки учета ресурсов.
  3. Справочный монитор безопасности инициализирует объект типа «маркер доступа» и использует его для создания и подготовки первых маркеров, назначаемых начальным процессам.
  4. Диспетчер процессов производит большую часть своей инициализации в фазе 0, определяя типы объектов «процесс» и поток и создавая списки для отслеживания активных процессов и потоков. Он также создает объект «процесс» для начального процесса и присваивает ему имя Idle. Наконец, диспетчер процессов создает процесс System и системный поток для выполнения процедуры Phase1Initialization.Этот поток не запускается сразу же после создания, поскольку прерывания пока запрещены.
  5. Наступает фаза 0 в инициализации диспетера Plug and Play, в ходе которой просто инициализируется ресурс исполнительной системы, используемый для синхронизации ресурсов шин.

Когда на каждом процессоре управление возвращается к функции KiInitializeKernel, она передает его циклу Idle. В результате системный поток, созданный, как было описано в п.4, начинает фазу 1.

Для подготовки статьи использовались материалы книги «Внутреннее устройство  Microsoft Windows 2000».




- Начало -  - Назад -  



Книжный магазин