Модели обработки нитей и виртуальные процессоры

Библиотека нитей устанавливает соответствие между пользовательскими нитями и нитями ядра. Способ установки такого соответствия называется моделью обработки нитей.

Существует три различных модели обработки нитей, соответствующих трем различным способам установления соответствия между пользовательскими нитями и нитями ядра:

  • Модель M:1
  • Модель 1:1
  • Модель M:N

Соответствие между пользовательскими нитями и нитями ядра устанавливают виртуальные процессоры. Виртуальный процессор (VP) - это элемент библиотеки, как правило, неявный. Для пользовательской нити виртуальный процессор играет ту же роль, что и CPU. В библиотеке виртуальный процессор является нитью ядра или структурой, связанной с нитью ядра.

В модели M:1 всем пользовательским нитями ставится в соответствие одна нить ядра; все пользовательские нити выполняются на одном VP. Это соответствие устанавливает планировщик библиотеки. Все средства программирования пользовательских нитей используются только библиотекой. Эта модель допустима для любых систем, в частности, для традиционных систем, не предусматривающих обработки нескольких нитей.

В модели 1:1 для каждой пользовательской нити выделяется отдельная нить ядра; каждая пользовательская нить выполняется на отдельном VP. Большая часть средств программирования пользовательских нитей применяется непосредственно нитями ядра. Эта модель применяется по умолчанию.

В модели M:N всем пользовательским нитям ставится в соответствие пул нитей ядра; все пользовательские нити выполняются пулом виртуальных процессоров. Отдельная пользовательская нить может быть связана с определенным виртуальным процессором, как в модели 1:1. Все несвязанные пользовательские нити совместно выполняются на оставшихся виртуальных процессорах. Эта модель обработки нитей самая эффективная и самая сложная; средства программирования пользовательских нитей используются как библиотекой нитей, так и нитями ядра. Для применения этой модели нужно присвоить переменной среды AIXTHREAD_SCOPE значение P.