Многопроцессорный вычислительный комплекс на основе коммутационной матрицы

Страница: 5/18

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

3.1 Симметричная многопроцессорная обработка (Symmetric Multiprocessor Processing – SMP)

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

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

Хотя все процессоры в SMP системе функционально идентичны, выделяется два их типа: загрузочный процессор (BSP) и прикладные процессоры (АР). Какой процессор играет роль загрузочного, определяется аппаратными средствами или совместно аппаратурой и BIOS. Это сделано для удобства и имеет значение только во время инициализации и выключения. BSP-процессор отвечает за инициализацию системы и за загрузку ОС. АР-процессор активизируется после загрузки ОС.

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

Системы, обладающие симметричностью памяти и ввода-вывода, позволяют обеспечить расширяемость аппаратных средств, а также стандартизовать программные средства.

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

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

Реферат опубликован: 6/09/2006