В. Столлингс - Операционные системы (1114679), страница 97
Текст из файла (страница 97)
Процессор сперва исследует локальную ред, оче дь, тем самым юритет связанным с ним потокам перед не связанн . р ро анными. П имером связанных :ов может служить использование одного или неск л . Ро и нескольких процессоров дл п~я процессов, являющихся частью операционной систе . Друтим ой системы. Друтим прим отся потоки одного приложения, распределенные . жду р ые ме ядом процессо ~ичии соответствующего дополнительного программ аммного обеспечения подд я обсуждающееся ниже бригадное планирование. Часть 4. Плани Бригадное планирование Концепция одновременного выполнения множества процессов на множестве процессоров предшествует использованию потоков.
В [ЮХЕ803 эта концепция на звана групповым планированием, и там же перечислены ее основные достоинства. ° Если тесно связанные процессы выполняются параллельно, блокирование, вызванное синхронизацией, снижается„кроме того, требуется меньше пере ключений процессов. В целом это приводит к повышению производительно сти процесса. ° Накладные расходы„связанные с планированием, уменьшаются, поскольку одно решение влияет одновременно на целый ряд процессов и процессоров. В многопроцессорной системе Ст"' используется термин сопланирование [соасЬейийпд) [ОЕНВ873. Сопланирование основано на концепции планирования связанного множества задач, отдельные элементы которого достаточно малы и, следовательно, близки к концепции потоков. Термин бригадное планирование (дапа всЬейи)1пй) применяется к одновременному планированию потоков, составляющих единый процесс [ГЕ1Т90Ь).
Оно необходимо для приложений с синхронизацией от среднезернистой до мелкозернистой, производительность которых резко падает, если какая-то часть приложения не работает, в то время как другие готовы к выполнению. Этот метод вполне применим и к другим приложениям с параллельными вычислениями, которые не настолько чувствительны в плане зависимости общей производительности от синхронизации работы потоков.
Бригадное планирование общепризнанно, и его реализации имеются во множестве многопроцессорных операционных систем. Один очевидный путь улучшения производительности отдельного приложения при бригадном планировании заключен в минимизации переключения процессов. Предположим, что один поток процесса выполняется и достигает точки синхронизации с другим потоком того же процесса. Если этот второй поток не выполняется, но готов к выполнению, то первый поток приостанавливается в ожидании, когда некоторым другим процессором не будет выполнено переключение процессов для запуска требующегося потока.
В приложении с тесно связанными потоками такие переключения существенно снижают производительность. Одновременное планирование сотрудничающих потоков может также сохранить время на выделение ресурсов. Например, ряд потоков при бригадном планировании может обращаться к файлу без дополнительных расходов на блокирование в процессе операций чтения/записи илИ позиционирования в файле. Использование бригадного планирования выдвигает требования по распределению процессоров.
Предположим, что у нас имеется Ф процессоров и М приложений, каждое из которых состоит из Ф или меньшего числа потоков. Тогда каждое приложение при использовании квантования времени может получить ЧМ доступного времени Ж процессоров. В [ГЕ1Т90а| замечено, что такая стратегия может оказаться неэффективной. Рассмотрим пример, в котором имеются два приложения, одно с четырьмя потоками, а второе — с одним. Использование Р~вномерного распределения времени приводит к потере 37.5% вычислительного Ресурса, поскольку при выполнении однопоточного приложения три процессора простаивают (см. Рис.
10.2). При наличии ряда однопоточных приложений они могут распределяться совместно для увеличения загрузки процессоров. Если это 1'лава 10. Многопроцессорное планирование и планирование... 515 Рааноиерное ппанироаание Группа 1 Рруппа 2 РЕ1 РЕ2 РЕ3 РЕ4 РЕ4 1,/2 172 37.5% по1ерь Рис. 10.2. Пример планирования групп, сос и из однова потока (РЕ1Т90а) ~зможно, вторым решением может стать пр 1я с учетом количества потоков каждого проц тырьмя потоками из нашего примера может нопоточное — только 207о (1/б), что привед „ного ресурса до 15%. Назначение процессоров Крайней формой бригадного планирова )СК891 назначение приложению групп проце о приложения. Таким образом, когда прило потоков назначается определенному процесс до завершения работы данного приложения.
Такой подход представляется очень неэффе :мени. Если поток приложения блокируется содимостью синхронизации с другим потоком кивает: многозадачность процессора в этом м й стратегии можно привести два соображения (. В высокопараллельной системе с десяткам дый из которых представляет собой лишь загруженность процессора не так важна, производительность.
а. Полное устранение переключений процес должно существенно повысить ее скорость В работах 1Т1)СК89, ЕАНО90) подтвержд ~с. 10.3 показаны результаты экспериментов а приложения (умножение матриц и быстрое 18 процессорами. Каждое приложение разби вторые реализовывались потоками в предела 1 были написаны таким образом, что поэзо ~льзуемых потоков. По существу, количест >иложением. Если потоков оказывалось мень 1лись в очередь и изымались из нее потокам онятно, что далеко не все приложения можно зом, но многие вычислительные задачи и ряд других приложений вп полне могут быть преобразованы таким образом.
0 2 3 4 5 6 7 6 9 10 11 12 13 14 15 16 17 16 19 20 21 22 23 24 Рис. 10.3. Ускорение приложений как функиия количества потоков (Т(7СКВ9) На рис. 10.3 показано ускорение работы приложений как функция от количества используемых потоков (которое в каждом приложении варьировалось от 1 до 24). Например, если оба приложения с 24 потоками каждое запускались одновременно, то ускорение их работы по сравнению с однопоточными приложениями составляло 2.8 для быстрого преобразования Фурье и 2,4 — для умножения матриц. На рисунке видно, что производительность обоих приложений снижается при количестве потоков, превышающем 8, и что максимальная производительность достигается тогда, когда общее количество потоков равно количеству процессоров. Большее количество потоков снижает производительность за счет необходимости вытеснения потоков и дополнительных операций планирования.
Снижение эффективности при этом определяется целым рядом Факторов — от времени, затрачиваемого на ожидание, когда приостановленный поток покинет критический раздел, до снижения эффективности кашей и времени, затраченного на переключение процессов. Авторы приходят к выводу, что эффективная стратегия состоит в ограничении об его щего количества активных потоков в системе 'количеством процессоров. Если больш шннство приложений либо однопоточные, либо могут использовать очереди заданий й, то такая стратегия обеспечивает эффективное использование процессоров. Как стратегия назначения процессоров, так и бригадное планирование решают зада эд чу планирования путем распределения процессоров. Однако можно заметить, что Рас пределение процессоров в многопроцессорной системе гораздо больше похоже на зада ад чу распределения памяти в однопроцессорной системе, чем на задачу планирования в о однопроцессорной системе.
Вопрос о том, сколько процессоров могут быть пРивлечены Р ечены к выполнению приложения в конкретный момент времени, аналогичен вопрос о Росу о том, сколько кадров страниц может быть предоставлено данному процессу в некоторый момент времени. В 1ОЕНВ87) предложен термин рабочее множество активнос ти (ас11ч1$у то1К1па эе1) аналогичныи рабочему множеству виртуальной ~амати к ти, как минимальное количество единиц активности (потоков), которое должно Рл лава 10. Многопроцессорное планирование и планирование...,6~~7 Еще одной характеристикой задач реального времени является их перно вость.
Непериодические задачи имеют предельные сроки начала или конца ,ты ~или и те, и другие); в периодических задач требования могут быть ука 1 в виде "один раз за период 7'" или "точно за Т единиц времени". рактеристики операционных систем реального времени Операционные системы реального времени должны удовлетворять следу|о а требованиям ~МОВО921„. детерминизм; чувствительность; управление со стороны пользователя; надежность; восстановление после сбоев. Операционная система детерминирована, если она выполняет операции в званное, предопределенное время или в пределах предопределенных интер жени.