Здавалка
Главная | Обратная связь

ГЕТЕРОГЕННАЯ МНОГОЯДЕРНАЯ ОПЕРАЦИОННАЯ СИСТЕМА: АРХИТЕКТУРА, ПОДХОДЫ, ПРЕИМУЩЕСТВА



Реферат

 

по дисциплине «Языки программирования»

на тему: «Гетерогенные архитектуры. Суперкомпьютеры»

 

 

Студент: Евдокимов Роман Борисович

 

Специальность: Компьютерная безопасность

 

Группа М-35

Преподаватель: Желтов Сергей Александрович

 

 

Тверь 2012

Содержание

3 – Введение

4 – Гетерогенная многоядерная операционная система

8 – SMP архитектура

9 – MPP архитектура

10 – NUMA архитектура

11 – Суперкомпьютеры

13 – Вывод

14 – Список литературы

Введение

В данной работе я рассмотрю преимущества и недостатки гетерогенных архитектур и гибридных систем, а также попробую в общих чертах рассмотреть понятие суперкомпьютера.

ГЕТЕРОГЕННАЯ МНОГОЯДЕРНАЯ ОПЕРАЦИОННАЯ СИСТЕМА: АРХИТЕКТУРА, ПОДХОДЫ, ПРЕИМУЩЕСТВА

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

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

Технологии современных компьютеров и процессорных устройств, а также тенденции и перспективы их развития предполагают разработку и использование новых технологий организации вычислений. И, видимо, они будут представлять собой симбиоз технологий организации вычислений на центральных процессорных устройствах, массивно-параллельных и иных специализированных процессорах, технологий параллельных и распределенных вычислений, а также сетевых технологий. Постепенный массовый переход на многоядерные процессорные устройства является новым поводом к пересмотру архитектуры операционной системы, в которой нужно учесть как накопленный опыт в теории операционных систем, так и накопленные инновации в архитектуре процессоров и тенденции их дальнейшего развития. Архитектура гетерогенной многоядерной операционной системы родилась в ответ на изменение архитектуры компьютерных систем и разрабатывалась с учетом выявленных тенденций их дальнейшего развития.

Основной идеей положенной в архитектуру гетерогенной многоядерной операционной системы является разделение традиционного централизованного монолитного ядра на децентрализованное множество микроядер, обладающих высокой степенью автономности. При этом общий объем оперативной памяти компьютерной системы также разделяется между микроядрами.

Одним из ключевых принципов, используемых при проектировании и реализации ядра гетерогенной многоядерной операционной системы, является принцип минимализма. Этот принцип был окончательно сформулирован Йоханом Лидтке, который утверждал, что «функционал должен реализовываться в микроядре, только если его реализация вне микроядра, то есть реализация аналогичного функционала за пределами ядра, предотвращает реализацию некоторой необходимой функциональности системы».

Другой принцип, используемый в архитектуре ядра, предлагает рассматривать ядро операционной системы как драйвер процессора. Согласно этому принципу:

1. Ядро рассматривает компьютерную систему только как подсистему процессор-память.

2. Ядро полностью скрывает от остального программного обеспечения подробности реализации всех частей процессора и входящих в его состав компонентов.

3. Определенное ядро операционной системы может быть оптимизировано для определенного процессора.

4. Операционная система поставляется с набором ядер.

Основные функции, выполняемые экспериментальным ядром гетерогенной многоядерной операционной системы, включают обработку исключений и прерываний, реализацию многозадачности, базовое управление памятью и аппаратным обеспечением, организацию межзадачной и межъядерной коммуникации.

Новой функцией, привносимой архитектурой многоядерной операционной системы, является межъядерная коммуникация. Эффективная межъядерная коммуникация может быть реализована только с одновременным использованием двух типов коммуникационных каналов, построенных на базе оперативной памяти с единым адресным пространством, характерной для многоядерных и многопроцессорных систем:

• коммуникационного канала для одноадресной передачи данных между двумя ядрами операционной системы;

• широковещательного коммуникационного канала для реализации общесистемных извещений.

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

Реализация межъядерной коммуникации предполагает внесение в классическую модель коммуникации, состоящую из таких элементов, как участники коммуникации, канал и сообщение, еще одного элемента – области коммуникации. Данный элемент необходим для определения множества доступных участников и служит глобальным описателем существующих в системе коммуникационных каналов. В связи с тем что структура данных, представляющая область коммуникации, совместно используется всеми ядрами ОС в системе, она потенциально является одним из наиболее слабых мест в системе с точки зрения отказоустойчивости и может существенно ограничить динамическую гибкость операционной системы. Данное обстоятельство делает обоснованной динамическую распределенную реализацию данной структуры данных.

Реализация межъядерной коммуникации в архитектуре гетерогенной многоядерной операционной системы предполагает, что участники коммуникации на макроуровне будут представлены ядрами операционной системы и на микроуровне – представлены задачами. Специальная роль коммуникационного сервера была включена в архитектуру гетерогенной многоядерной операционной системы. Задача, которая играет эту роль, представляет ядро непосредственно во время межъядерной коммуникации, и, соответственно, получает все сообщения, передающиеся ядру, и переправляет их задачам, исполняющимся в контексте ядра. Необходимо отметить, что роль коммуникационного сервера может быть динамически передана от одной задачи к другой.

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

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

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

Давайте предположим, что одно из ядер операционной системы содержит некоторую ошибку, которая в какой-то момент времени приводит к краху ядра. Сразу же после того, как крах был зафиксирован ядром, оно переключается в режим паники ядра. В этом режиме ядро извещает систему о своем крахе и зацикливает само себя (чтобы сделать пример более простым и наглядным, мы опустили некоторые детали). Отметим, что при этом кадр памяти разрушенного ядра все еще содержит полный снимок данных, принадлежащих отказавшему ядру и всем задачам, который работал в его контексте. Остальная часть системы после этого получения сообщения о панике решает, какое из все еще работающих ядер предоставит услугу восстановления для разрушенного ядра. Ядро, которое в результате было выбрано в качестве сервера восстановления, уведомляет об этом специальные службы восстановления, выполняющуюся в непривилегированном режиме, о произошедшем крахе и запрашивает у задачи, играющей роль менеджера физической памяти, специальный доступ к кадру памяти отказавшего ядра. Наконец, служба восстановления обеспечивает восстановление ядра в соответствии с определяемой пользователем политикой. Возможные варианты восстановления могут быть следующими:

• игнорирование краха ядра;

• захват памяти, принадлежавшей отказавшему ядру, и возврат этой памяти в обращение путем добавления к кадру памяти работающего ядра;

• обеспечение интерактивного анализа дампа памяти отказавшего ядра и его отладки;

• сохранение дампа в файл для будущего анализа;

• миграция задач из отказавшего ядра в любое работающее ядро;

• фиксирование ошибки на лету для изменения поведения всей системы;

• перезапуск разрушенного ядра с потерей состояния;

• перезапуск разрушенного ядра с сохранением состояния.

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

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

Наряду с уже упомянутыми преимуществами предложенная архитектура гетерогенной многоядерной операционной системы обладает рядом уникальных свойств, которые не могут быть продемонстрированы современными операционными системами.

Первым таким преимуществом является естественная портируемость и поддержка гетерогенных компьютерных систем, которые выступают в роли очень перспективного направления дальнейшего развития компьютерных систем. Можно отметить такие проекты, разработанные в этой области, как процессор IBM Cell и проект гибридного ноутбука, включающего и x86 и ARM-процессор одновременно.

Также перспективные системы на базе FPGA, имеющие возможность динамически формировать специализированные процессорные ядра, оптимизированные для решения определенного спектра задач, потребуют возможности быстрого динамического введения в (выведения из) состав операционной системы ядра операционной системы и другого программного обеспечения.

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

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

SMP-архитектура

SMP (symmetric multiprocessing) – симметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами.

Память служит, в частности, для передачи сообщений между процессорами, при этом все вычислительные устройства при обращении к ней имеют равные права и одну и ту же адресацию для всех ячеек памяти. Поэтому SMP-архитектура называется симметричной. Последнее обстоятельство позволяет очень эффективно обмениваться данными с другими вычислительными устройствами. SMP-система строится на основе высокоскоростной системной шины, к слотам которой подключаются функциональные блоки типов: процессоры (ЦП), подсистема ввода/вывода (I/O) и т. п. Для подсоединения к модулям I/O используются уже более медленные шины. Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции на базе процессоров Intel. Вся система работает под управлением единой ОС, которая автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

Основные преимущества SMP-систем:

· простота и универсальность для программирования. Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают независимо друг от друга. Однако можно реализовать и модели, использующие межпроцессорный обмен. Использование общей памяти увеличивает скорость такого обмена, пользователь также имеет доступ сразу ко всему объему памяти. Для SMP-систем существуют довольно эффективные средства автоматического распараллеливания;

· простота эксплуатации. Как правило, SMP-системы используют систему кондиционирования, основанную на воздушном охлаждении, что облегчает их техническое обслуживание;

· относительно невысокая цена.

Недостатки:

· системы с общей памятью плохо масштабируются.

Этот существенный недостаток SMP-систем не позволяет считать их по-настоящему перспективными. Причиной плохой масштабируемости является то, что в данный момент шина способна обрабатывать только одну транзакцию, вследствие чего возникают проблемы разрешения конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям общей физической памяти. Вычислительные элементы начинают друг другу мешать. Когда произойдет такой конфликт, зависит от скорости связи и от количества вычислительных элементов. В настоящее время конфликты могут происходить при наличии 8-24 процессоров. Кроме того, системная шина имеет ограниченную (хоть и высокую) пропускную способность (ПС) и ограниченное число слотов. Все это очевидно препятствует увеличению производительности при увеличении числа процессоров и числа подключаемых пользователей. В реальных системах можно задействовать не более 32 процессоров. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. При работе с SMP-системами используют так называемую парадигму программирования с разделяемой памятью (shared memory paradigm).

MPP-архитектура

MPP (massive parallel processing) – массивно-параллельная архитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена. В этом случае система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти (ОП), коммуникационные процессоры (рутеры) или сетевые адаптеры, иногда – жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры. Доступ к банку ОП из данного модуля имеют только процессоры (ЦП) из этого же модуля. Модули соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами. Используются два варианта работы операционной системы (ОС) на машинах MPP-архитектуры. В одном полноценная операционная система (ОС) работает только на управляющей машине (front-end), на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная UNIX-подобная ОС, устанавливаемая отдельно.

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

Недостатки:

· отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами;

· каждый процессор может использовать только ограниченный объем локального банка памяти;

· вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально использовать системные ресурсы. Именно этим определяется высокая цена программного обеспечения для массивно-параллельных систем с раздельной памятью.

При работе с MPP-системами используют так называемую Massive Passing Programming Paradigm – парадигму программирования с передачей данных (MPI, PVM, BSPlib).







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.