Блокировка программного обеспечения - Википедия - Software lockout

В мультипроцессор Компьютерные системы, блокировка программного обеспечения проблема снижения производительности из-за времени ожидания простоя, затрачиваемого Процессоры в ядро -уровень критические разделы. Блокировка программного обеспечения - основная причина масштабируемость деградация в многопроцессорной системе, устанавливающая ограничение на максимальное полезное количество процессоров. Чтобы смягчить это явление, ядро ​​должно быть спроектировано так, чтобы критические разделы как можно короче, поэтому разложив каждый структура данных в небольших подструктурах.

Критические разделы уровня ядра

В большинстве многопроцессорных систем каждый процессор планирует и управляет собой, поэтому нет никакого "супервизорного" процессора,[1] и ядро структуры данных используются во всем мире; разделы кода, которые обращаются к этим общим структурам данных, критические разделы. Этот выбор конструкции сделан для улучшения масштабирования, надежности и модульности.[1] Примеры такой структуры данных ядра: готовый список и каналы связи.

"Конфликт" возникает, когда более одного процессор пытается получить доступ к одному и тому же ресурсу (части памяти) одновременно. Предотвращать критические расы и непоследовательность, только один процессор (ЦПУ ) в данный момент разрешен доступ к определенному структура данных (часть памяти), в то время как другие процессоры, пытающиеся получить доступ одновременно, заблокирован, ожидание в состоянии ожидания.[1][2]

Можно выделить три случая, когда ожидание в режиме ожидания необходимо, удобно или неудобно. Ожидание простоя необходимо при доступе к списку готовности на низком уровне. планирование операция. Ожидание простоя не обязательно, но удобно в случае критического участка для синхронизация /МПК операции, требующие меньше времени, чем переключатель контекста (выполнение другого процесс чтобы избежать простоя). Ожидание в режиме ожидания не очень удобно в случае критического раздела ядра для управление устройством, присутствует в монолитные ядра Только. А микроядро вместо этого приходится только на первые два из вышеперечисленных случаев.

В многопроцессорной системе большинство конфликтов ядро -уровневые конфликты из-за доступа к критическим разделам уровня ядра и, следовательно, генерируемые ими периоды ожидания простоя имеют большое влияние на снижение производительности. Это время ожидания простоя увеличивает среднее количество простаивающих процессоров и, таким образом, уменьшает масштабируемость и относительная эффективность.

Аналитические исследования

Принимая в качестве параметров средний временной интервал, затраченный процессор в критических секциях уровня ядра (L, для времени в заблокированном состоянии), и средний интервал времени, затрачиваемый процессором на выполнение задач вне критических секций (E),[1] Соотношение L / E имеет решающее значение при оценке блокировки программного обеспечения.

Типичные значения для L / E диапазон от 0,01 до 0,1.[3] В системе с L / E коэффициент 0,05, например, если имеется 15 ЦП, ожидается, что в среднем 1 ЦП всегда будет бездействовать;[3] с 21 процессором 2,8 будет простаивать;[4] с 40 процессорами 19 простаивают; с 41 процессором 20 будут простаивать.[3] Следовательно, добавление в эту систему более 40 процессоров было бы бесполезно. В общем, для каждого L / E значение, существует порог максимального количества полезных процессоров.

Снижение программной блокировки

Чтобы снизить снижение производительности программной блокировки до разумных уровней (L / E между 0,05 и 0,1), ядро ​​и / или операционная система должны быть спроектированы соответствующим образом. По идее, наиболее правильным решением является разложение каждой структуры данных ядра на более мелкие независимые подструктуры, у каждой из которых будет более короткое время разработки. Это позволяет более чем одному процессору получить доступ к исходной структуре данных.

Много однопроцессор системы с домены иерархической защиты по оценкам, до 50% времени тратится на выполнение операций в «режиме супервизора». Если бы такие системы были адаптированы для многопроцессорность установив блокировку при любом доступе к "состоянию супервизора", L / E легко было бы больше 1,[3] в результате получается система с такой же пропускной способностью, что и однопроцессор, несмотря на количество процессоров.

Смотрите также

Примечания

  1. ^ а б c d Мэдник 1968, стр.19
  2. ^ Зальцер, Джером Управление движением в мультиплексной компьютерной системе MIT Project MAC MAC-TR-30 июня 1966 г.
  3. ^ а б c d Мэдник 1968, стр.20
  4. ^ Рейнор 76, стр.62

Рекомендации

дальнейшее чтение

  • Роджерс, Дэвид П. (1985) Улучшения в конструкции многопроцессорной системы ACM SIGARCH Архив новостей компьютерной архитектуры Том 13, выпуск 3 (июнь 1985 г.) Содержание Специальный выпуск: Труды 12-го ежегодника Международный симпозиум по компьютерной архитектуре (ISCA '85) Страниц: 225 - 231 Год издания: 1985 ISSN  0163-5964. Также опубликовано в International Symposium on Computer Architecture, Proceedings of the 12th ежегодного международного симпозиума по компьютерной архитектуре, 1985, Бостон, Массачусетс, США.
  • Йорг Кордсен, Вольфганг Шредер-Прейкшат На пути к масштабируемой архитектуре ядра В: Материалы технической конференции Openforum осенью 1992 года. С. 15–33, Утрехт, Нидерланды, 23–27 ноября 1992 г.