Для обеспечения совместимости с PC/AT загрузочный процессор должен поддерживать DOS-совместимое исполнение операций с плавающей запятой при работе в каждом из РС/АТ-совместимых режимов.
В согласованной МП-системе все контроллеры APIC должны быть реализованы как описанные в памяти устройства ввода-вывода. Базовые адреса APIC находятся в верхней части адресного пространства памяти. Все локальные блоки отображаются в одних и тех же адресах, которые не подлежат коллективному использованию, а используются каждым процессором индивидуально.
Напротив, контроллеры ввода-вывода отображаются так, чтобы обеспечить их совместное использование всеми процессорами, т.е. полную симметричность доступа.
Разработчики системы должны определить идентификацию локальных блоков и гарантировать уникальность их идентификаторов. Используются два пути задания идентификаторов: при помощи аппаратных средств и при помощи BIOS с поддержкой аппаратных средств.
Локальные блоки содержат 32-битный программируемый таймер с двумя независимыми входами. Таймеры блока ввода-вывода имеют один вход.
Для приведения всех систем компьютера в начальное состояние требуется возможность перезагрузки системы. В системе может выполняться «жесткая» перезагрузка, которая устанавливает все компоненты системы в начальное состояние. «Жесткая» перезагрузка производится при включении питания или при нажатии кнопки RESET на передней панели.
«Мягкая» загрузка только частично инициализирует процессор. При использовании такой перезагрузки не происходит потери обрабатываемой информации, то есть система ожидает окончания выполнения цикла, а также не сбрасывает содержание кэшей и регистров с плавающей запятой. Такой тип перезагрузки может выполняться на процессорах типа Pentium, но не Intel 486.
Мягкая загрузка одного из процессоров — одна из основных функций в МП-системе, наряду с включением и выключением. С ее помощью BSP-контроллер может выборочно инициализировать АР-контроллер для последующего включения в работу или восстановления АР-контроллера после непоправимой системной ошибки. Такого рода перезагрузка должна инициироваться программными средствами.
Начальное состояние системы — это состояние до передачи управления от BIOS операционной системе.
ОС должна иметь доступ к информации о конфигурации МП-системы. В спецификации предусмотрено два метода передачи этой информации в ОС: минимальный, позволяющий задать конфигурацию посредством выбора одного ив нескольких подразумеваемых наборов значений параметров аппаратуры; и максимальный, обеспечивающий высокую гибкость при проектировании аппаратных средств благодаря возможности произвольных установок.
На рис, 3. показана общая схема структур данных, определяющих конфигурацию МП-системы. Используются две структуры данных:
Эта структура содержит указатель физических адресов в таблице конфигурации и другие характеристики МП-системы.
Эта таблица не является обязательной. Она содержит точную информацию о контроллерах APIC, процессорах, шинах и прерываниях. Она содержит заголовок, за которым следует множество записей различных типов. Формат и длина каждой записи определяются ее типом. Если таблица конфигурации присутствует, она хранится или в системной части оперативной памяти, или в ROM BIOS.
Первый байт каждой записи идентифицирует тип записи. Каждый тип записи имеет фиксированную длину. Описания типов записей: процессор, шина, блок ввода-вывода. Распределение прерываний ввода-вывода, распределение локальных прерываний.
Спецификация по умолчанию определяет несколько конфигураций МП-систем. Цель этих установок в том, чтобы упростить проектирование BIOS. Если система соответствует одной из конфигураций, заданных по умолчанию, BIOS не должен обеспечивать таблицу конфигурации МП-системы. ОС будет содержать такую таблицу внутри себя.
Типы конфигураций системы, заданные по умолчанию, определяются байтом 1 информации о свойствах МП-системы, которая является частью Структуры указателя переходов. Чтобы система поддерживала конфигурацию, заданную по умолчанию, система должна поддерживать два процессора и отвечать еще ряду требований. Всего имеется 7 типов системы, задаваемых по умолчанию. В них задаются следующие поля: число процессоров, тип используемых в системе шин; тип контроллеров APIC; варианты; заложена схема МП-системы.
В зависимости от многопроцессорных компонентов в МП-системе BIOS может иметь следующие дополнительные функции:
1. Перевод АР в «спящий» режим, так чтобы они не пытались исполнять те же коды BIOS, что и BSP. Это необходимо, поскольку коды BIOS обычно не предназначены для мультиобработки.
2. Инициализация контроллеров APIC и других МП-компонент.
3. Создание таблицы конфигурации МП-системы.
Возрастающие требования к производительности средств обработки данных обусловливают все большее распространение симметричных мультипроцессорных компьютеров (SMP), в том числе и на основе процессоров Pentium. Цель создания SMP-платформ — обеспечение возможности наращивания производительности путем добавления процессоров без изменения приложений.
Процессор Pentium содержит специальные аппаратные средства, поддерживающие SMP-системы. Феномен стандартных SMP-платформ состоит в том, что они широко используются в качестве серверов систем различного масштаба: для рабочих групп, отделов и даже предприятий. Для деловых приложений на основе ОС нового поколения типа Windows NT (Microsoft), NetWare (Novell), UnixWare (Novell), Open Server/MPS (SCO) и других доступен большой выбор высокопроизводительных SMP-платформ на основе Intel-архитектуры традиционных производителей.
Сегодня появилось новое поколение СМР-серверов приложений. Поэтому актуальным является создание ОС со стандартным интерфейсом, которые могут обеспечить требуемые рабочие характеристики и надежность. Основные характеристики подобных ОС таковы: многозадачность, многопотоковая архитектура (Multithreading), многопроцессорность и стандартизация.
Типичная ОС обеспечивает многозадачность, переходя между двумя (или несколькими) активными программами, исполняя каждую из них на протяжении короткого периода времени. Если переход осуществляется быстро и достаточно эффективно, для конечного пользователя многозадачность может означать способность печатать электронные таблицы и в то же время работать с текстовым процессором, а для сетевого сервера — одновременно поддерживать множество соединений и сервисов.
В некоторых простых ОС (например, Windows) контекстное переключение задач возлагается на сами программы, реализующие многозадачность без прерываний. Такие ОС не могут гарантировать, что какая-либо программа не монополизирует время процессора и не приведет к возникновению конфликтов с другими задачами, которые будут ждать неопределенно долго.
В современных ОС используется многозадачность с прерыванием исполнения задачи пользователя. Примерами таких ОС являются Windows NT, SCO Open Server/MPX, UnixWare 2.0.
Если ОС может исполнять более одной последовательности инструкций в одной задаче, говорят, что она поддерживает многопотоковую (с многими нитями управления) архитектуру, эффективно реализующую программным способом параллельную обработку и максимизирующую использование единичного процессора.
Обычно каждой задаче приписывается определенная область адресного пространства, в которой начинается ее исполнение. Каждому потоку выделяются для исполнения ресурсы, как для процесса, но потоки в рамках одной задачи (или процесса) не разделены в адресном пространстве. Каждый поток может использовать данные и файлы других потоков, что облегчает ОС легкое и быстрое переключение потоков (малых процессов).
Примерами ОС, которые поддерживают многопотоковую архитектуру, являются Windows NT и UnixWare 2.0. До недавнего времени большинство традиционных UNIX-систем не поддерживали такую архитектуру;
сейчас эта технология начинает проникать в некоторые фирменные ОС на основе UNIX (например, SunSoft Solaris 2.4, HP-UX v.10).
Потоки могут запускаться и завершаться очень быстро, поскольку нет необходимости заново создавать новую задачу и связанную с ней структуру ОС. Например, в серверах для обслуживания соединения с клиентом создается новый поток. Если не используется многопотоковая архитектура, приходится создавать совершенно новый процесс и настраиваться на новое адресное пространство, что ведет к большим накладным расходам и снижает производительность.
Важную роль в обеспечении многопотоковости играют драйверы устройств. Если драйверы являются многопотоковыми, они могут использоваться любым процессором МП-системы. Это существенно улучшает производительность, особенно контроллеров дисков.
Симметричные многопроцессорные SMP-системы могут исполнять любую задачу или поток на любом свободном процессоре. SMP-системы не только более гибки и эффективны, но и более устойчивы к отказам отдельных процессоров. В ассимметричных системах при отказе процессора, выделенного под ОС, система немедленно полностью прекращает работу. В SMP-системах в таких ситуациях ОС начинает использовать другие процессоры. SMP-системы обеспечивают также хорошее соотношение цена/производительность, так как добавление процессора не требует приобретения новой компьютерной системы. В число распространенных унифицированных ОС для SMP-си-стем входят Windows NT Server, SCO Open Server/MPX, UnixWare 2.0.