Программная блокировка
![]() | Эта статья требует внимания эксперта в области вычислительной техники . смотрите на странице обсуждения Подробности ( июнь 2015 г. ) |
В многопроцессорных компьютерных системах программная блокировка является проблемой снижения производительности из-за времени простоя, затрачиваемого процессорами в критических ядра уровня секциях . Программная блокировка является основной причиной ухудшения масштабируемости многопроцессорной системы, ограничивая максимально полезное количество процессоров. Чтобы смягчить это явление, ядро должно быть спроектировано так, чтобы критические секции были как можно короче, поэтому каждая структура данных разбивается на более мелкие подструктуры.
Критические разделы уровня ядра [ править ]
В большинстве многопроцессорных систем каждый процессор планирует и контролирует себя, поэтому процессора-супервайзера нет. [1] ядра а структуры данных являются глобально общими; разделы кода, которые обращаются к этим общим структурам данных, являются критическими разделами . Этот выбор конструкции сделан для улучшения масштабируемости, надежности и модульности. [1] Примерами такой структуры данных ядра являются список готовности и каналы связи .
«Конфликт» возникает, когда несколько процессоров одновременно пытаются получить доступ к одному и тому же ресурсу (части памяти). Чтобы предотвратить критические гонки и несогласованность , только одному процессору ( ЦП ) в данный момент разрешен доступ к определенной структуре данных (части памяти), в то время как другие ЦП, пытающиеся получить доступ в то же время, блокируются и находятся в состоянии ожидания. . [1] [2]
Можно выделить три случая, когда такое простое ожидание либо необходимо, либо удобно, либо не удобно. Ожидание простоя необходимо, когда осуществляется доступ к списку готовности для операции планирования низкого уровня . Ожидание простоя не является необходимым, но удобно в случае критического участка для операций синхронизации / IPC , которые требуют меньше времени, чем переключение контекста (выполнение другого процесса , чтобы избежать ожидания простоя). Вместо этого ожидание простоя не удобно в случае критической секции ядра для управления устройствами , присутствующей только в монолитных ядрах . подходит Вместо этого микроядро только для первых двух из вышеперечисленных случаев.
В многопроцессорной системе большинство конфликтов являются конфликтами на уровне ядра из-за доступа к критическим секциям уровня ядра, и, таким образом, периоды ожидания простоя, генерируемые ими, оказывают серьезное влияние на снижение производительности. Это время простоя увеличивает среднее количество простаивающих процессоров и, таким образом, снижает масштабируемость и относительную эффективность .
Аналитические исследования [ править ]
![]() | Этот раздел необходимо обновить . ( июнь 2015 г. ) |
Принимая в качестве параметров средний интервал времени, затрачиваемый процессором в критических секциях уровня ядра ( 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] в результате получается система с той же пропускной способностью, что и у однопроцессора, несмотря на количество процессоров.
См. также [ править ]
- Закон Амдала
- Проблемы зависимостей на суперскалярных архитектурах
- Управление параллелизмом § Механизмы управления параллелизмом
- Расписание транзакций базы данных § Сериализуемый
- Сериализуемость
Примечания [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с д Мэдник 1968, стр.19.
- ^ Зальцер, Джером (июнь 1966 г.). Управление дорожным движением в мультиплексной компьютерной системе (PDF) (доктор философии). Проект MIT MAC MAC-TR-30.
- ↑ Перейти обратно: Перейти обратно: а б с д Мэдник 1968, стр.20.
- ^ Рейнор 76, стр.62
Ссылки [ править ]
- Мэдник, Стюарт Эллиот [1] (1968) Блокировка многопроцессорного программного обеспечения [2] Материалы 23-й национальной конференции ACM 1968 года, стр. 19–24.
- М. Дюбуа, Ф. Бриггс. Эффективность выполнения параллельных асинхронных алгоритмов. Транзакции IEEE на компьютерах, ноябрь 1991 г. (том 40, № 11), стр. 1260–1266.
- Рэнди Дж. Рейнор, Джон М. Гвинн-младший. Минимизация конфликта супервизора для многопроцессорных компьютерных систем. Дайджест моделирования ACM SIGSIM. Том 7, выпуск 4 (июль 1976 г.). стр. 61 – 69
Дальнейшее чтение [ править ]
- Роджерс, Дэвид П. (1985) Улучшения в проектировании многопроцессорных систем ACM SIGARCH Компьютерная архитектура Архив новостей Том 13, выпуск 3 (июнь 1985 г.) оглавление Специальный выпуск: материалы 12-го ежегодного Международного симпозиума по компьютерной архитектуре (ISCA '85) Страницы : 225 - 231 Год издания: 1985 г. ISSN 0163-5964 . Также опубликовано в Международном симпозиуме по компьютерной архитектуре, Труды 12-го ежегодного международного симпозиума по компьютерной архитектуре, 1985, Бостон, Массачусетс, США.
- Йорг Кордсен, Вольфганг Шредер-Прейкшат На пути к масштабируемой архитектуре ядра в: Материалы технической конференции Openforum осенью 1992 года. стр. 15–33, Утрехт, Нидерланды, 23–27 ноября 1992 г.