Курсовая работа: Многопроцессорные системы Операционные системы UNIX

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

Идея перехода на многоядерные процессоры появилась недавно, примерно начиная с 2005 года, но она не нова. Еще в далекие 60-е годы преимущества нескольких процессорных ядер перед одним обосновал Сеймур Крей, затем он реализовал свой замысел в суперкомпьютере CDC 6600. Но в силу консервативности взглядов проектировщиков дальнейшего развития этот подход к проектированию центрального процессорного устройства не получил.

Возрождение многоядерности произошло благодаря инженерам корпорации Digital Equipment. Во второй половине 90-х задумались о многоядерности в микропроцессорах; это произошло при переходе процессора от Alpha 21164 (EV5) к Alpha 21264 (EV6). Тогда исследователям удалось установить две важные закономерности, распространяющиеся на процессоры. Во-первых, оказалось, что для линейного роста производительности монолитных (одноядерных) процессоров требуется обеспечить квадратичный рост числа транзисторов. Во-вторых, как следствие, также нелинейно возрастет сложность проектирования. Элементарное рассуждение подсказывает, что суммирование производительности нескольких ядер даст ту же совокупную производительность, что и одно ядро при меньшем числе транзисторов. Вопрос в том, как объединить мощности отдельных ядер, в этом состоит коренная проблема многоядерности. Реакцией на обнаруженные проблемы стал проект Piranha, предполагавший создание 8-ядерного процессора, где каждое ядро должно было иметь отдельную кэш-память для команд и данных, для совместной работы процессоры объединялись коммутатором. Однако после перехода в ведение Compaq проект Piranha был похоронен, процессор так и не был реализован.

Параллельно с проектом Piranha группа исследователей из Стэндфордского университета во главе с Кунле Олокотуном работала над «многоголовым процессором» Hydra. В качестве ядра использовался процессор MIPFS 4600. Работа дала хорошие результаты. Впоследствии Sun Mirosystems купила эту компанию и, заменив ядро MIPFS 4600 на UltraSPARC II и увеличив число ядер вдвое, выпустила экспериментальный процессор Niagara, получивший в серии наименование UltraSPARC T1.

Успеху Niagara способствовало то, что в Sun велась собственная разработка двухъядерного процессора MAJC 5200, где каждое ядро способно обрабатывать четыре потока команд. Процессор UltraSPARC T1 является конвергенцией Hydra и MAJC 5200.

У IBM разработки многоядерных процессоров заметно связаны с производством игр. Так, процессор Xenon предназначен для игровой консоли. Другой проект, Cell, включает двухпотоковое ядро SMT Power и восемь ядер, которые называют синергетическими процессорными элементами (Synergistic Processing Element, SPE), работающими по принципу SIMD. Основное ядро Power выполняет команды из системы команд PowerPC, поддерживая специализированную систему команд SPE. С очевидным опозданием свои предложения сделали корпорации AMD и Intel: борьба на многоядерном поле стала и для производителей процессоров архитектуры x86 одним из самых актуальных вопросов сегодняшнего дня.


1.2. Общая структура многопроцессорной системы

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

На рис.2 показана общая структура МП-системы: связанная архитектура с общей памятью с распределенной обработкой данных и прерываний ввода-вывода. Она полностью симметрична; т. е. все процессоры функционально идентичны и имеют одинаковый статус, и каждый процессор может обмениваться с каждым другим процессором. Симметричность имеет два важных аспекта: симметричность памяти и ввода-вывода.

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

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

Рис.2 Архитектура многопроцессорной системы.

Основные компоненты

Системные процессоры . В целях обеспечения совместимости с существующими программными средствами, спецификация основывается на процессорах семейства Intel 486 или Pentium. Хотя все процессоры в МП-системе функционально идентичны, спецификация выделяет два их типа: загрузочный процессор(BSP) и прикладные процессоры(AP). Какой процессор играет роль загрузочного, определяется аппаратными средствами или совместно аппаратурой и BIOS. Это сделано для удобства и имеет значение только во время инициализации и выключения. BSP-процессор отвечает за инициализацию системы и за загрузку ОС. AP-процессор активизируется после загрузки ОС.

Контроллеры APIC. Данные контроллеры обладают распределенной архитектурой, в которой функции управления прерываниями распределены между двумя функциональными блоками: локальным и ввода-вывода. Эти блоки обмениваются информацией через шину, называемую шиной коммуникаций контроллера прерываний. Блоки APIC совместно отвечают за доставку прерывания от источника прерываний до получателей по всей МП-системе.

Системная память . В системах, совместимых с МП-спецификацией, используется архитектура памяти стандарта AT: вся память используется как системная за исключением адресов, зарезервированных под устройства ввода-вывода и BIOS.

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

Шина расширения ввода-вывода . Спецификация обеспечивает построение МП-систем на основе платформ PC/AT, отвечающих промышленным стандартам. В проектах могут быть использованы стандартные шины ISA, EISA, MCA, VL и PCI. BIOS выполняет функции слоя, изолирующего особенности аппаратных средств от ОС и программных приложений. В многопроцессорных системах BIOS выполняет следующие функции: проверяет системные компоненты; строит таблицы конфигурации, используемые ОС; инициализирует процессор и всю остальную систему; дополнительно: передает информацию о конфигурации в ОС, которая идентифицирует все процессоры и другие компоненты МП-систем; переводит все процессоры и другие компоненты многопроцессорной системы в заданное состояние. Одна из главных целей этой спецификации состоит в том, чтобы обеспечить возможность построения микроядерных ОС для многопроцессорных систем.

1.3. Спецификация аппаратных средств многопроцессорной системы

Для того чтобы ОС могла работать на многопроцессорных платформах, аппаратные средства должны обладать определенным набором свойств.

Конфигурация системной памяти. Спецификация МП-памяти основывается на стандартной карте памяти РС/АТ размером до 4 ГБайт.

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

Управление памятью (блокировка) . Для защиты целостности некоторых критических операций с памятью Intel-совместимые процессоры используют специальный сигнал. Разработчики системных программных средств должны использовать этот сигнал для управления доступом процессоров к памяти.

Для гарантии AT-совместимости блокировка некорректных операций с памятью в AT-совместимых шинах в согласованной системе должна реализовываться строго в соответствии со спецификациями на шины.

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

Управление прерываниями . В МП-совместимой системе прерывания управляются контроллерами APIC используя по одному локальному блоку на процессор. Число блоков ввода-вывода должно быть не менее одного.

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

1. Режим PIC эффективно обходит все компоненты APIC и заставляет систему функционировать в Однопроцессорном режиме.

К-во Просмотров: 309
Бесплатно скачать Курсовая работа: Многопроцессорные системы Операционные системы UNIX