ГЛАВА 13 Разделяемая память Posix

ГЛАВА 13

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

13.1. Введение

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

? отображение файлов в память (листинг 12.2);

? неименованное отображение памяти в системе 4.4BSD (листинг 12.4);

? неименованное отображение файла /dev/zero (листинг 12.5).

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

1. Отображение файлов в память: файл открывается вызовом open, а его дескриптор используется при вызове mmap для отображения содержимого файла в адресное пространство процесса. Этот метод был описан в главе 12, и его использование было проиллюстрировано на примере родственных процессов. Однако он позволяет реализовать совместное использование памяти и для неродственных процессов.

2. Объекты разделяемой памяти: функция shm_open открывает объект IPC с именем стандарта Posix (например, полным именем объекта файловой системы), возвращая дескриптор, который может быть использован для отображения в адресное пространство процесса вызовом mmap. Данный метод будет описан в этой главе.

Оба метода требуют вызова mmap. Отличие состоит в методе получения дескриптора, являющегося аргументом mmap: в первом случае он возвращается функцией open, а во втором — shm_open. Мы показываем это на рис. 13.1. Стандарт Posix называет объектами памяти (memory objects) и отображенные в память файлы, и объекты разделяемой памяти стандарта Posix.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

СОФТЕРРА: Память на лица, или Лица на память

Из книги Журнал «Компьютерра» № 36 от 3 октября 2006 года автора Журнал «Компьютерра»

СОФТЕРРА: Память на лица, или Лица на память Автор: Алексей КлимовВышла девятая версия ACDSee. Судя по объему нововведений, это не «Девятый вал» Айвазовского [Иван Айвазовский, «Девятый вал». 1850 г] и даже не «9 рота» Бондарчука [Федор Бондарчук, «9 рота». 2005 г]. Поэтому в обзоре


Глава 4 «Мозги» и память компьютера

Из книги Железо ПК [Популярный самоучитель] автора Пташинский Владимир

Глава 4 «Мозги» и память компьютера Не бывает сложных программ. Бывает мало памяти. Компьютерная примета В предыдущей главе мы познакомились с такими важными комплектующими, как корпус, блок питания и материнская плата. И если их со всей ответственностью можно назвать


Глава 6 Внешняя память

Из книги Фреймы для представления знаний автора Мински Марвин

Глава 6 Внешняя память Что-то с памятью моей стало… Стенания над сломанной «флешкой» В одной из предыдущих глав мы познакомились с двумя видами памяти, которой обладает компьютер. Как вы помните, оперативная память предназначена для кратковременного хранения


Глава третья Обучение, память и парадигмы[1]

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Глава третья Обучение, память и парадигмы[1] «Природа дает ребенку различные средства для исправления всяческих ошибок, которые он может совершить по отношению к окружающим его предметам. При каждой возможности его взгляды корректируются опытом; неудача и боль являются


Posix

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Posix Название Posix образовано от «Portable Operating System Interface», что означает приблизительно «интерфейс переносимых операционных систем». Это не один стандарт, а целое семейство, разработанное Институтом инженеров по электротехнике и радиоэлектронике (Institute for Electrical and Electronics Engineers


ГЛАВА 2 Posix IPC

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

ГЛАВА 2 Posix IPC 2.1. Введение Из имеющихся типов IPC следующие три могут быть отнесены к Posix IPC, то есть к методам взаимодействия процессов, соответствующим стандарту Posix:? очереди сообщений Posix (глава 5);? семафоры Posix (глава 10);? разделяемая память Posix (глава 13).Эти три вида IPC


ГЛАВА 5 Очереди сообщений Posix

Из книги Операционная система UNIX автора Робачевский Андрей М.

ГЛАВА 5 Очереди сообщений Posix 5.1. Введение Очередь сообщений можно рассматривать как связный список сообщений. Программные потоки с соответствующими разрешениями могут помещать сообщения в очередь, а потоки с другими соответствующими разрешениями могут извлекать их


ГЛАВА 12 Введение в разделяемую память

Из книги автора

ГЛАВА 12 Введение в разделяемую память 12.1. Введение Разделяемая память является наиболее быстрым средством межпроцессного взаимодействия. После отображения области памяти в адресное пространство процессов, совместно ее использующих, для передачи данных между


ГЛАВА 14 Разделяемая память System V

Из книги автора

ГЛАВА 14 Разделяемая память System V 14.1. Введение Основные принципы разделяемой памяти System V совпадают с концепцией разделяемой памяти Posix. Вместо вызовов shm_open и mmap в этой системе используются вызовы shmget и shmat.Для каждого сегмента разделяемой памяти ядро хранит нижеследующую


POSIX (BSD) API

Из книги автора

POSIX (BSD) API Эта часть API наиболее полно соответствует API ОС UNIX, относящихся к ветви BSD (BSD, FreeBSD, NetBSD и другие).[5] Ее наименование можно было бы сузить до «BSD API», так как описанный далее набор API System V также регламентируется POSIX, но мы будем использовать именно термин «POSIX API», следуя


Отличия от POSIX

Из книги автора

Отличия от POSIX Если следовать POSIX-стандарту, то некоторые из атрибутов невозможно переопределить до фактического создания этого стандарта (их можно изменить позже в самом коде потока, но иногда это не совсем правильное решение). Все эти возможности относятся к


POSIX

Из книги автора

POSIX В Linux и UNIX самый простой путь установления переменных окружения - добавить их определения в общесистемный профиль значений по умолчанию.Пользователь root также может:* выдать команды setenv() из командной строки wu командного скрипта;* для временного использования


POSIX

Из книги автора

POSIX Linux, UNIX и другие платформы POSIX более предпочтительны, чем Windows, если требуется высокая безопасность. Технологии безопасности этих платформ являются продуманными и очень понятными в реализации. Безопасность файловой системы и надежный доступ присущи требованиям