Маски родства системы, процесса и потока

Маски родства системы, процесса и потока

У каждого процесса имеется собственная маска родства процесса (process affinity mask), представляющая собой битовый вектор. Существует также маска родства системы (system affinity mask). 

• Маска родства системы отображает процессоры, сконфигурированные в системе.

• Маска родства процесса отображает процессоры, на которых разрешается выполнение потоков данного процесса.

• Каждый индивидуальный поток имеет маску родства потока (thread affinity mask), которая должна представлять собой подмножество значений маски родства процесса. Первоначально маска родства потока совпадает с маской родства процесса.

Существуют функции для получения и установки масок, хотя системную маску вы можете только считывать (получать), а маски потоков — только устанавливать. Функции установки масок используют дескрипторы потоков и процессов, поэтому процессы или потоки могут устанавливать маску родства друг для друга, если имеются соответствующие права доступа, или для самих себя. Установка маски никак не повлияет на поток, уже выполняющийся на процессоре, использование которого вы пытаетесь исключить данной маской.

Для считывания как системных масок родства, так и масок родства процессов используется одна функция — GetProcessAffinityMask. В однопроцессорных системах, включая Windows 9x, все биты маски должны быть равными 1.

BOOL GetProcessAffinityMask(HANDLE hProcess, LPDWORD lpProcessAffinityMask, LPDWORD lpSystemAffinityMask) 

Маска родства процесса, которая будет наследоваться любым дочерним процессом, устанавливается при помощи функции SetProcessAffinityMask. 

BOOL SetProcessAffinityMask(HANDLE hProcess, DWORD dwProcessAffinityMask) 

В документации Microsoft говорится, что значение новой маски должно быть строгим подмножеством (proper subset) значений масок, получаемых с помощью функции GetProcessAffinityMask. Как показывает несложный эксперимент, включенный в код программы TimedMutualExclusion, новая маска может быть той же, что и маска системы или предыдущая маска процесса. Однако упомянутое ограничение не может быть справедливым, ибо в таком случае вы были бы лишены возможности восстанавливать маску родства системы до предыдущего значения.

В Windows 9x поддержка SMP, а также функций манипулирования масками процессов не поддерживаются. Новые значения масок влияют на все потоки, принадлежащие данному процессу. 

Для установки маски родства потоков применяется аналогичная функция. 

DWORD SetThreadAffinityMask(HANDLE hThread, DWORD dwThreadAffinityMask) 

Типы возвращаемых значений этих функций не согласуются между собой. Типом возвращаемого значения функции SetThreadAffinityMask является DWORD, a не BOOL, но результат остается одним и тем же (1 — в случае успеха, 0 — в противном случае). Функция SetThreadAffinityMask работает и под управлением Windows 9х, но маска должна быть единичной, что не дает никакого прока. Кроме того, невзирая на документацию, новая маска не обязательно должна быть строгим подмножеством системной маски.

Функция SetThreadIdealProcessor является видоизменением функции SetThreadAffinityMask. Вы указываете предпочтительный ("идеальный") номер процессора (а не маску), и планировщик назначает потоку этот процессор, если такая возможность имеется, или назначит ему другой процессор, если предпочтительный процессор недоступен. Возвращаемым значением функции является номер предыдущего предпочтительного процессора, если таковой был назначен.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ППО)

Из книги Модель зрелости процессов разработки программного обеспечения автора Паулк Марк

7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ППО) Организация устанавливает и сопровождает набор основных средств производственного процесса, как показано на рис. 4.1. К


Каналы-маски

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

Каналы-маски Вы можете добавить в изображение новый канал. Однако это будет не цветовой, а так называемый альфа-канал, или канал-маска. Для чего могут использоваться такие каналы? Применений множество. Самое простое – это использование масок для изображения или


Значения маски АСЕ

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Значения маски АСЕ Модели "пользователь, группа, прочие", которую реализует функция InitUnixSA в большинстве случаев будет вполне достаточно, хотя с использованием тех же базовых методов могут реализовываться и другие модели.Вместе с тем, для этого необходимо знать


6.4 Использование маски подсети

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

6.4 Использование маски подсети Предположим, что компьютер имеет IP-адрес 130.15.12.131 и подключен к локальной сети, а данные нужно послать:Из: 130.15.12.131В: 130.15.12.22Можно предположить, что обе системы находятся в одной и той же подсети. Компьютер должен проверить, верно ли такое


8.6.1 Использование маски маршрута

Из книги Информатика: аппаратные средства персонального компьютера автора Яшин Владимир Николаевич

8.6.1 Использование маски маршрута Для поиска совпадения с адресом назначения (например, 128.36.2.25) нужно сравнить 128.36.2.25 с каждым элементом маршрута назначения (Route Destination). Элементы маски маршрута (Route Mask) указывают, сколько бит из 128.36.2.25 должны совпадать с битами маршрута


8.7.1 Использование маски маршрута

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

8.7.1 Использование маски маршрута Для поиска совпадения с назначением 128.121.54.101 нужно применить маску маршрута для каждого элемента и сравнить результат с назначением маршрута (Route Destination). Применение маски 255.255.255.0 к четвертой строке даст 128.121.54.0, что совпадает с элементом


8.9.9 Нет маски подсети

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

8.9.9 Нет маски подсети В сообщения прокола RIP версии 1 не включаются маски (см. рис. 8.6), следовательно, нельзя определить, что представляет собой адрес: подсеть или хост.Долгое время разработчики маршрутизаторов решали эту проблему, требуя, чтобы пользователи выбирали одну


Приложение D Маски подсети переменной длины

Из книги Photoshop CS4 автора Жвалевский Андрей Валентинович

Приложение D Маски подсети переменной длины D.1 Введение Формат адресов Интернета причиняет много хлопот сетевым администраторам хотя бы потому, что 32-разрядное адресное пространство слишком мало и ограничено.Компьютеры работают с адресами, используя побитовое деление,


D.2 Маски подсетей с переменной длиной

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

D.2 Маски подсетей с переменной длиной Очень трудно выбрать одну-единственную маску подсети для организации. Многие сети предприятий сочетают различное коммуникационное оборудование — линии дальней связи, Frame Relay, локальные сети офиса и мелких подразделений организации.


1.1. Понятия информации, информационного процесса и информационной системы

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

1.1. Понятия информации, информационного процесса и информационной системы Понятия «информация», «информационный процесс» и «информационная система» являются основополагающими в курсе информатики, поэтому их формирование было и остается сложной проблемой, связанной в


Создание маски

Из книги автора

Создание маски О масках мы уже знаем из главы 21. В терминологии канвы так называется особая фигура, задающая своего рода "окно", сквозь которое будет видна часть графики, нарисованной на канве. Вся графика, не попадающая в это "окно", будет скрыта. При этом сама маска на канву


Создание маски

Из книги автора

Создание маски О масках мы уже знаем из главы 21. В терминологии канвы так называется особая фигура, задающая своего рода "окно", сквозь которое будет видна часть графики, нарисованной на канве. Вся графика, не попадающая в это "окно", будет скрыта. При этом сама маска на канву


Маски

Из книги автора

Маски Один из самых важных инструментов Photoshop – маска. Она представляет собой шаблон выделения, определяющий участки изображения, с которым вы работаете. Напрашивается вполне закономерный вопрос: зачем использовать для выделения маски, если в арсенале программы столько


Запуск потока

Из книги автора

Запуск потока Теперь, когда мы знаем, как запустить другой процесс, давайте рассмотрим, как осуществить запуск другого потока.Любой поток может создать другой поток в том же самом процессе; на это не налагается никаких ограничений (за исключением объема памяти, конечно!)


Глава 10 Выделение, каналы и маски

Из книги автора

Глава 10 Выделение, каналы и маски 10.1. Инструменты простого и сложного выделения10.2. Меню Select (Выделение)10.3. Дополнительное меню выделения10.4. Маска10.5. Режим Quick Mask (Быстрая маска)10.6. Дополнительные