В. Столлингс - Операционные системы (1114679), страница 96
Текст из файла (страница 96)
Здесь должна быть применена технология, использующаяся для разрешения конфликтов и синхронизации запросов к ресурсам. Конечно, кроме этих крайностей„имеется ряд других подходов. Например, "ля работы операционной системы может быть выделен не один процессор, а несколько; возможно использование системы приоритетов для отделения процессов "лра от прочих процессов.
Использование многозадачности отдельных процессоров Когда каждый процесс назначается процессору статически на все время жизни, возникает новый вопрос: должен ли этот процессор быть многозадачным? На первый взгляд, такой вопрос кажется просто странным: ведь мы уже выяснили, что исполь- ~Хасть 4. Планы ~ лава 10. Многопроцессорное планирование и планирование... 609 Планирование потоков 1ланирование процессов Часть 4. План $10 е процессора в однозадачном режиме, при том, что процесс может обращаться «стройствам ввода-вывода, является попросту расточительным.
При рассмотрении традиционных многопроцессорных систем, работающих езавнсимыми процессами или с большим зерном синхронизации ~ем, «бл. 10,1), очевидно„что каждый отдельный процессор должен иметь возмож ость переключаться между процессами для повышения загруженности, а следо. ательно и производительности. Однако в случае использования приложений со \ Редней зернистостью синхронизации ситуация не столь ясна. При доступност® ножества процессоров правило максимально возможной загруженности проце„'.
эра перестает быть первостепенным; вместо этого первостепенную риобретает обеспечение максимальной средней производительности ий. Приложение, состоящее из множества потоков, может плохо ра ех пор, пока его потоки не получат возможность одновременного выпо Диспетчеризация процессов Последний конструкторский вопрос, связанный с многопроцессорным анием, является вопросом выбора процесса для выполнения.
Мы видели, озадачной системе с одним процессором использование приоритетов или лгоритмов, учитывающих время работы процессов, может существенно ~роизводительность системы по сравнению с использованием стратеги ришел — первым обслужен". При рассмотрении многопроцессорных си ~ростой подход может оказаться более эффективным в силу уменьшения асходов. В случае плып«рования потоков в действие вступают новые хар :и, которые могут оказаться более важными, чем приоритеты или истор ~ения.
Позже мы детально рассмотрим эти вопросы. В большинстве традиционных многопроцессорных систем назнач джессов процессорам отсутствует. Вместо этого используется общая оч ~сех процессов, либо — в случае применения схемы с учетом прио «ножество очередей. В любом случае мы можем рассматривать систем ~едь с несколькими серверами.
Рассмотрим систему с двумя пропессорами, в которой каждый прон, ~ает производительностью, в два раза меньшей, чем производительность 1 однопроцессорной системе. В 1ЯАБЕ8Ц проведено сравнение стратегии ~ия РСЛ> с круговым планированием и планированием на основе минималья 'ающегося времени выполнения. При круговом планировании квант вРе 'ачся большим по сравнению с затратами на переключение контекстов зад ~ым — по сравнению со временем обслуживания, которое и было 4'ьектом исследования. Полученные результаты в значительной степени 'ого„насколько велика разница во времени обслуживания разных процес ~ественно эту разницу можно выразить как коэффициент вариации С,. ', =0 соответствует отсутствию вариации времени обслуживания (время ~ения всех процессов одинаково).
увеличение значения С, соответствует ~ Значение С, вычиеляетсэ нак о',/Х;, где о, — стандартное отклоне ~бслуживания, а Т, — среднее время обслуживания. менчивости времени обслуживания, т.е. чем выше это значение, тем больше откло нения отдельных значений времени обслуживания от среднего.
Значения коэффици ента вариации, превыша«ощие б, не являются чем-то необычным для распределения времени обслуживания процессов. На рис. 10.1,а приведено сравнение пропускных способностей кругового планирования и планирования гСРЯ как функций коэффициента вариации С . Обратите внимание, что разница между ними существенно меньше в системах с двумя процессорами.
При наличии двух процессоров длинный процесс не так сильно влияет на систему в целом, поскольку другие процессы могут использо вать второй процессор. Аналогичные результаты можно увидеть и на рис. 10,1,6„ В работе 1ЯА1)ЕЯЦ такой же анализ был проведен для самых разных пред положений о степени многозадачности, соотношении количества процессов, ори ентированных на вычисления и на ввод-вывод, и использовании приоритетов. Общий вывод, сделанный в этой работе, следующий: влияние выбора стратегии планирования на производительность при наличии двух процессоров существенно меньше, чем при наличии лишь одного. Очевидно, что с ростом количества процессоров рассматриваемое влияние уменьшается.
Следовательно, простейшую стратегию ГСГЯ 1в том числе и в схеме со статическими приоритетами) можно вполне успешно применять в многопроцессорной системе. Как мы видели, в случае использования потоков концепция выполнения отделена от остальной части определения процесса. Приложение может быть реализовано как множество взаимодействующих потоков, выполняющихся параллельно в одном адресном пространстве. В однопроцессорной системе потоки могут использоваться для структуризации программы и с целью перекрытия операций ввода-вывода вычислительной работой.
Поскольку по сравнению с переключением процессов переключение потоков осуществляется с гораздо меньшими затратами, оно имеет преимущество в стоимости. Однако полная мощь потоков проявляется только в многопроцессорных системах, где потоки могут использоваться для достижения истинно параллельных вычислений в рамках одного приложения. Если Различные потоки одного приложения выполняются одновременно на разных процессорах, можно достичь резкого повышения производительности. Однако в приложении с интенсивным взаимодействием потоков (среднезернистая синхронизация) небольшие различия в стратегии управления потоками и их планирования могут привести к существенному изменению производительности ~А)Ч1)Е891.
Планирование потоков в многопроцессорных системах является областью интенсивных исследовательских работ; здесь же мы рассмотрим только ключевые вопросы данной темы и основные подходы при их решении. ~лава 10. Многопроцессорное плянирование и планирование... 53.1 Выбор процесса с наимень именьшим числом потоков. Разделяемая очередь гото вых к выполнению потоков организована как приоритетная, причем наи. высший приори е й т т отдается потокам тех заданий, у которых осталось наи меньшее число нераспланиро пла ированных потоков.
Задания с одинаковым при оритетом упорядочи ваются в соответствии со временем поступления в систему. Как и в случае ис о использования стратегии ГСГЭ, поток выполняе'гся до его го завершения или блокирования. Выбор процесса с наименьшим шим числом потоков с применением вытеснения. Наивысший приоритет получа лучают задания с наименьшим количеством не распланиро ванных потоков.
Поступившие задания с меньшим, чем полня ющегося, количество вом потоков вытесняют потоки, выполняющ настоящее время. Исследования, проведенные с помощью имитационного моделирован ли, что по большому количеству характеристик стратегия ГСГЯ превос остальные стратегии из приведенного списка. Кроме того, авторы обн что некоторые виды ригад б адного планирования, обсуждающиеся в след эазделе, в цело м превосходят разделение загрузки, которое имеет, к то недостатков. Центральная очередь занимает область памяти, доступ к которой производиться с о еспе б чением взаимоисключений. Следовательно, жет стать узким местом, если несколько р ц р и о ессо ов одновременн тятся к очереди за порци ' орцией работы.
При небольшом количестве пр ов эта проблема не является критической, но р п и наличии в систе сятков, а то и сотен процессоров затор в этом месте р д те п е ста совершенно реальным. Низкая вероятность того, что вытесняемые потоки продолжат вып на тех же процессорах, снижает эффективнос ть использования лок кэшей процессоров. Если все потоки рассматриваются как один щ у, об ий п л, малове чтобы все потоки одной программы получили од р нов еменный д процессорам.
При необходимости высокой с й тепени координации потоками программы это приводит к сущест твенном снижению е У производительности. Несмотря на потенциальные недостатки, это од на из наиболее часто мых в современных многопроцессорных системах схем. Усовершенствованная схема разделения загрузки исп у и использ ется в операци теме МасЬ [В1 АС90, %'ЕХ1)89). Операционная система поддерживает ло Редь для каждого процессора и совместно используемую глобальную оче ~ьная очередь используется потоками, которые вре. е в менно связаны с опред ~цессором.