Разделяемая память

Разделяемая память

Разделяемую память (англ. Shared memory) применяют для того, чтобы увеличить скорость прохождения данных между процессами. В обычной ситуации обмен информацией между процессами проходит через ядро. Техника разделяемой памяти позволяет осуществить обмен информацией не через ядро, а используя некоторую часть виртуального адресного пространства, куда помещаются и откуда считываются данные.

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

Примерный сценарий использования разделяемой памяти при реализации технологий «клиент—сервер» имеет вид:

  1. сервер получает доступ к разделяемой памяти, используя семафор;
  2. сервер производит запись данных в разделяемую память;
  3. после завершения записи данных сервер освобождает доступ к разделяемой памяти с помощью семафора;
  4. клиент получает доступ к разделяемой памяти, запирая доступ к этой памяти для других процессов с помощью семафора;
  5. клиент производит чтение данных из разделяемой памяти, а затем освобождает доступ к памяти с помощью семафора.

Для работы с разделяемой памятью используются системные вызовы:

  • shmget — создание сегмента разделяемой памяти;
  • shmctl — установка параметров;
  • shmat — подсоединение сегмента памяти;
  • shmdt — отсоединение сегмента.

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

См. также

Проблема ABA


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Разделяемая память" в других словарях:

  • Виртуально разделяемая память — память, которой пользователь оперирует как единым адресным пространством, но которая в действительности физически разобщена. По английски: Virtual shared memory См. также: Виртуальная память Финансовый словарь Финам …   Финансовый словарь

  • память с доступом по двум направлениям — Разделяемая память, которая может быть доступна при последовательных обращениях более чем одного абонента (системного или процессора), но не при одновременном обращении. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике… …   Справочник технического переводчика

  • Память (компьютер) — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • Память (компьютерная) — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • Компьютерная память — НЖМД объёмом 44 Мб 1980 х годов выпуска и CompactFlash на 2 Гб 2000 х годов выпуска …   Википедия

  • Межпроцессное взаимодействие — (англ. Inter Process Communication, IPC)  набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC способы делятся… …   Википедия

  • Носители компьютерной информации — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • Устройство хранения данных — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • Устройство хранения информации — НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство)  часть вычислительной машины, физическое… …   Википедия

  • сетевой адаптер — сетевая карта сетевой адаптер сетевой интерфейс Компонент компьютера для подключения к вычислительной сети. [http://www.morepc.ru/dict/] сетевой адаптер Периферийное устройство (плата), обеспечивающее соединение компьютера и ЛВС.… …   Справочник технического переводчика


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»