curs_6_Planificarea _SMP_ru_2012.ppt
- Количество слайдов: 39
КУРС “Распределенные операционные системы” Глава 6. Планирование процессов в мультипроцессорной системе. Часть 4. Aurelia Prepelita, conf. univ. , dr. , Catedra TP, USM Chisinau, 2010
Оглавление: Глава 6. Планирование процессов в мультипроцессорной системе. Часть 4. § § Зернистость синхронизации Планирование процессов в многопроцессорных ОС § Назначение процессов процессорам § Общая очередь процессов для всех процессоров § Архитектура равноправные процессоры § Архитектура ведущий/ведомый § Многозадачность отдельных процессоров § Планирование процессов § Планирование потоков § Разделение загрузки § Бригадное планирование § Назначение процессоров § Динамическое планирование
Зернистость синхронизации Зернистость cинхронизации (параметр) – частота синхронизации между отдельными процессорами в системе.
Зернистость синхронизации
Планирование процессов в многопроцессорных ОС включает три вопроса: - Назначение процессов процессорам: - планирование процессов, обычно общая очередь или несколько - планирование потоков: распределение загрузки (общая очередь), - бригадное планирование (связные потоки одновременно), - назначение процессоров. - Использование многозадачности на отдельном процессоре. - Диспетчеризация процесса.
Назначение процессов процессорам Если процесс назначается одному процессору постоянно – от момента активации и до его завершения, - то для каждого процессора следует поддерживать отдельную краткосрочную очередь (статическое распределение). ПРи таком подходе: - уменьшенны накладные расходы и - позволяет применение групповой (group) и бригадной (gang) стратегии.
Общая очередь процессов для всех процессоров: Все процессы попадают в глобальную очередь и передаются для выполнения любому свободному процессору. В течении жизни процесс может в разное время выполняться на разных процессорах (стоимость планирования не повышается – в SMP контексты всех процессов доступны всем процессорам).
Равноправные процессоры, ведущий/ведомый Используются два основных подхода к назначению процессов процессорам: Равноправные процессоры, Ведущий/ведомый. В случае архитектуры ведущий/ведомый ключевые функции ОС всегда выполняются на одном специально выделенном процессоре, остальные процессоры выполняют пользовательские приложения.
Архитектура ведущий/ведомый Ведущий процессор отвечает за: - планирование заданий; когда активный процесс на ведомом процессоре требует определенного обслуживания (например, осуществляет в/в), он должен послать запрос ведущему процессору и ожидать завершения сеанса. Это простой подход и требует неборльшие изменения в однопроцессорную многозадачную ОС. Упращается разрешение конфликтов, т. к. 1 процессор - управляет всей памятью - Ресурсами в/в 2 недостатка: - Сбой ведущего процессора приводит к неработоспособности всей системы в целом; - Ведущий прoцессор превращается в узкое место системы, определяющей ее производительность в целом.
Архитектура равноправных процессоров ОС может выполнятся на любом из процессоров и каждый процессор самостоятельно планирует свою работу, беря процессы для выполнения из общего очереди. Здесь должна быть применена технология, использующаяся для разрешения конфликтов и синхронизации запросов к ресурсам, т. к. необходимо гарантировать что: - 2 процессора не выберут один и тот же процесс для выполнения - не будет никаких потерь из очереди.
Архитектура равноправных процессоров Существуют и ряд других подходов: - ОС может быть выделено несколько процессоров - возможно использование системы приоритетов для отделения процессов ядра от прочих процессов
Многозадачность отдельных процессоров Известно что использование процессора в однозадачном режиме (при статическом планировании), при том, что процесс может обращаться к устройствам в/в, является попросту расточительным.
Многозадачность отдельных процессоров В многопроцессорных системах , работающих с независимыми процессами или с большим зерном синхронизации каждый процессор должен быть многозадачным. Для приложений со средней зернистостью при доступности множества процессоров правило махимальной загруженности процессора перестает быть первостепенным. Вместо этого первостепенную важность приобретает обеспечение махимальной средней производительности приложений. Приложение состоящей из множества потоков может плохо работать пока потоки не получат возможность одновременного выполнения.
Многозадачность отдельных процессоров При рассмотрении многопроцессорных систем более простой подход может оказаться более эффективным в силу уменьшения накладных расходов.
Планирование процессов В большинстве традиционных многопроцессорных систем назначение процессов процессорам отсутвует, но используется общая очередь для всех процессоров, либо множество очередей с разными приоритетами. В любом случае можно рассматривать систему как очередь с несколькими серверами.
Многозадачность отдельных процессоров При рассмотрении многопроцессорных систем более простой подход (FCFS) может оказаться более эффективным в силу уменьшения накладных расходов. На рис. проведено сравнение FCFS и RR, а также FCFS и SRT в системе с одним процессором (а) и с двумя процессорами (б), в которой каждый процессор обладает производительностью, в 2 раза меньшей чем производительность процессора в однопроцессорной системе. Квант времени при RR больше по сравнению с затратами на переключение контекстов задач и малым по сравнению со временем обслуживания, которое и было обьектом исследования. Коэффициент вариации отражаетразницу во времени обслуживания разных процессов. Ci=0 – отсутвие вариации времени обслуживания, чем больше Ci тем больше отклонение отдельных значений времени обслуживания от среднего. (Сi может превысить значение 5)
Многозадачность отдельных процессоров ПРи наличии 2 процессоров длинный процесс не так сильно влияет на систему в целом, поскольку другие процессы могут использовать второй процессор. Влияние выбора стратегии планирования на производительность при наличии 2 процессоров существенно меньше, чем при наличии лишь одного. С ростом количества процессоров рассматриваемое влияние уменьшается. Следовательно, FCFS можно успешно применять в многопроцессорной системе.
Планирование потоков В однопроцессорной системе потоки могут использоваться для структуризации программ и с целью перекрытия в/в вычислительной работой. Если различные потоки одного приложения выполняются одновременно на разных процессорах, можно достичь резкого повышения производительности.
Планирование потоков В приложении с интенсивным взаимодействием потоков (среднезернистая синхронизация) небольшие различия в стратегии управления потоками и их планирования могут привести к существенному изменению производительности.
Планирование потоков Среди множества вариантов планирования потоков в многопроцессорных системах и назначения процессов процессорам можно выделить четыре основных подхода: - Разделение загрузки (load sharing) - Бригадное планирование (Gang sheduling ) - Назначение процессоров - Динамическое планирование
Разделение загрузки Процессы не назначаются конкретным процессорам. Поддерживается глобальная очередь готовых потоков и каждый процессор в состоянии простоя выбирает поток из этой очереди. Термин разделение загрузки (load sharing) используется, чтобы отличать эту стратегию от схем со сбалансированной загрузкой, в которых работа распределяется на более постоянной основе.
Разделение загрузки Этот алгоритм наиболее простой подход, непосредственно переносимый из однопроцессорной среды. Достоинства: - загрузка равномерно распределяется между процессорами, обеспечивая отсутствие простоя процессоров при наличии работы - не требуется централизованный планировщик, процессор сам выполняет подпрограмму планирования ОС для выбора очередного потока - глобальная очередь может быть организована по любой рассмотренной схеме (однопроцессорная ОС)
Разделение загрузки FCFS 3 различные версии: - FCFS – при поступлении нового задания каждый из его потоков помещается в конец разделяемой очереди. Процессор выбирает очередной готовый поток и выполняет его до завершения либо до блокирования.
Разделение загрузки Выбор процесса с наименьшим числом потоков - Выбор процесса с наименьшим числом потоков. Разделяемая очередь готовых потоков – приоритетная, раивысший приоритет отдается потокам заданий с меньшим числом нераспланированных потоков. Задания с одинаковым приоритетом упорядовачиваются по времени поступления в систему. Поток выполняется до его завершения или блокирования.
Разделение загрузки Выбор процесса с наименьшим числом потоков с применением вытеснения - Выбор процесса с наименьшим числом потоков с применением вытеснения. Поступившие задания с меньшим, чем выполняющегося, количеством потоков вытесняют выполняющиеся потоки.
Разделение загрузки Исследования, с помощью имитационного моделирования, показали, что по большинству характеристик FCFS превосходит две остальные стратегии. Кроме того, некоторые виды бригадного планирования в целом превосходят разделение загрузки.
Разделение загрузки Недостатки: - центральная очередь занимает облать памяти, доступ к которой предполагает обеспечение взаимоисключений – это может стать узким местом, если несколько процессоров одновременно обратятся к очереди за порцией работы. Эта проблема может стать критической при наличии десятка либо сотни процессоров. - низкая вероятность того, что вытесненные потоки продолжат выполнение на тех же процессорах, снижает эффективность использования локальных кэшей процессоров - маловероятно что все потоки одной программы получили одновременный доступ к процессорам. При необходимости высокой степени координации между потоками программы это приводит к существенному снижению общей производительности приложения. Несмотря на потенциальные недостатки, это одна из наиболее часто используемых в современных многопроцессорных системах схем.
Разделение загрузки Mach усовершенствованноя схема разделения загрузки используется в ОС Mach. ОС поддерживает локальную очередь для каждого процессора (используется потоками, которые временно связанны с определенным процессором) и совмесно используемую глобальную очередь. ПРОцессор в первую очередь исследует локальную очередь, отдавая приоритет связанным с ним потоками перед не связаннами. ПРимером связанных потоков может служить: - использование одного или несколько процессоров для выполнения процессов ОС - потоки одного приложения, распределенные между рядом процессоров. ПРи дополнительном ПО поддерживается бригадное планирование.
Бригадное планирование Групповое планирование: - повышение производительности при планировании тесно связанных процессов выполняющиеся параллельно - накладные расходы связанные с планированием снижаются. Бригадное планирование (gang scheduling) - одновременное планирование потоков одного процесса (для приложений от среднезернистой до мелкозернистой синхронизации, производительность которых резко падает, если какая-то часть приложения не работает, в то время как другие готовы к выполнению). Также этот метод применим приложениям с параллельным вычислениями, не столь чувствительных от синхронизации. Бригадное планирование общеизвестно, и его реализации имеются во множестве многопроцессорных систем.
Бригадное планирование Путь улучшения производительности отдельного приложения: - минимизация переключения процессов - при синхронизации потоков, когда один поток приостанавливается в ожидании, когда другим процессором будет выполнено переключение процессов для запуска требующегося потока. - в приложении с тесно связанными потоками также переключения существенно снижают производительность. - Одновременное планирование сотрудничающих потоков может также сохранить время на выделение ресурсов. Например, ряд потоков при бригадном планировании может обращаться к файлу без дополнотельных расходов на блокирование в процессе операций чтения/записи или позиционирования в файле.
Бригадное планирование распределение процессоров Бригадное планирование выдвигает требования по распределению процессоров. Предположим что в системе N процессоров и М приложений, каждое из которых состоит из N или меньшего числа потоков. Тогда каждое приложение при использовании квантования времени может получить 1/М доступного времени N процессоров.
Бригадное планирование равномерное планирование Рассмотрим 2 приложения, одно с 4 потоками, второе с одним потоком. Использова ние равномерного распределения времени приводит к потере 37. 5% вычислительного ресурса, поскольку при выполнении однопоточного приложения 3 процесса простаивают.
Бригадное планирование Взвешанное планирование ПРи наличии ряда однопоточных приложений они могут распределяться совмесно для увеличения загрузки процессоров. Взвешанное планирование Если это невозможно, то вторыи решением может стать взвешанное планирование. В этом случае приложение с четырмя потоками может занять 80% всего времени, а однопоточное – только 20%, что приведет к снижению потерь вычислительного ресурса до 15%.
Назначение процессоров Крайней формой бригадного планирования – назначение приложению группы процессоров на все время работы данного приложения (каждый из потоков назначается при планировании определенному процессору, на котором он и выполняется до завершения работы данного приложения).
Назначение процессоров Такой подход представляется неэффективным в плане процессорного времени. Если поток приложения блокируется в/в или неоходимостью синхронизации с другим потоком, то процессор этого потока простаивает: многозадачность процессора в этом методе отстсвует.
Назначение процессоров Стратегия эффективна поскольку: - в высокопараллельной системе с десятками или сотнями процессоров, загруженность процессоров не так важна (каждый процессор представляет малую часть стоимости системы), но важна общая эффективность или производительность. - полное устранение переключений процессоров должно существенно повысить скорость работы программы.
Динамическое планирование Принципы планирования В ряде приложений количество потоков динамически изменяется в процессе их работы, что заставляет ОС изменять распределение во время работы приложения. Когда задача требует один или несколько процессоров (динамически) происходит следующее: 1. Для удовлетворения запроса используются простаивающие процессорв. 2. В противном случае, если запрос подается вновь, ей выделяется единственный процессор, забираемый у задачи, которая в настоящий момент использует более одного процессора.
Динамическое планирование Принципы планирования 3. Если часть запроса не удовлетворена, то запрос остается невыполненым до тех пор, пока: 1. Не появится свободной процессор, либо 2. Задача не снимет свой запрос (например не нужен больше лишний процессор). 3. При освобождении одного или нескольких процессоров сканируется текущая очередь не удовлетвореннвых запросов на процессоры: 1. Каждому заданию не имеющего ни одного процессора (ожидающего поступления в систему), назначается по одному процессору. 2. После этого, при наличии свободных процессоров, список сканируется вновь, распределяя оставшиеся процессы на основе стратегии FCFS.
Bibliografia 1. Столлингс Вильямс. Операционные системы. 2002. http: //williamstallings. com/OS 4 e. html