Процессы и нити.
Информация в заголовке объекта.
Имя, каталог, дискриптор безопасности, квоты на использование ресурсов, счетчик открытых описателей, признак (постоянный или временный), режим (пользовательский или ядро), указатель на тип объекта.
В разных ОС процессы реализуются по-разному. Различия, обусловленные разными структурами данных описания процессов, а так же способами защиты процессов друг от друга.
Свойства процессов:
- реализованы в форме объектов, доступ к объектам осуществляется с помощью службы объектов.
- процесс имеет многонитевую структуру.
- объекты-процессы и объекты-нити имеют встроенные средства синхронизации.
- менеджер процессов не поддерживает между процессами отношений типа «родитель-потомок».
Понятие процесса включает в себя следующее:
- исполняемый код
- собственные адресные пространства, которые представляют собой совокупность виртуальных адресов, используемых процессами.
- несколько атрибутов. Атрибуты объекта–нити аналогичные некоторым атрибутам объекта-процесса. Сервисные функции сходны (создание, открытие, завершение, приостановка, запрос и установка информации; (создание, открытие, завершение, приостановка, запрос и установка информации контекста).
Алгоритм планирования процессов и нитей.
В Windows NT реализована вытесняющая многозадачность Windows NT нить может одну из 6 состояний. Жизненный цикл нити начинается в момент когда программа создает новую нить, после инициализации нить проходит следующие состояния:
- готовность диспетчер просматривает очередь нитей и выделяет готовые нити
- первоочередная готовность для каждого процессора выбирается одна нить, которая будет выполняться следующей
- выполнение
- ожидание (несколько способов)
1 ожидание некоторого объекта по своей инициативе – причина синхронизация выполнения с другими нитями
2 ожидание по инициативе ОС – окончание процедуры ввода/вывода
- переходное состояние нить входит в переходные состояния, если она готова к выполнению, но ресурсы нужные ей заняты при освобождении ресурсов, нить переходит в состояние готовности
- завершение – выполнение нити закончилось нить может быть удалена, а может быть и нет
Граф состояний нити
жизненный цикл нити машинизируется когда программа создает новую нить. Запрос передается в исполнительную часть. Менеджер процессов выделяет состояние после инициализации:
1) готовность – при поиске нити на выполнение диспетчер просматривает только нити, находящиеся в состоянии готовности, у которых есть все для выполнения кроме процессора.
2) Первоочередная готовность – для каждого процессора вычислительной системы выбирается одна нить, которая будет выполняться следующей. Когда условия позволят, происходит переключение на контекст этой нити.
3) Выполнение – после переключения контекстов, нить переходит в состояние выполнения, находится в нем, пока не закончится квант времени или пока ядро не вытеснит нить более приоритетной нитью, или нить завершится либо перейдет в состояние ожидания.
4) Ожидание – нить по своей инициативе ожидает некоторый объект (синхронизация), подсистема окружения может заставить нить приостановить выполнение.
5) Переходное состояние – нить готова к выполнению, но ресурсы заняты.
6) Завершение – из этого состояния нить может быть удалена или не удалена.
Диспетчер ядра использует для определения порядка выполнение нитей основанный на приоритетах (32 уровня приоритетов делятся на 2 класса: - класс реального времени [с 16 по 31], - класс переменных приоритетов [от 0 до 15]). Могут использоваться абсолютные приоритеты.
Сетевые средства
Они направлены на реализацию взаимодействия с существующими типами сетей, а так же поддержку распределенных приложений. Особенности реализации сетевых средств:
1) встроенность на уровне драйверов (обеспечивает быстродействие)
2) открытость (легкость динамической загрузки и выгрузки и мультеплексируемость протоколов).
3) Наличие почтовых ящиков и конвейеров для поддержки распределенных приложений.
4) Наличие дополнительных сетевых средств, позволяющих строить сети в масштабах корпорации (дополнительные средства безопасности, централизуемое администрирование, отказоустойчивость).
Приоритеты Windows NT
32 уровня приоритетов разделенных на два класса с 16 – 31 нити реального времени
Динамический приоритет – приоритет меняется во времени
Абсолютный приоритет – не меняется во времени