В классической постановке для
системы UNIX предполагается
использование однопроцессорной
архитектуры, состоящей из одного
ЦП, памяти и периферийных
устройств. Многопроцессорная
архитектура, напротив, включает в
себя два и более ЦП, совместно
использующих общую память и
периферийные устройства (Рисунок
12.1), располагая большими
возможностями в увеличении
производительности системы,
связанными с одновременным
исполнением процессов на разных ЦП.
Каждый ЦП функционирует независимо
от других, но все они работают с
одним и тем же ядром операционной
системы. Поведение процессов в
такой системе ничем не отличается
от поведения в однопроцессорной
системе - с сохранением семантики
обращения к каждой системной
функции - но при этом они могут
открыто перемещаться с одного
процессора на другой. Хотя, к
сожалению, это не приводит к
снижению затрат процессорного
времени, связанного с выполнением
процесса. Отдельные
многопроцессорные системы
называются системами с
присоединенными процессорами,
поскольку в них периферийные
устройства доступны не для всех
процессоров. За исключением особо
оговоренных случаев, в настоящей
главе не проводится никаких
различий между системами с
присоединенными процессорами и
остальными классами
многопроцессорных систем. Параллельная работа
нескольких процессоров в режиме
ядра по выполнению различных
процессов создает ряд проблем,
связанных с сохранением
целостности данных и решаемых
благодаря использованию
соответствующих механизмов защиты.
Ниже будет показано, почему
классический вариант системы UNIX не
может быть принят в
многопроцессорных системах без
внесения необходимых изменений, а
также будут рассмотрены два
варианта, предназначенные для
работы в указанной среде. Рисунок 12.1.
Многопроцессорная конфигурация Предыдущая
глава || Оглавление
ГЛАВА 12.
МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ