|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Объекты ядра ОС Windows NT, используемые для реализаций функций управления и синхронизации процессовЯдро ОС Windows NT (Kernel) является основным компонентом системы, ее “сердцем”, и работает напрямую с уровнем аппаратных абстракций. Этот модуль, в первую очередь, занимается планированием действий процессора. В случае, когда компьютер содержит несколько процессоров, ядро синхронизирует их работу для достижения максимальной производительности системы. Ядро осуществляет диспетчеризацию нитей управления (подзадач или потоков), которые являются основными объектами в системе планирования. Подкомпоненты исполняющей системы Windows NT, такие как диспетчер ввода/вывода и диспетчер процессов, используют ядро для синхронизации действий. Они также взаимодействуют с ядром для управления объектами более высоких уровней абстракции, называемых объектами ядра. Ядро управляет двумя типами объектов: · объекты диспетчеризации (dispatcher objects) характеризуются сигнальным состоянием (signaled/nonsignaled) и управляют диспетчеризацией и синхронизацией системных операций; эти объекты включают события (events), мутанты (mutants), мутексы (mutexes), семафоры (semaphores), нити управления (threads) и таймеры (timers); · управляющие объекты (control objects) - используются для реализации операций управления ядра, но не воздействуют на диспетчеризацию или синхронизацию; они включают асинхронные вызовы процедур (asynchronous procedure calls), прерывания (interrupts), уведомления (power notifies) и состояния (power statuses) источника питания, процессы (processes) и профили (profilers). Объекты типа события (event) используются для записи местонахождения события и синхронизации его с некоторым выполняемым действием. Объекты типа mutant используются ядром для контроля над общим монопольным доступом к ресурсу (применяются для обеспечения в пользовательском режиме механизма взаимного исключения, могут использоваться и в привилегированном режиме). Объекты типа mutex также используются для контроля общего монопольного доступа к ресурсу, но могут быть использованы только в режиме выполнения ядра и предназначены для обеспечения беступикового механизма взаимного исключения. Семафоры используются для управления доступом к ресурсу, но не обязательно в режиме взаимного исключения. Объекты этого типа действуют как “клапаны”: через каждый клапан может пройти одновременно некоторое количество нитей управления (до установленного ограничения, определяемого состоянием ресурса); клапан открыт (находится в состоянии signaled) до тех пор, пока имеются доступные ресурса, связанные с этим семафором, когда число используемых ресурсов достигает ограничивающей отметки, клапан закрывается (переходит в состояние nonsignaled). Объекты ядра thread связаны с потоками; каждая нить связана с объектом ядра “процесс”, представляющим процесс, владеющий данной нитью. Процесс определяет распределение виртуального адресного пространства для нити и собирает результаты выполнения своих нитей. Их выполнение может распределяться между процессорами в многопроцессорной системе. Объект таймер используется для фиксирования временных интервалов и прерывания (по таймеру) операций. Асинхронные вызовы процедур используются для прерывания выполнения специфицированной нити управления и передачи управления вызываемой процедуре в определенном режиме процессора. Объекты прерывания используются для соединения источника прерывания и процедуры обслуживания прерывания через элемент таблицы управления прерываниями (IDT - Interrupt Dispatch Table). Каждый процессор имеет свою IDT, управляющую прерываниями этого процессора. Объект ядра процесс используется для представления пространства виртуальных адресов и управляющей информации, необходимой для выполнения набора объектов и нитей. Этот объект содержит указатель на карту адресов, список готовых нитей управления, содержащий объекты соответствующего класса, список принадлежащих процессу нитей управления, общее накопленное время для выполнения нитей процесса, базовый приоритет и свойства потока по умолчанию. Объект profile используется для определения распределения времени выполнения внутри блока кода. Ядро выполняется полностью в привилегированном режиме и неперемещаемо в памяти. Программы ядра не являются выгружаемыми, для них не может производиться переключение контекста. Ядро может выполняться одновременно на всех процессорах в мультипроцессорной конфигурации, соответствующим образом синхронизируя доступ к критическим областям. Управляемые ОС ресурсы представляются соответствующими объектами. Тип объекта включает определенный системой тип данных, список операций, которые могут выполняться над ним (например, создать и т.п.), и набор атрибутов объекта. Диспетчер объектов является частью исполнительной системы Windows NT и обеспечивает унифицированные правила хранения, именования и безопасности объектов. Для получения доступа к объекту процесс должен получить его описатель (object handle) через диспетчер объектов. Все описатели объектов создаются через него. Кроме того, диспетчер объектов управляет глобальным пространством имен, которое используется для доступа ко всем именованным объектам, которые содержатся в локальной компьютерной среде. Диспетчер процессов - компонент, который отслеживает два типа объектов: объекты процесса и объекты потоков (нитей управления). Как уже было отмечено, процесс определяется своим адресным пространством, набором доступных процессу объектов и совокупностью выполняемых в контексте процесса потоков. Поток является основным управляемым элементом в системе. Он имеет собственный набор регистров, собственный стек ядра, блок среды нити и стек пользователя в адресном пространстве процесса. Диспетчер процессов управляет созданием и завершением процессов. Он также обеспечивает набор стандартных услуг по созданию и использованию нитей. Модель процессов Windows NT работает совместно с моделью безопасности и диспетчером виртуальной памяти для обеспечения безопасности объектов. Средства управления памятью, процессами и потоками в системе сосредоточены в KERNEL32.DLL.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |