5.1.2. Модель памяти

5.1.2. Модель памяти

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

Для того чтобы понять принципы выделения и подключения сегментов памяти, необходимо разобраться в модели памяти Linux. В Linux виртуальная память (ВП) каждого процесса разбита на страницы. Все процессы хранят таблицу соответствий между своими адресами памяти и страницами ВП, содержащими реальные данные. Несмотря на то что за каждым процессом закреплены свои адреса, разным процессам разрешается ссылаться на одни и те же страницы. Это и есть совместное использование памяти.

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

Размер совместно используемого сегмента кратен размеру страницы ВП. В Linux последняя величина обычно равна 4 Кбайт, но никогда не помешает это проверить с помощью функции getpagesize().

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

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

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

1.7. Модель OSI

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

1.7. Модель OSI Распространенным способом описания уровней сети является предложенная Международной организацией по стандартизации (International Standards Organization, ISO) модель взаимодействия открытых систем (open systems interconnection, OSI). Эта семиуровневая модель показана на рис. 1.5, где она


Модель ISO/OSI

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

Модель ISO/OSI Пожалуй, ключевым понятием в стандартизации сетей и всего, что к ним относится, является модель взаимодействия открытых систем (Open System Interconnection, OSI), разработанная «Международной организацией по стандартизации» (International Standards Organization, ISO). На практике применяется


8.16.1 Модель EGP

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

8.16.1 Модель EGP Маршрутизатор EGP конфигурируется с адресом IP для одного или нескольких внешних соседних маршрутизаторов. Обычно внешние соседи соединены с общей сетью с множественным доступом или объединены одной линией "точка-точка".EGP позволяет маршрутизатору


14.3 Модель FTP

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

14.3 Модель FTP Как видно из приведенного выше диалога, пользователь взаимодействует с локальным клиентом FTP (точнее, с соответствующим процессом). Программное обеспечение локального клиента управляет преобразованием данных для удаленного сервера FTP через управляющее


15.2 Модель RPC

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

15.2 Модель RPC Приложение клиент/сервер для архитектуры ONC функционирует поверх RPC. Работа RPC моделируется обычными вызовами подпрограмм. Например, в языке программирования С вызов обычной подпрограммы в общем случае имеет форму:код_возврата = имя_процедуры


11.6.4. Модель приемника

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

11.6.4. Модель приемника Приемник (sink) — фильтр-подобная программа, которая принимает данные на стандартном вводе, но не отправляет никаких данных на стандартный вывод. Как и в двух предыдущих моделях, действия программы управляются только стартовыми условиями.Данная


11.6.5. Модель компилятора

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

11.6.5. Модель компилятора Программы, подобные компиляторам, не используют ни стандартный вывод, ни стандартный ввод; однако они способны отправлять сообщения об ошибках в соответствующий поток данных (stderr). Вместо этого программы данного типа принимают имена файлов или


11.6.6. Модель редактора ed

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

11.6.6. Модель редактора ed Для всех предыдущих моделей характерна весьма низкая интерактивность. В них используется только управляющая информация, переданная во время запуска и обособленная от данных. Однако многим программам после запуска требуется управление с помощью


11.6.9. Модель CLI-сервера

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

11.6.9. Модель CLI-сервера В мире Unix обычной является практика, когда серверные процессы вызываются управляющими программами81, такими как inetd(8), т.е. сервер может получать команды через стандартный ввод и отправлять ответы на стандартный вывод. Управляющая программа затем


11.6.1. Модель фильтра

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

11.6.1. Модель фильтра Моделью проектирования интерфейсов, которая наиболее традиционно связывается с операционной системой Unix, является фильтр (filter). Программа-фильтр принимает данные на стандартном вводе, трансформирует их определенным образом, после чего они могут


11.6.2. Модель заклинаний

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

11.6.2. Модель заклинаний Модель заклинаний является простейшей из моделей проектирования интерфейсов. Нет ни ввода, ни вывода данных, только вызов и числовой код завершения. Режим работы заклинания контролируется только условиями запуска. Не существует другого типа


Цветовая модель HSB

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

Цветовая модель HSB В качестве своеобразной «компенсации» за модель L*a*b, удобную для компьютеров и неудобную для людей, мир компьютерной графики включает модель HSB, которая, наоборот, удобна для людей и неудобна для вычислений. Поэтому, как правило, модель HSB используется


Модель

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

Модель В любом интерьере наибольшее количество объектов — это модели. Модель может иметь произвольную форму: от примитивных сферы или куба до реалистичных форм человеческой фигуры. Модель призвана передавать формы конкретных объектов. Например, создавая интерьер, мы


Web-модель

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

Web-модель Web-модель получила свое название, поскольку базируется на популярных браузерах Netscape Navigator и Microsoft Internet Explorer, используемых как средства навигации во Всемирной Паутине - World Wide Web. Эта модель предусматривает встраивание в готовый браузер набора открытых ключей