Многопроцессорные системы

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

В SMP-модели нагрузка динамически распределяется между процессорами, так что невозможна ситуация, в которой одни ЦП перегружены, в то время, как другие ничем не заняты.

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

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

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

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

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

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

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

Масштабируемость. Конфликты на шине.

Часто встречающиеся словосочетания типа «несколько процессоров», «многопроцессорные системы» и т. п. наводят на вопрос, можно ли сказать, чему равно оптимальное число

процессоров в системе?

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

соединенными с общей шиной, ограничивает повышение производительности величиной log2N.