Общая память - память, совместно используемая несколькими процессорами

17.01.2021 14:44

Общая память

Общая память - это научная часть памяти (т.е. ОЗУ ), которая используется для нескольких объектов (процессов, процессоров и т.д.). Совместно используемая память между процессами используется для обеспечения взаимной связи или для экономии занимаемой памяти. Об общей памяти также можно говорить с точки зрения аппаратного обеспечения на https://championclub.od.ua, когда общая оперативная память используется несколькими процессорами.

 Межпроцессного взаимодействия

Общая память может использоваться для связи между процессами ( межпроцессное взаимодействие Inter-process communication ). Примером может служить обмен данными между программами, работающими одновременно.

IPC через разделяемую память в основном используется в системах Unix. POSIX предоставляет стандартизированный интерфейс прикладного программирования (API) для использования разделяемой памяти ( POSIX Shared Memory ).

Когда мы говорим об аппаратном обеспечении , мы понимаем термин разделяемая память как большая часть памяти (RAM - Random Access Memory), к которой можно получить доступ с нескольких процессоров (CPU - Central Processing Unit) многопроцессорной компьютерной системы.

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

Недостатком систем с общей памятью является то, что многим процессорам требуется быстрый доступ к памяти, поэтому они предпочитают полагаться на кэш-память , что приводит к следующим двум осложнениям:

Ухудшение времени доступа: несколько процессоров могут попытаться получить доступ к одному и тому же объему памяти, что приведет к замедлению работы и затруднит установление соединения между процессором и памятью. Компьютеры с общей памятью не очень сбалансированы. У большинства из них всего десять процессоров.

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

Альтернативой общей памяти является выделение памяти и выделение общей памяти, но даже это решение может вызвать проблемы, подобные использованию общей памяти.