Курсовая работа: Многопроцессорные системы Операционные системы UNIX
3. Режим симметричного ввода-вывода - позволяет работать с многими процессорами.
Отображение памяти APIC . В согласованной МП-системе все контроллеры APIC должны быть реализованы как описанные в памяти устройства ввода-вывода. Базовые адреса APIC находятся в верхней части адресного пространства памяти. Все локальные блоки отображаются в одних и тех же адресах, которые не подлежат коллективному использованию, а используются каждым процессором индивидуально. Контроллеры ввода-вывода отображаются так, чтобы обеспечить их совместное использование всеми процессорами(полную симметричность доступа).
Таймеры интервалов. Локальные блоки содержат 32-битный программируемый таймер с двумя независимыми входами. Таймеры блока ввода-вывода имеют один вход.
Поддержка перезагрузки. Для приведения всех систем компьютера в начальное состояние требуется возможность перезагрузки системы. В системе может выполняться "жесткая" перезагрузка, которая устанавливает все компоненты системы в начальное состояние (при включении питания)
"Мягкая" загрузка только частично инициализирует процессор.
Таблицы конфигурации МП-систем ОС должна иметь доступ к информации о конфигурации МП-системы. Предусмотрено два метода передачи этой информации в ОС: минимальный, позволяющий задать конфигурацию посредством выбора одного из нескольких подразумеваемых наборов значений параметров аппаратуры; и максимальный, обеспечиващий высокую гибкость при проектировании аппаратных средств за счет произвольных установок.
Функции BIOS в МП-системе . В зависимости от многопроцессорных компонентов в МП-системе BIOS может иметь следующие функции:
1. Перевод АР в "спящий" режим.
2. Инициализация контроллеров APIC и других МП-компонент.
3. Создание таблицы конфигурации МП-системы.
2. Операционные системы для работы с многопроцессорными системами
Операцио́нная систе́ма, ОС (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий интерфейс с пользователем, управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит. Важное свойство ОС является отсутствие или наличие в ней средств поддержки мно-гопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами. В наши дни становится общепринятым введение в ОС функций поддержки многопроцессор-ной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT и NetWare 4.1, Windows 7. Многопроцессорные ОС могут клас-сифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС.
Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам.
Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Это характеристики, связанные с управлением только одним типом ресурсов - процессором. Важное влияние на облик операционной системы в целом, на воз-можности ее использования в той или иной области оказывают особенности и других подсистем управления локальными ресурсами - подсистем управления памятью, файлами, устройствами ввода-вывода. Специфика ОС проявляется и в том, каким образом она реализует сетевые функции: распознавание и перенапра-вление в сеть запросов к удаленным ресурсам, передача сообщений по сети, выполнение удаленных запросов. При реализации сетевых функций возникают задачи, связанные с распределенным характером хранения и обработки данных в сети: ведение справочной информации о всех доступных в сети ресурсах и серве-рах, адресация взаимодействующих процессов, обеспечение прозрачности досту-па, тиражирование данных, согласование копий, поддержка безопасности данных.
2.1 Первые операционные системы для работы в многопроцессорной конфигурации
Первой операционной системой для многопроцессорных систем была
операционная система COS (Cray Operating System 1976 год) предназначеная для режима пакетной обработки и дистанционной пакетной обработки заданий, полученных с удаленных терминалов. Операционная система рассчитывалась на мультипрограммную обработку одновременно до 63 активных задач. Для обеспечения работы в режиме дистанционного доступа в качестве машины-сателлита вычислительной системы Cray-1 используется минимашина "Eclipse". С этой машиной связаны внешние каналы центрального вычислителя с помощью специальных сопрягающих устройств. На минимашину возлагаются функции управления приемом-передачей информации, управления линиями связи, т. е. функции процессора передачи данных.
Позднее была разработа Unicos — название нескольких вариантов операционной системы Unix, созданных компанией Cray для своих суперкомпьютеров. Unicos является следующей операционной системой компании после Cray Operating System (COS). Она обеспечивала работу сетевых кластеров и совместимость на уровне исходного кода с некоторыми другими разновидностями Unix. Unicos впервые была представлена в 1985 году, в качестве операционной системы суперкомпьютера Cray-2, а позднее была портирована и на другие модели Cray
Наиболее развитые ОС, такие как OS/360 (IBM), SCOPE (CDC) и завершённый уже в 1970-х годах MULTICS (МТИ и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.
Корпорация Be Inc. была создана в 1990 году бывшим исполнительным директором Apple Жаном-Луи Гассе с целью создать компьютерную систему нового поколения (заметим, что Гассе пошёл по пути предыдущего директора Apple Стива Джобса и его платформы NeXT). На подъёме энтузиазма Гассе и его соратники объединились, чтобы сделать простой в использовании, надёжный компьютер, свободный от пережитков прошлого. Планировалось создать именно компьютер, операционная система была только побочной целью. Например, файловая система не должна была содержать каталогов вообще, все файлы лежали на диске без распределения по директориям, а принадлежность к той или иной программе определялась на основе атрибутов — информации о файле, не записанной в самом файле.
Первые версии BeOS работали только на специально созданных компьютерах BeBox, которые тоже производились компанией Be, Inc.. Отличительными особенностями этих компьютеров были многопроцессорность (в одной из версий компьютера стояло 7 процессоров, в другой — 2), в двухпроцессорной версии — индикаторы загрузки процессоров на передней панели системного блока (известные также под названием Blinky Lights), тёмно-синий цвет системного блока и 52-битный порт на задней панели, известный под названием «Geek Port», с простым и удобным управлением для программиста — чтобы поощрять создание внешних устройств под BeOS. BeBox назывались «Silicon Graphics для бедняка» из-за их мощности, позволяющей творить чудеса с графикой, и относительно невысокой стоимости. Первые BeBox прототипы построены на AT&T Hobbit процессорах, но их производство было остановлено. Тогда Ве решила использовать PowerPC процессоры. С 1995 до 1997 всего было продано около двух тысяч компьютеров BeBox, большинство из которых работают и по сей день. Один из них можно увидеть в компьютерном музее в Бостоне. 30 января 1997 Be, Inc. объявила, что уходит из hardware бизнеса и BeBox производство было остановлено.
BSD/OS - коммерческая версия Berkley Software Distribution (BSD Unix) операционная система разработанная компанией Berkley Software Design, inc. (BSDI). Основное отличие от свободно распространяемых UNIX систем более серьёзная поддержка многопроцессорных архитектур и закрытых драйверов.
В январе 2003 года, была выпущена версия 5.0-RELEASE. Эта версия предоставляла расширенную поддержку многопроцессорности и многопоточности.
На сегодняшний день в связи с переходом на ядерную конфигурацию наиболее популярные операционные системы Windows, а именно: Windows Vista и Windows 7.
2.2 Виды многопроцессорных систем и операционные системы для работы с ними
Основной характеристикой при классификации многопроцессорных систем является наличие общей (SMP системы) или распределенной (MPP системы) памяти. Это различие является важнейшим фактором, определяющим способы параллельного программирования и, соответственно, структуру программного обеспечения.
Системы с общей памятью: к системам этого типа относятся компьютеры с SMP архитектурой, различные разновидности NUMA систем и мультипроцессорные векторно-конвейерные компьютеры. Характерным словом для этих компьютеров является "единый": единая оперативная память, единая операционная система, единая подсистема ввода-вывода. Только процессоры образуют множество. Единая UNIX-подобная операционная система, управляющая работой всего компьютера, функционирует в виде множества процессов. Каждая пользовательская программа также запускается как отдельный процесс. Операционная система сама каким-то образом распределяет процессы по процессорам. В принципе, для распараллеливания программ можно использовать механизм порождения процессов. Однако этот механизм не очень удобен, поскольку каждый процесс функционирует в своем адресном пространстве, и основное достоинство этих систем - общая память - не может быть использован простым и естественным образом. Для распараллеливания программ используется механизм порождения нитей - легковесных процессов, для которых не создается отдельного адресного пространства, но которые на многопроцессорных системах также распределяются по процессорам.
Системы с распределенной памятью: в системах этого типа на каждом вычислительном узле функционирует собственные копии операционной системы, под управлением которых выполняются независимые программы. Это могут быть как действительно независимые программы, так и параллельные ветви одной программы. В этом случае единственно возможным механизмом взаимодействия между ними является механизм передачи сообщений. Наиболее популярными операционными системами для данной архитектуры являются операционные системы семейства UNIX, а именно чаще всего используется LINUX.
Кластерные технологии стали логическим продолжением развития идей, заложенных в архитектуре MPP систем. Если процессорный модуль в MPP системе представляет собой законченную вычислительную систему, то следующий шаг напрашивается сам собой: почему бы в качестве таких вычислительных узлов не использовать обычные серийно выпускаемые компьютеры. Привлекательной чертой кластерных технологий является то, что они позволяют для достижения необходимой производительности объединять в единые вычислительные системы компьютеры самого разного типа, начиная от персональных компьютеров и заканчивая мощными суперкомпьютерами. Кластер - это связанный набор полноценных компьютеров, используемый в качестве единого вычислительного ресурса. Преимущества кластерной системы перед набором независимых компьютеров очевидны. Во-первых, разработано множество диспетчерских систем пакетной обработки заданий, позволяющих послать задание на обработку кластеру в целом, а не какому-то отдельному компьютеру. Эти диспетчерские системы автоматически распределяют задания по свободным вычислительным узлам или буферизуют их при отсутствии таковых, что позволяет обеспечить более равномерную и эффективную загрузку компьютеров. Во-вторых, появляется возможность совместного использования вычислительных ресурсов нескольких компьютеров для решения одной задачи. Для создания кластеров обычно используются либо простые однопроцессорные персональные компьютеры, либо двух- или четырех- процессорные SMP-серверы. При этом не накладывается никаких ограничений на состав и архитектуру узлов. Каждый из узлов может функционировать под управлением своей собственной операционной системы. Чаще всего используются стандартные ОС: Linux, FreeBSD, Solaris, Tru64 Unix, Windows NT.
3. Операционная система UNIX в многопроцессорной конфигурации
В середине 60-х годов сотрудники компании General Electrics, AT&T Bell Laboratories и Масачусетского института написали операционную систему Multics, в которой было реализовано то, о чем даже и не задумывались другие разработчики программных продуктов. Проект, из-за слабой развитости и отсутствия поддержки других разработчиков, был закрыт в конце 60-х годов.
После Multics был разработан UNIX, который, в отличии от предшественницы, поддерживал не только многозадачность, но и работал на разных платформах, включая предков современных ПК, которых тогда называли как мини-компьютеры. В основе создания операционной системы лежит игра Space Travel, которая была разработана программистом Кеном Томпсоном. Так уж получилось, что игра не смогла заработать на компьютере того времени Honeywell 635, и поэтому Кен Томпсон ожидал выхода более мощного компьютера. В конце концов для того, чтобы игра заработала, пришлось в буквальном смысле этого слова создать для нее операционную систему. Пришлось усовершенствовать файловую систему для ускорения работоспособности системы, добавить функции управления системными устройствами, процессором, памятью. Управление всеми функциональными возможностями занимался мощный командный процессор Bourne Again Shell, в народе просто Bash. UNIX стал одной из первых POSIX-совместимых операционных систем. (POSIX - Portable Opereating System Interface for computer environments, интерфейс переносимой операционной системы.)