🗊Презентация Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов

Нажмите для полного просмотра!
Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №1Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №2Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №3Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №4Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №5Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №6Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №7Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №8Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №9Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №10Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №11Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №12Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №13Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №14Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №15Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №16Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №17Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №18Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №19Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №20Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №21Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №22Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №23Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №24Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №25Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №26Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №27Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №28Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №29Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №30Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №31Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №32Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №33Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №34Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №35Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №36Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №37Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №38Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №39Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №40Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №41Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №42Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №43Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №44Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №45Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №46Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №47Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №48Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №49Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №50Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №51Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №52Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №53Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №54Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №55Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №56Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №57Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №58Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №59Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №60Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №61Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №62Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов, слайд №63

Содержание

Вы можете ознакомиться и скачать презентацию на тему Управление центральным процессором и объединение ресурсов. Объекты windows управления цп и объединения ресурсов. Доклад-сообщение содержит 63 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Операционные системы
Управление центральным процессором и объединение ресурсов
Описание слайда:
Операционные системы Управление центральным процессором и объединение ресурсов

Слайд 2





Управление центральным процессором…
Объекты Windows управления ЦП и объединения ресурсов
Описание слайда:
Управление центральным процессором… Объекты Windows управления ЦП и объединения ресурсов

Слайд 3





Основные понятия
Задание – набор процессов, управляемых как единое целое, с общими квотами и лимитами
Процесс – контейнер для ресурсов
Поток – сущность планируемая ядром
Волокно – облегченный поток, управляемый полностью в пространстве пользователя
Описание слайда:
Основные понятия Задание – набор процессов, управляемых как единое целое, с общими квотами и лимитами Процесс – контейнер для ресурсов Поток – сущность планируемая ядром Волокно – облегченный поток, управляемый полностью в пространстве пользователя

Слайд 4





Процессы и потоки Windows 
Иерархия процессов (ссылки между процессами-родителями и процессами-потомками) в явном виде не поддерживается.
Процессы имеют многопоточную организацию. 
Процессы и потоки реализованы в форме объектов, и доступ к ним осуществляется посредством службы объектов.
Объекты-процессы и объекты-потоки имеют встроенные средства синхронизации.
Описание слайда:
Процессы и потоки Windows Иерархия процессов (ссылки между процессами-родителями и процессами-потомками) в явном виде не поддерживается. Процессы имеют многопоточную организацию. Процессы и потоки реализованы в форме объектов, и доступ к ним осуществляется посредством службы объектов. Объекты-процессы и объекты-потоки имеют встроенные средства синхронизации.

Слайд 5





Процессы
Процесс – это совокупность системных ресурсов, задействованная для выполнения определенной работы:
Описание слайда:
Процессы Процесс – это совокупность системных ресурсов, задействованная для выполнения определенной работы:

Слайд 6





Атрибуты процесса 
Идентификатор процесса – уникальное значение, которое идентифицирует процесс в рамках ОС (только в текущий момент времени). 
Виртуальное адресное пространство – описывается с использованием специальных структур данных VAD (дескрипторов виртуальных адресов).
Исполняемая программа – начальный код и данные, проецируемые на виртуальное адресное пространство процесса.
Список (таблица) открытых дескрипторов объектов, доступных всем потокам в данном процессе.
Дескриптор безопасности – дескриптор безопасности объекта «процесс».
Маркер доступа – содержит информацию о безопасности и идентифицирует пользователя, группы безопасности и привилегии, сопоставленные с процессом. 
Базовый приоритет – основа для исполнительного приоритета потоков процесса. 
Процессорная совместимость – набор процессоров, на которых могут выполняться потоки процесса. 
Список потоков процесса (как минимум один поток).
Предельные значения квот ресурсов (см. Job). 
Счетчики производительности, связанные с процессом.
Описание слайда:
Атрибуты процесса Идентификатор процесса – уникальное значение, которое идентифицирует процесс в рамках ОС (только в текущий момент времени). Виртуальное адресное пространство – описывается с использованием специальных структур данных VAD (дескрипторов виртуальных адресов). Исполняемая программа – начальный код и данные, проецируемые на виртуальное адресное пространство процесса. Список (таблица) открытых дескрипторов объектов, доступных всем потокам в данном процессе. Дескриптор безопасности – дескриптор безопасности объекта «процесс». Маркер доступа – содержит информацию о безопасности и идентифицирует пользователя, группы безопасности и привилегии, сопоставленные с процессом. Базовый приоритет – основа для исполнительного приоритета потоков процесса. Процессорная совместимость – набор процессоров, на которых могут выполняться потоки процесса. Список потоков процесса (как минимум один поток). Предельные значения квот ресурсов (см. Job). Счетчики производительности, связанные с процессом.

Слайд 7





Потоки
Поток – сущность планируемая ядром.
Поток – объект диспетчеризации ядра.
Поток – это непрерывная последовательность инструкций, выполняющих определенную функцию.
Описание слайда:
Потоки Поток – сущность планируемая ядром. Поток – объект диспетчеризации ядра. Поток – это непрерывная последовательность инструкций, выполняющих определенную функцию.

Слайд 8





Атрибуты потоков
Идентификатор клиента – уникальное значение, которое идентифицирует поток при ее обращении к серверу. 
Контекст потока – информация, которая необходима ОС для того, чтобы продолжить выполнение прерванного потока. 
Два стека, один из которых используется потоком при выполнении в режиме ядра, а другой – в пользовательском режиме.
Локальная память потока (thread local storage, TLS) – закрытая область памяти потока.
Дескриптор безопасности – дескриптор безопасности объекта «поток».
Динамический приоритет – значение приоритета потока в данный момент. 
Базовый приоритет – нижний предел динамического приоритета потока. 
Процессорная совместимость потока – перечень номеров процессоров, на которых может выполняться поток. 
Номер идеального процессора потока.
Номер процессора, на котором поток выполнялся прошлый раз.
Счетчик приостановок – текущее количество приостановок выполнения потока. 
Счетчики производительности, связанные с потоком.
Описание слайда:
Атрибуты потоков Идентификатор клиента – уникальное значение, которое идентифицирует поток при ее обращении к серверу. Контекст потока – информация, которая необходима ОС для того, чтобы продолжить выполнение прерванного потока. Два стека, один из которых используется потоком при выполнении в режиме ядра, а другой – в пользовательском режиме. Локальная память потока (thread local storage, TLS) – закрытая область памяти потока. Дескриптор безопасности – дескриптор безопасности объекта «поток». Динамический приоритет – значение приоритета потока в данный момент. Базовый приоритет – нижний предел динамического приоритета потока. Процессорная совместимость потока – перечень номеров процессоров, на которых может выполняться поток. Номер идеального процессора потока. Номер процессора, на котором поток выполнялся прошлый раз. Счетчик приостановок – текущее количество приостановок выполнения потока. Счетчики производительности, связанные с потоком.

Слайд 9





Поток и ресурсы процесса
Описание слайда:
Поток и ресурсы процесса

Слайд 10





Защита процессов и потоков
По умолчанию у потоков нет собственного маркера доступа и для целей безопасности используется маркер доступа процесса-родителя (поток 1).
При необходимости каждый поток может получить собственный маркер доступа (потоки 2 и 3).
Описание слайда:
Защита процессов и потоков По умолчанию у потоков нет собственного маркера доступа и для целей безопасности используется маркер доступа процесса-родителя (поток 1). При необходимости каждый поток может получить собственный маркер доступа (потоки 2 и 3).

Слайд 11





Номер идеального процессора потока
Идеальный процессор для потока выбирается случайным образом при его создании с использованием зародышевого значения (seed) в блоке процесса. Это значение увеличивается на 1 всякий раз, когда создается новый поток, поэтому создаваемые потоки равномерно распределяются по набору доступных процессоров. 
Например, первый поток в первом процессе в системе закрепляется за идеальным процессором 0, второй поток того же процесса – за идеальным процессором 1. Однако у следующего процесса в системе идеальный процессор для первого потока устанавливается в 1, для второго – в 2 и т. д. 
Номер идеального процессора может быть изменен с помощью функции SetThreadIdealProcessor().
Описание слайда:
Номер идеального процессора потока Идеальный процессор для потока выбирается случайным образом при его создании с использованием зародышевого значения (seed) в блоке процесса. Это значение увеличивается на 1 всякий раз, когда создается новый поток, поэтому создаваемые потоки равномерно распределяются по набору доступных процессоров. Например, первый поток в первом процессе в системе закрепляется за идеальным процессором 0, второй поток того же процесса – за идеальным процессором 1. Однако у следующего процесса в системе идеальный процессор для первого потока устанавливается в 1, для второго – в 2 и т. д. Номер идеального процессора может быть изменен с помощью функции SetThreadIdealProcessor().

Слайд 12





Задание (job)
Процессы Windows не поддерживают в явном виде отношения родитель-потомок, поэтому начиная с Windows 2000 в модель процессов введено новое расширение – задания (jobs). 
Задания предназначены в основном для того, чтобы группами процессов можно было оперировать и управлять как единым целым. 
Задание позволяет устанавливать определенные атрибуты и накладывать ограничения на процесс или процессы, сопоставленные с заданием.
Описание слайда:
Задание (job) Процессы Windows не поддерживают в явном виде отношения родитель-потомок, поэтому начиная с Windows 2000 в модель процессов введено новое расширение – задания (jobs). Задания предназначены в основном для того, чтобы группами процессов можно было оперировать и управлять как единым целым. Задание позволяет устанавливать определенные атрибуты и накладывать ограничения на процесс или процессы, сопоставленные с заданием.

Слайд 13





Квоты и лимиты для заданий
квоты (базовые и расширенные базовые ограничения):
максимальное количество процессов;
суммарное время центрального процессора (для каждого процесса и для задания в целом);
максимальное количество используемой памяти (для каждого процесса и для задания в целом);
базовые ограничения по пользовательскому интерфейсу;
ограничения, связанные с защитой.
Описание слайда:
Квоты и лимиты для заданий квоты (базовые и расширенные базовые ограничения): максимальное количество процессов; суммарное время центрального процессора (для каждого процесса и для задания в целом); максимальное количество используемой памяти (для каждого процесса и для задания в целом); базовые ограничения по пользовательскому интерфейсу; ограничения, связанные с защитой.

Слайд 14





Взаимосвязь между заданиями, процессами и потоками
Описание слайда:
Взаимосвязь между заданиями, процессами и потоками

Слайд 15





Волокна (fibers)
Волокна (или облегченные потоки) введены в Windows 2000 для переноса существующих серверных приложений из UNIX.
Волокна реализованы на уровне кода пользовательского режима. В потоке может быть одно или несколько волокон. Единовременно поток будет выполнять код лишь одного волокна вне зависимости от числа процессорных ядер.
Диспетчеризация волокон – процессорное время между волокнами  распределяется по пользовательскому алгоритму.
Описание слайда:
Волокна (fibers) Волокна (или облегченные потоки) введены в Windows 2000 для переноса существующих серверных приложений из UNIX. Волокна реализованы на уровне кода пользовательского режима. В потоке может быть одно или несколько волокон. Единовременно поток будет выполнять код лишь одного волокна вне зависимости от числа процессорных ядер. Диспетчеризация волокон – процессорное время между волокнами распределяется по пользовательскому алгоритму.

Слайд 16





Управление волокнами (1)
Поток  должен сделать возможным выполнение волокон, вызвав функцию ConvertThreadToFiber ().  
	В результате этого поток становится основным (primary) волокном. 
Основное или другие волокна создают дополнительные волокна с помощью функции CreateFiber ().  
Каждое волокно характеризуется начальным адресом (не дескриптором!), размером стека и данными.
Описание слайда:
Управление волокнами (1) Поток должен сделать возможным выполнение волокон, вызвав функцию ConvertThreadToFiber (). В результате этого поток становится основным (primary) волокном. Основное или другие волокна создают дополнительные волокна с помощью функции CreateFiber (). Каждое волокно характеризуется начальным адресом (не дескриптором!), размером стека и данными.

Слайд 17





Управление волокнами (2)
Выполняющееся волокно может уступить управление другому волокну, указав его адрес при вызове функции SwitchToFiber (). 
Отдельное волокно может получить свои данные, назначенные ему функцией CreateFiber (), обратившись к функции GetFiberData ().
Аналогично, волокно может идентифицировать себя при помощи функции GetCurrentFiber ().
Функция DeleteFiber () уничтожает волокно и все относящиеся к нему данные.
Описание слайда:
Управление волокнами (2) Выполняющееся волокно может уступить управление другому волокну, указав его адрес при вызове функции SwitchToFiber (). Отдельное волокно может получить свои данные, назначенные ему функцией CreateFiber (), обратившись к функции GetFiberData (). Аналогично, волокно может идентифицировать себя при помощи функции GetCurrentFiber (). Функция DeleteFiber () уничтожает волокно и все относящиеся к нему данные.

Слайд 18





Диспетчеризация волокон
Подчиненное планирование (master-slave scheduling)
Только основное (master) волокно, принимает решения относительно того, какое волокно должно выполняться, и это подчиненное волокно всегда возвращает управление обратно основному волокну.
Равноправное планирование (peer-to-peer scheduling)
Волокно само определяет, какое из других волокон должно выполняться следующим. 
Определение очередного волокна может базироваться на реализации различных бесприоритетных или приоритетных дисциплин обслуживания.
Описание слайда:
Диспетчеризация волокон Подчиненное планирование (master-slave scheduling) Только основное (master) волокно, принимает решения относительно того, какое волокно должно выполняться, и это подчиненное волокно всегда возвращает управление обратно основному волокну. Равноправное планирование (peer-to-peer scheduling) Волокно само определяет, какое из других волокон должно выполняться следующим. Определение очередного волокна может базироваться на реализации различных бесприоритетных или приоритетных дисциплин обслуживания.

Слайд 19





Иллюстрация диспетчеризации волокон
Равноправное планирование (peer-to-peer scheduling) – передача управления между волокнами 0 и 2 (5) и (6).
Описание слайда:
Иллюстрация диспетчеризации волокон Равноправное планирование (peer-to-peer scheduling) – передача управления между волокнами 0 и 2 (5) и (6).

Слайд 20





Управление центральным процессором…
Планирование загрузки однопроцессорной системы
Описание слайда:
Управление центральным процессором… Планирование загрузки однопроцессорной системы

Слайд 21





Общие принципы диспетчеризации Windows
В Windows реализована вытесняющая многозадачность, при которой ОС не ждет, когда поток сам освободит процессор, а принудительно  снимает его с выполнения после того, как тот израсходовал отведенный ему квант времени, или если в очереди готовых появился поток с более высоким приоритетом (дисциплина обслуживания с абсолютными приоритетами). 
Если процессор освободился (текущий поток израсходовал весь свой квант времени или досрочно вернул управление операционной системе), планировщик ставит на выполнение следующий поток. 
Планировщик всегда выбирает из очереди готовых поток с наивысшим приоритетом; если сразу несколько потоков имеют одинаковый приоритет, планировщик предоставляет кванты времени каждому из них по очереди (квантование времени). 
Если в машине установлено более одного процессора, алгоритм работы ОС значительно усложняется (в этом случае система стремится сбалансировать нагрузку между процессорами).
Описание слайда:
Общие принципы диспетчеризации Windows В Windows реализована вытесняющая многозадачность, при которой ОС не ждет, когда поток сам освободит процессор, а принудительно снимает его с выполнения после того, как тот израсходовал отведенный ему квант времени, или если в очереди готовых появился поток с более высоким приоритетом (дисциплина обслуживания с абсолютными приоритетами). Если процессор освободился (текущий поток израсходовал весь свой квант времени или досрочно вернул управление операционной системе), планировщик ставит на выполнение следующий поток. Планировщик всегда выбирает из очереди готовых поток с наивысшим приоритетом; если сразу несколько потоков имеют одинаковый приоритет, планировщик предоставляет кванты времени каждому из них по очереди (квантование времени). Если в машине установлено более одного процессора, алгоритм работы ОС значительно усложняется (в этом случае система стремится сбалансировать нагрузку между процессорами).

Слайд 22





Квантование времени
Квантование потоков осуществляется по тикам (интервал) системного таймера, продолжительность одного тика зависит от аппаратной платформы и определяется HAL, а не ядром. Например, этот интервал на большинстве однопроцессорных х86-систем составляет 10 мс, а на большинстве многопроцессорных х86-систем – около 15 мс.
Каждый тик системного таймера соответствует 3 условным единицам; величина кванта может варьироваться от 2 до 12 тиков (т.е. от 6 до 36 условных единиц).
По умолчанию в Windows 2000 Professional, Windows ХР и т.д. потоки выполняются в течение 2 тиков, а в системах Windows Server 2000, 2003 – 12 тиков таймера. 
В серверных системах величина кванта увеличена для того, чтобы свести к минимуму переключение контекста. Получая больший квант, серверные приложения имеют больше шансов выполнить запрос и вернуться в состояние ожидания до истечения выделенного кванта.
Описание слайда:
Квантование времени Квантование потоков осуществляется по тикам (интервал) системного таймера, продолжительность одного тика зависит от аппаратной платформы и определяется HAL, а не ядром. Например, этот интервал на большинстве однопроцессорных х86-систем составляет 10 мс, а на большинстве многопроцессорных х86-систем – около 15 мс. Каждый тик системного таймера соответствует 3 условным единицам; величина кванта может варьироваться от 2 до 12 тиков (т.е. от 6 до 36 условных единиц). По умолчанию в Windows 2000 Professional, Windows ХР и т.д. потоки выполняются в течение 2 тиков, а в системах Windows Server 2000, 2003 – 12 тиков таймера. В серверных системах величина кванта увеличена для того, чтобы свести к минимуму переключение контекста. Получая больший квант, серверные приложения имеют больше шансов выполнить запрос и вернуться в состояние ожидания до истечения выделенного кванта.

Слайд 23





Настройка кванта времени
Вы можете изменить квант для потоков всех процессов,  используя «Параметры быстродействия» ► «Оптимизировать работу»: 
«программ» – используется по умолчанию для клиентских компьютеров, 2 тика;
«служб, работающих в фоновом режиме» – используется по умолчанию для серверных систем, 12 тиков.
Описание слайда:
Настройка кванта времени Вы можете изменить квант для потоков всех процессов, используя «Параметры быстродействия» ► «Оптимизировать работу»: «программ» – используется по умолчанию для клиентских компьютеров, 2 тика; «служб, работающих в фоновом режиме» – используется по умолчанию для серверных систем, 12 тиков.

Слайд 24





Расширенная настройка квантования
Параметр реестра HKLM\SYSTEM\CurrentControlSet\Control\
	PriorityControl\Win32PrioritySeparation предназначен для управления квантованием и содержит три 2-хбитных поля.
Описание слайда:
Расширенная настройка квантования Параметр реестра HKLM\SYSTEM\CurrentControlSet\Control\ PriorityControl\Win32PrioritySeparation предназначен для управления квантованием и содержит три 2-хбитных поля.

Слайд 25





Длительности кванта
«программ» – короткие кванты переменной длины, значение 0x26 (10 01 10);
«служб, работающих в фоновом режиме» – длинные кванты фиксированной длины, значение 0x18 (01 10 00).
Описание слайда:
Длительности кванта «программ» – короткие кванты переменной длины, значение 0x26 (10 01 10); «служб, работающих в фоновом режиме» – длинные кванты фиксированной длины, значение 0x18 (01 10 00).

Слайд 26





Управление длительностью кванта
Управление длительностью кванта связано с активностью процесса, которая определяется наличием интерфейса пользователя (GUI или консоль) и его активностью: 
Если процесс находится в фоновом режиме, то длительность кванта его потоков соответствует «нулевым» колонкам (серый фон), т.е. по умолчанию:
для клиентских компьютеров – 6 усл. ед.; 
для серверов – 36 усл. ед.
Если процесс становится активным, то потокам активного процесса  назначается продолжительность кванта, исходя из значения двух младших бит параметра Win32PrioritySeparation, т.е. по умолчанию:
для клиентских компьютеров  – 18 усл. ед.; 
для серверов – 36 усл. ед.
Описание слайда:
Управление длительностью кванта Управление длительностью кванта связано с активностью процесса, которая определяется наличием интерфейса пользователя (GUI или консоль) и его активностью: Если процесс находится в фоновом режиме, то длительность кванта его потоков соответствует «нулевым» колонкам (серый фон), т.е. по умолчанию: для клиентских компьютеров – 6 усл. ед.; для серверов – 36 усл. ед. Если процесс становится активным, то потокам активного процесса назначается продолжительность кванта, исходя из значения двух младших бит параметра Win32PrioritySeparation, т.е. по умолчанию: для клиентских компьютеров – 18 усл. ед.; для серверов – 36 усл. ед.

Слайд 27





Приоритетный режим обслуживания
Разработчик ПО может использовать приоритеты от 1 до 31. 
Нулевой приоритет зарезервирован для потока обнуления страниц.
Поток наследует приоритет породившего его процесса. 
ОС Windows NT 4.0 предоставляет 4 класса приоритетов: Realtime, High, Normal и Idle. 
ОС Windows 2000: еще 2 дополнительных класса приоритетов – Below Normal и Above Normal.
Относительный приоритет потока: idle, lowest, below normal, normal (обычный), above normal, highest и time-critical.
Описание слайда:
Приоритетный режим обслуживания Разработчик ПО может использовать приоритеты от 1 до 31. Нулевой приоритет зарезервирован для потока обнуления страниц. Поток наследует приоритет породившего его процесса. ОС Windows NT 4.0 предоставляет 4 класса приоритетов: Realtime, High, Normal и Idle. ОС Windows 2000: еще 2 дополнительных класса приоритетов – Below Normal и Above Normal. Относительный приоритет потока: idle, lowest, below normal, normal (обычный), above normal, highest и time-critical.

Слайд 28





Классы приоритета процессов
Описание слайда:
Классы приоритета процессов

Слайд 29





Относительные приоритеты потоков
Описание слайда:
Относительные приоритеты потоков

Слайд 30





Иллюстрация по приоритетам для Windows 2000
Описание слайда:
Иллюстрация по приоритетам для Windows 2000

Слайд 31





Базовый и динамический приоритеты потока
Уровень приоритета, получаемый комбинацией относительного приоритета потока и класса приоритета процесса, которому принадлежит данный поток, называют базовым уровнем приоритета потока. 
В ряде случаев операционная система изменяет уровень динамический приоритет потока, это происходит в рамках механизмов адаптивного планирования.
Система изменяет приоритет только тех потоков, базовый уровень которых находится в пределах 1-15 («область динамического приоритета».
Система не допускает динамического повышения приоритета потока до уровней реального времени (более 15). Поскольку потоки с такими уровнями обслуживают системные функции, это ограничение не дает приложению нарушить работу ОС.
Описание слайда:
Базовый и динамический приоритеты потока Уровень приоритета, получаемый комбинацией относительного приоритета потока и класса приоритета процесса, которому принадлежит данный поток, называют базовым уровнем приоритета потока. В ряде случаев операционная система изменяет уровень динамический приоритет потока, это происходит в рамках механизмов адаптивного планирования. Система изменяет приоритет только тех потоков, базовый уровень которых находится в пределах 1-15 («область динамического приоритета». Система не допускает динамического повышения приоритета потока до уровней реального времени (более 15). Поскольку потоки с такими уровнями обслуживают системные функции, это ограничение не дает приложению нарушить работу ОС.

Слайд 32





Динамические приоритеты
В ходе выполнения потока его приоритет (1-15) может меняться – механизм адаптивного планирования.
Описание слайда:
Динамические приоритеты В ходе выполнения потока его приоритет (1-15) может меняться – механизм адаптивного планирования.

Слайд 33





Адаптивное планирование
Адаптивное планирование предназначено для оптимизации пропускной способности вычислительной системы в целом и увеличения реактивности интерактивных приложений, а также для устранения потенциально «нечестных» сценариев планирования потоков, часто выполняющих операции ввода-вывода и недоиспользующих выделенные им кванты.
Однако, как и любой другой алгоритм планирования, адаптивное планирование не решает всех проблем, и от него выигрывают не все приложения. Поэтому Вы можете включать/отключать режим адаптивного планирования для выбранных процессов и потоков с использованием функций Win32 API (SetProcessPriorityBoost() и SetThreadPriorityBoost() ).  
Описание слайда:
Адаптивное планирование Адаптивное планирование предназначено для оптимизации пропускной способности вычислительной системы в целом и увеличения реактивности интерактивных приложений, а также для устранения потенциально «нечестных» сценариев планирования потоков, часто выполняющих операции ввода-вывода и недоиспользующих выделенные им кванты. Однако, как и любой другой алгоритм планирования, адаптивное планирование не решает всех проблем, и от него выигрывают не все приложения. Поэтому Вы можете включать/отключать режим адаптивного планирования для выбранных процессов и потоков с использованием функций Win32 API (SetProcessPriorityBoost() и SetThreadPriorityBoost() ).  

Слайд 34





Принципы адаптивного планирования
Приоритет потоков, которые перешли в состояние ожидания, не использовав полностью выделенный им квант, повышается.
Если поток полностью исчерпал свой квант, то его приоритет понижается на некоторую величину.
Приоритет не изменяется, если поток вытеснен более приоритетным потоком.
Повышение приоритета для «голодающих» потоков.
Описание слайда:
Принципы адаптивного планирования Приоритет потоков, которые перешли в состояние ожидания, не использовав полностью выделенный им квант, повышается. Если поток полностью исчерпал свой квант, то его приоритет понижается на некоторую величину. Приоритет не изменяется, если поток вытеснен более приоритетным потоком. Повышение приоритета для «голодающих» потоков.

Слайд 35





Повышение приоритета
при завершении операции ввода-вывода –
в зависимости от устройства от 1 до 8 уровней;
по окончании ожидания события или семафора –
на 1 уровень;
при пробуждении GUI потоков из-за операций с окнами –
на 2 уровня;
по окончании операции ожидания потоком активного процесса (определяется по активности интерфейса) –
на величину от 0 до 2 уровней, определяемую младшими двумя битами параметра Win32PrioritySeparation;
это правило работает всегда и не может быть принудительно отключено с помощью функций Win32 API (SetProcessPriorityBoost () и SetThreadPriorityBoost() ).  
Описание слайда:
Повышение приоритета при завершении операции ввода-вывода – в зависимости от устройства от 1 до 8 уровней; по окончании ожидания события или семафора – на 1 уровень; при пробуждении GUI потоков из-за операций с окнами – на 2 уровня; по окончании операции ожидания потоком активного процесса (определяется по активности интерфейса) – на величину от 0 до 2 уровней, определяемую младшими двумя битами параметра Win32PrioritySeparation; это правило работает всегда и не может быть принудительно отключено с помощью функций Win32 API (SetProcessPriorityBoost () и SetThreadPriorityBoost() ).  

Слайд 36





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

Слайд 37





«Голодающие» потоки
Представьте, что поток с приоритетом 4 готов к выполнению, но не может получить доступ к процессору из-за того, что его постоянно занимают потоки с приоритетом 8. Это типичный случай «голодания» потока с более низким приоритетом. 
Обнаружив такой поток, не выполняемый на протяжении уже 3-4 секунд, ОС выполняет:
поднимает приоритет «голодающего» потока до 15;
выделяет ему удвоенный квант времени;
по истечении удвоенного кванта времени потоку немедленно возвращается его базовый приоритет.
Описание слайда:
«Голодающие» потоки Представьте, что поток с приоритетом 4 готов к выполнению, но не может получить доступ к процессору из-за того, что его постоянно занимают потоки с приоритетом 8. Это типичный случай «голодания» потока с более низким приоритетом. Обнаружив такой поток, не выполняемый на протяжении уже 3-4 секунд, ОС выполняет: поднимает приоритет «голодающего» потока до 15; выделяет ему удвоенный квант времени; по истечении удвоенного кванта времени потоку немедленно возвращается его базовый приоритет.

Слайд 38





Практическая работа
ЭКСПЕРИМЕНТ 1: наблюдение за динамическим изменением приоритета потока активного процесса.
ЭКСПЕРИМЕНТ 2: наблюдаем динамическое повышение приоритета GUI-потоков.
ЭКСПЕРИМЕНТ 3: динамическое повышение приоритетов при нехватке процессорного времени. 
	*См.  Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000.
Описание слайда:
Практическая работа ЭКСПЕРИМЕНТ 1: наблюдение за динамическим изменением приоритета потока активного процесса. ЭКСПЕРИМЕНТ 2: наблюдаем динамическое повышение приоритета GUI-потоков. ЭКСПЕРИМЕНТ 3: динамическое повышение приоритетов при нехватке процессорного времени.  *См.  Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000.

Слайд 39





Граф состояний потоков для Windows 2000 (1 CPU)
Описание слайда:
Граф состояний потоков для Windows 2000 (1 CPU)

Слайд 40





Состояния потоков
Готовность (ready). В очереди готовых потоков находятся те потоки, у которых есть все для выполнения, но не хватает только процессора. 
Первоочередная готовность (standby). Для каждого процессора системы выбирается один поток, который будет выполняться следующим. После  освобождения процессора, происходит переключение на контекст этого потока. 
Выполнение (running). Как только происходит переключение контекстов, поток переходит в состояние выполнения и находится в нем до тех пор, пока не выполнится одно из условий освобождения процессора. 
Ожидание (waiting). Поток может входить в состояние ожидания несколькими способами, например, поток по своей инициативе ожидает некоторый объект для того, чтобы синхронизировать свое выполнение. 
Переходное состояние (transition). Поток входит в переходное состояние, если он готов к выполнению, но ресурсы, которые ему нужны, заняты. Например, страница, содержащая стек потока, может быть выгружена на диск. 
Завершение (terminate). Когда выполнение потока закончилось, он входит в состояние завершения.
Описание слайда:
Состояния потоков Готовность (ready). В очереди готовых потоков находятся те потоки, у которых есть все для выполнения, но не хватает только процессора. Первоочередная готовность (standby). Для каждого процессора системы выбирается один поток, который будет выполняться следующим. После освобождения процессора, происходит переключение на контекст этого потока. Выполнение (running). Как только происходит переключение контекстов, поток переходит в состояние выполнения и находится в нем до тех пор, пока не выполнится одно из условий освобождения процессора. Ожидание (waiting). Поток может входить в состояние ожидания несколькими способами, например, поток по своей инициативе ожидает некоторый объект для того, чтобы синхронизировать свое выполнение. Переходное состояние (transition). Поток входит в переходное состояние, если он готов к выполнению, но ресурсы, которые ему нужны, заняты. Например, страница, содержащая стек потока, может быть выгружена на диск. Завершение (terminate). Когда выполнение потока закончилось, он входит в состояние завершения.

Слайд 41





Очереди готовых потоков 
(Windows 2000)
Очереди готовых потоков (ready queues) диспетчера ядра включают потоки в состоянии Ready, ожидающие выделения им процессорного времени.
Для каждого из 32 уровней приоритета существует по одной очереди.
Описание слайда:
Очереди готовых потоков (Windows 2000) Очереди готовых потоков (ready queues) диспетчера ядра включают потоки в состоянии Ready, ожидающие выделения им процессорного времени. Для каждого из 32 уровней приоритета существует по одной очереди.

Слайд 42





Сводка готовности 
(Windows 2000)
Для ускорения выбора потока, подлежащего выполнению, Windows поддерживает 32-битную маску, называемую сводкой готовности (ready summary). 
Каждый установленный в маске бит указывает на присутствие одного или более потоков в очереди готовых потоков с данным уровня приоритета.
Описание слайда:
Сводка готовности (Windows 2000) Для ускорения выбора потока, подлежащего выполнению, Windows поддерживает 32-битную маску, называемую сводкой готовности (ready summary). Каждый установленный в маске бит указывает на присутствие одного или более потоков в очереди готовых потоков с данным уровня приоритета.

Слайд 43





Условия освобождения потоком процессора
исчерпан квант и в очереди есть потоки с равным уровнем приоритета;
появляется более приоритетный готовый поток;
поток снижает свой приоритет в и в очереди готовых оказывается более приоритетный поток;
поток сам добровольно переходит в очередь готовых 
Sleep (0)
SwitchToThread ()
Описание слайда:
Условия освобождения потоком процессора исчерпан квант и в очереди есть потоки с равным уровнем приоритета; появляется более приоритетный готовый поток; поток снижает свой приоритет в и в очереди готовых оказывается более приоритетный поток; поток сам добровольно переходит в очередь готовых Sleep (0) SwitchToThread ()

Слайд 44





Поток простоя
Если нет ни одного потока, готового к выполнению на процессоре. Windows подключает к данному процессору поток простоя. 
Поток простоя не имеет приоритета, поскольку он выполняется лишь в отсутствие других потоков. 
Для каждого процессора (в МПС) создается свой поток простоя.
Описание слайда:
Поток простоя Если нет ни одного потока, готового к выполнению на процессоре. Windows подключает к данному процессору поток простоя. Поток простоя не имеет приоритета, поскольку он выполняется лишь в отсутствие других потоков. Для каждого процессора (в МПС) создается свой поток простоя.

Слайд 45





Назначение потока простоя
Поток простоя выполняет следующие действия.
Проверяет, выбран ли какой-нибудь поток для выполнения на данном процессоре, и, если да, организует его диспетчеризацию.
Включает и отключает прерывания (тем самым давая возможность доставить отложенные программные прерывания).
Проверяет, нет ли у процессора незавершенных отложенных программных прерываний (DPC – Deferred procedure call). Если таковые есть, сбрасывает отложенное программное прерывание и доставляет DPC.
Вызывает из HAL процедуру обработки процессора в простое (если нужно выполнить какие-либо функции управления электропитанием).
В Windows Server 2003 и старше поток простоя также проверяет наличие потоков, ожидающих выполнения на других процессорах, но об этом пойдет речь в лекции по планированию потоков в многопроцессорных системах.
Описание слайда:
Назначение потока простоя Поток простоя выполняет следующие действия. Проверяет, выбран ли какой-нибудь поток для выполнения на данном процессоре, и, если да, организует его диспетчеризацию. Включает и отключает прерывания (тем самым давая возможность доставить отложенные программные прерывания). Проверяет, нет ли у процессора незавершенных отложенных программных прерываний (DPC – Deferred procedure call). Если таковые есть, сбрасывает отложенное программное прерывание и доставляет DPC. Вызывает из HAL процедуру обработки процессора в простое (если нужно выполнить какие-либо функции управления электропитанием). В Windows Server 2003 и старше поток простоя также проверяет наличие потоков, ожидающих выполнения на других процессорах, но об этом пойдет речь в лекции по планированию потоков в многопроцессорных системах.

Слайд 46





Граф состояний потоков для Windows 2003
Схема состояний потоков в Windows Server 2003 показана на следующем слайде.
Обратите внимание на новое состояние Deferred Ready (готов, отложен). Это состояние используется для потоков, выбранных для выполнения на конкретном процессоре, но пока не запланированных к выполнению. 
Это новое состояние предназначено для того, чтобы ядро могло свести к минимуму срок применения общесистемной блокировки к базе данных планирования (scheduling database).
Описание слайда:
Граф состояний потоков для Windows 2003 Схема состояний потоков в Windows Server 2003 показана на следующем слайде. Обратите внимание на новое состояние Deferred Ready (готов, отложен). Это состояние используется для потоков, выбранных для выполнения на конкретном процессоре, но пока не запланированных к выполнению. Это новое состояние предназначено для того, чтобы ядро могло свести к минимуму срок применения общесистемной блокировки к базе данных планирования (scheduling database).

Слайд 47





Граф состояний потоков для Windows 2003 (1 CPU)
Описание слайда:
Граф состояний потоков для Windows 2003 (1 CPU)

Слайд 48





Управление центральным процессором…
Управление потоками в многопроцессорных системах
Описание слайда:
Управление центральным процессором… Управление потоками в многопроцессорных системах

Слайд 49





Управление потоками в МПС
Операционные системы Windows 2000+ руководствуются следующими базовыми стратегиями для решения того, на каких процессорах какие потоки выполняются: 
выбор процессора для готового потока, при наличии простаивающих процессоров;
выбор процессора для готового потока, при отсутствии простаивающих процессоров;
выбор потока для конкретного процессора, который освободился.
Описание слайда:
Управление потоками в МПС Операционные системы Windows 2000+ руководствуются следующими базовыми стратегиями для решения того, на каких процессорах какие потоки выполняются: выбор процессора для готового потока, при наличии простаивающих процессоров; выбор процессора для готового потока, при отсутствии простаивающих процессоров; выбор потока для конкретного процессора, который освободился.

Слайд 50





Выбор процессора для потока при наличии простаивающих
Как только поток готов к выполнению, Windows сначала пытается подключить его к простаивающему процессору. 
Если таких процессоров несколько, то выбор процессора производится в зависимости от версии операционной системы Windows (см. далее).
Как только процессор выбран, соответствующий поток переводится в состояние Standby. 
При выполнении на этом процессоре поток простоя обнаруживает, что поток выбран и подключает его к процессору.
Описание слайда:
Выбор процессора для потока при наличии простаивающих Как только поток готов к выполнению, Windows сначала пытается подключить его к простаивающему процессору. Если таких процессоров несколько, то выбор процессора производится в зависимости от версии операционной системы Windows (см. далее). Как только процессор выбран, соответствующий поток переводится в состояние Standby. При выполнении на этом процессоре поток простоя обнаруживает, что поток выбран и подключает его к процессору.

Слайд 51





Выбор процессора для потока
Выбор процессора для потока в Windows 2000: 
Если простаивающих процессоров несколько, то предпочтение отдается сначала идеальному процессору для данного потока, затем предыдущему, а потом текущему (т. е. процессору, на котором работает поток простоя, отвечающий за планирование). 
Если все эти процессоры заняты, операционная система выбирает первый простаивающий процессор, на котором может работать данный поток, для чего сканируется маска свободных процессоров в направлении убывания их номеров.
Выбор процессора для потока в Windows XP, 2003+: 
Выделяются простаивающие процессоры из числа тех, на которых маска привязки разрешает выполнение данного потока. Если маска привязки разрешает выполнение потока на текущем процессоре, то поток планируется к выполнению именно на этом процессоре. 
Если маска привязки не разрешает выполнение потока на текущем процессоре, то выполняется следующий алгоритм.
Описание слайда:
Выбор процессора для потока Выбор процессора для потока в Windows 2000: Если простаивающих процессоров несколько, то предпочтение отдается сначала идеальному процессору для данного потока, затем предыдущему, а потом текущему (т. е. процессору, на котором работает поток простоя, отвечающий за планирование). Если все эти процессоры заняты, операционная система выбирает первый простаивающий процессор, на котором может работать данный поток, для чего сканируется маска свободных процессоров в направлении убывания их номеров. Выбор процессора для потока в Windows XP, 2003+: Выделяются простаивающие процессоры из числа тех, на которых маска привязки разрешает выполнение данного потока. Если маска привязки разрешает выполнение потока на текущем процессоре, то поток планируется к выполнению именно на этом процессоре. Если маска привязки не разрешает выполнение потока на текущем процессоре, то выполняется следующий алгоритм.

Слайд 52





Алгоритм выбор процессора для потока в Windows XP, 2003 и старше
Если система имеет архитектуру NUMA и в узле, где находится идеальный процессор для потока, есть простаивающие процессоры, то список всех простаивающих процессоров уменьшается до этого набора. Если в результате такой операции в списке не останется простаивающих процессоров, список не сокращается. 
Если в системе работают процессоры с технологией HT и имеется физический процессор, все логические процессоры которого свободны, список простаивающих процессоров уменьшается до этого набора. Если в результате такой операции в списке не останется простаивающих процессоров, список не сокращается.
Если текущий процессор относится к набору оставшихся простаивающих процессоров, поток планируется к выполнению именно на этом процессоре.
Если текущий процессор не входит в список оставшихся простаивающих процессоров, если это система с технологией HT и если есть простаивающий логический процессор на физическом, который содержит идеальный процессор для данного потока, то список простаивающих процессоров ограничивается этим набором. В ином идет поиск простаивающих  логических процессоров на предыдущем физическом процессоре. Если такой набор не пуст, список простаивающих процессоров уменьшается до этого набора.
Из оставшегося набора простаивающих процессоров исключаются все процессоры, находящиеся в состоянии сна. (Эта операция не выполняется. если в ее результате такой список опустел бы.) 
Поток подключается к процессору с наименьшим номером в оставшемся списке.
Описание слайда:
Алгоритм выбор процессора для потока в Windows XP, 2003 и старше Если система имеет архитектуру NUMA и в узле, где находится идеальный процессор для потока, есть простаивающие процессоры, то список всех простаивающих процессоров уменьшается до этого набора. Если в результате такой операции в списке не останется простаивающих процессоров, список не сокращается. Если в системе работают процессоры с технологией HT и имеется физический процессор, все логические процессоры которого свободны, список простаивающих процессоров уменьшается до этого набора. Если в результате такой операции в списке не останется простаивающих процессоров, список не сокращается. Если текущий процессор относится к набору оставшихся простаивающих процессоров, поток планируется к выполнению именно на этом процессоре. Если текущий процессор не входит в список оставшихся простаивающих процессоров, если это система с технологией HT и если есть простаивающий логический процессор на физическом, который содержит идеальный процессор для данного потока, то список простаивающих процессоров ограничивается этим набором. В ином идет поиск простаивающих логических процессоров на предыдущем физическом процессоре. Если такой набор не пуст, список простаивающих процессоров уменьшается до этого набора. Из оставшегося набора простаивающих процессоров исключаются все процессоры, находящиеся в состоянии сна. (Эта операция не выполняется. если в ее результате такой список опустел бы.) Поток подключается к процессору с наименьшим номером в оставшемся списке.

Слайд 53





Выбор процессора для потока при отсутствии простаивающих
При отсутствии простаивающего процессора Windows выполняет постановку нового потока на идеальный процессор. Если этот процессор не входит в маску привязки потока, Windows выбирает для потока процессор с наибольшим номером (в Windows 2000 маска привязки может исключить идеальный процессор).
Если к идеальному процессору уже подключен какой-то поток, Windows сравнивает приоритеты текущего и нового потока. Если приоритет выполняемого потока меньше, чем нового, то текущий поток вытесняется в пользу нового.
Если для идеального процессора уже выбран поток, ожидающий в состоянии Standby выделения процессорного времени, и его приоритет ниже, чем потока, готовящегося к выполнению, последний вытесняет первый и становится следующим выполняемым на данном процессоре.
Описание слайда:
Выбор процессора для потока при отсутствии простаивающих При отсутствии простаивающего процессора Windows выполняет постановку нового потока на идеальный процессор. Если этот процессор не входит в маску привязки потока, Windows выбирает для потока процессор с наибольшим номером (в Windows 2000 маска привязки может исключить идеальный процессор). Если к идеальному процессору уже подключен какой-то поток, Windows сравнивает приоритеты текущего и нового потока. Если приоритет выполняемого потока меньше, чем нового, то текущий поток вытесняется в пользу нового. Если для идеального процессора уже выбран поток, ожидающий в состоянии Standby выделения процессорного времени, и его приоритет ниже, чем потока, готовящегося к выполнению, последний вытесняет первый и становится следующим выполняемым на данном процессоре.

Слайд 54





Выбор потока для конкретного процессора (Windows 2000 и XP)
В многопроцессорной системе Windows 2000 или Windows ХР из очереди готовых выбирается поток с наивысшим приоритетом, для которого выполняется одно из дополнительных условий:
поток уже выполнялся в прошлый раз на данном процессоре;
данный процессор должен быть идеальным для этого потока;
поток провел в состоянии Ready более трех тактов системного таймера;
поток имеет приоритет не менее 24.
Описание слайда:
Выбор потока для конкретного процессора (Windows 2000 и XP) В многопроцессорной системе Windows 2000 или Windows ХР из очереди готовых выбирается поток с наивысшим приоритетом, для которого выполняется одно из дополнительных условий: поток уже выполнялся в прошлый раз на данном процессоре; данный процессор должен быть идеальным для этого потока; поток провел в состоянии Ready более трех тактов системного таймера; поток имеет приоритет не менее 24.

Слайд 55





Выбор потока для конкретного процессора (Windows 2003 и старше)
Поскольку в Windows Server 2003+ у каждого процессора собственный список потоков, ждущих выполнения на этом процессоре, то по окончании выполнения текущего потока процессор просто проверяет свою очередь готовых потоков. 
Если его очереди пусты, к процессору подключается поток простоя. Затем этот поток начинает сканировать очереди готовых потоков при других процессорах и ищет потоки, которые можно было бы выполнять на данном процессоре. 
Заметьте, что в NUMA-системах поток простоя проверяет процессоры сначала в своем узле, а потом в других узлах.
Описание слайда:
Выбор потока для конкретного процессора (Windows 2003 и старше) Поскольку в Windows Server 2003+ у каждого процессора собственный список потоков, ждущих выполнения на этом процессоре, то по окончании выполнения текущего потока процессор просто проверяет свою очередь готовых потоков. Если его очереди пусты, к процессору подключается поток простоя. Затем этот поток начинает сканировать очереди готовых потоков при других процессорах и ищет потоки, которые можно было бы выполнять на данном процессоре. Заметьте, что в NUMA-системах поток простоя проверяет процессоры сначала в своем узле, а потом в других узлах.

Слайд 56





Очереди готовых потоков 
(Windows 2003)
Описание слайда:
Очереди готовых потоков (Windows 2003)

Слайд 57





Управление центральным процессором…
Особенности планирования потоков в Windows Vista и Windows Server 2008
Описание слайда:
Управление центральным процессором… Особенности планирования потоков в Windows Vista и Windows Server 2008

Слайд 58





Проблема неравномерного распределения ресурсов процессора
Все версии ОС Windows собирают статистику загрузки процессора, для этого каждые 10 или 15 мс (в зависимости от аппаратной платформы), выполняетcя подпрограмма прерывания интервального таймера. Данная подпрограмма обновляет статистику загрузки процессора потоком, который был ею прерван. 
В версиях ОС Windows младше Vista и Server 2008 считается, что прерванный поток выполнялся весь интервал, хотя в действительности выполнение потока могло начаться перед самым завершением данного интервала. 
Кроме того, возможна ситуация, когда поток может формально получить процессор, но не получить возможности выполняться, поскольку вместо этого могли быть выполнены подпрограммы аппаратного или программного прерывания.
Таким образом, использование подобного механизма сбора статистики загрузки процессора может приводить к нерациональному распределению ресурсов самого процессора.
Описание слайда:
Проблема неравномерного распределения ресурсов процессора Все версии ОС Windows собирают статистику загрузки процессора, для этого каждые 10 или 15 мс (в зависимости от аппаратной платформы), выполняетcя подпрограмма прерывания интервального таймера. Данная подпрограмма обновляет статистику загрузки процессора потоком, который был ею прерван. В версиях ОС Windows младше Vista и Server 2008 считается, что прерванный поток выполнялся весь интервал, хотя в действительности выполнение потока могло начаться перед самым завершением данного интервала. Кроме того, возможна ситуация, когда поток может формально получить процессор, но не получить возможности выполняться, поскольку вместо этого могли быть выполнены подпрограммы аппаратного или программного прерывания. Таким образом, использование подобного механизма сбора статистики загрузки процессора может приводить к нерациональному распределению ресурсов самого процессора.

Слайд 59





Иллюстрация неравномерного распределения ресурсов процессора
Рассмотрим случай, если два потока с одинаковым приоритетом одновременно готовы к выполнению:
Описание слайда:
Иллюстрация неравномерного распределения ресурсов процессора Рассмотрим случай, если два потока с одинаковым приоритетом одновременно готовы к выполнению:

Слайд 60





Усовершенствования ядра ОС Windows Vista – Server 2008
В Windows Vista и Server 2008 для более равномерного выделения ресурсов вводится использование счетчика циклов процессора.
Планировщик отслеживает точное количество циклов процессора, в течение которых выполняется поток, с помощью регистра счетчика циклов современных процессоров. Определив, сколько циклов может выполнить процессор на протяжении интервала времени, планировщик может точнее раздавать ресурсы процессора. К тому же, планировщик не засчитывает выполнение прерывания во время выполнения потока. 
Это означает, что поток в Windows Vista и Server 2008 всегда получит, по крайней мере, один дополнительный временной интервал, что обеспечивает более справедливое выделение ресурсов и предсказуемое поведение приложений.
Описание слайда:
Усовершенствования ядра ОС Windows Vista – Server 2008 В Windows Vista и Server 2008 для более равномерного выделения ресурсов вводится использование счетчика циклов процессора. Планировщик отслеживает точное количество циклов процессора, в течение которых выполняется поток, с помощью регистра счетчика циклов современных процессоров. Определив, сколько циклов может выполнить процессор на протяжении интервала времени, планировщик может точнее раздавать ресурсы процессора. К тому же, планировщик не засчитывает выполнение прерывания во время выполнения потока. Это означает, что поток в Windows Vista и Server 2008 всегда получит, по крайней мере, один дополнительный временной интервал, что обеспечивает более справедливое выделение ресурсов и предсказуемое поведение приложений.

Слайд 61





Решение неравномерного распределения ресурсов ЦП
На рисунке показан пример решения описанной ситуации неравномерного распределения ресурсов ЦП – ядро Windows Vista выделяет обоим потокам как минимум, по одному временному интервалу выполнения.
Описание слайда:
Решение неравномерного распределения ресурсов ЦП На рисунке показан пример решения описанной ситуации неравномерного распределения ресурсов ЦП – ядро Windows Vista выделяет обоим потокам как минимум, по одному временному интервалу выполнения.

Слайд 62





Управление центральным процессором…
Дополнительный материал
Описание слайда:
Управление центральным процессором… Дополнительный материал

Слайд 63





Программа Process Monitor версии 1.1 
Программа Process Monitor является усовершенствованным инструментом отслеживания для Windows, который в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков (http://technet.microsoft.com/ru-ru/sysinternals/bb896645.aspx).
Описание слайда:
Программа Process Monitor версии 1.1 Программа Process Monitor является усовершенствованным инструментом отслеживания для Windows, который в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков (http://technet.microsoft.com/ru-ru/sysinternals/bb896645.aspx).



Похожие презентации
Mypresentation.ru
Загрузить презентацию