Таненбаум Э.- Архитектура компьютера. стр.455

Второй подход — использовать аппаратное обеспечение мультикомпыотера и операционную систему, которая будет моделировать общую память, предоставляя единое виртуальное адресное пространство, разбитое на страницы. При таком подходе получается распределенная общая память (Distributed Shared Memory, DSM), в которой каждая страница расположена в одном из модулей памяти (см. рис. 8.16, я), а каждая машина содержит собственную виртуальную память и собственные таблицы страниц [127]. Если процессор выполняет команду LOAD или STORE, обращаясь к странице, которой у него нет, происходит системное исключение. После этого операционная система находит нужную страницу и обращается к соответствующему процессору, чтобы тот выгрузил страницу из памяти и послал ее через внутреннюю коммуникационную сеть, по которой процессоры обмениваются сообщениями. Когда страница попадает процессу-получателю, она отображается на память, и выполнение прерванной команды возобновляется. По существу, операционная система просто получает недостающие страницы не с диска, а из памяти. При этом у пользователя создается впечатление, что машина имеет единую общую память. Далее в этой главе мы еще вернемся к распределенной общей памяти.

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

Таненбаум Э.- Архитектура компьютера.

Рис. 8.17. Уровни, на которых можно реализовать общую память: аппаратная реализация (а); операционная система (б); программная реализация (в)

Другой пример общей памяти, реализованной пользовательской системой реального времени, — модель общих объектов данных в системе Огса. В модели Огса процессы совместно используют не кортежи, как в Linda, а базовые объекты, вызывая для них те или иные методы. Если метод изменяет внутреннее состояние объекта, система реального времени должна проследить, чтобы одновременно были изменены все копии этого объекта на всех машинах. И опять, поскольку объекты — чисто программная концепция, их можно реализовать с помощью системы реального времени без вмешательства операционной системы или аппаратного обеспечения. К моделям Linda и Огса мы еще вернемся в этой главе.

Классификация параллельных компьютерных систем

Многое можно сказать о программном обеспечении для параллельных компьютерных систем, однако сейчас мы должны вернуться к основной теме данной главы — архитектуре таких систем. За многие годы было предложено и построено множество видов параллельных компьютерных систем, поэтому хотелось бы их как-либо классифицировать. Это с разными результатами пытались делать многие исследователи [68, 207], но, к сожалению, хорошей классификации до сих пор нет. Чаще всего используют классификация Флинна [68], но даже она является достаточно грубой (табл. 8.3).


⇐ Предыдущая страница| |Следующая страница ⇒