logo search
Программирование в среде Delphy / Программирование в среде Delphi

25.3. Совместное использование общей памяти

Операционная система Windows выделяет каждому приложению свой участок оперативной памяти, который недоступен никакому другому приложению. Это позволяет существенно повысить надежность работы как самой операционной системы, так и всех приложений, так как они не могут влиять друг на друга. Однако это усложняет межпрограммное взаимодействие. Одним из вариантов организации такого взаимодействия является использование виртуальной памяти. Такой вид памяти используется операционной системой при ограниченной физической памяти компьютера. Система имеет в своем распоряжении так называемый файл подкачки (в системе Windows 98 это файл win386.swp, в системе Windows NT/XP – pagefile.sys). С его помощью система производит страничную перекачку память–файл и файл–память. Неактивные программы вытесняются на диск, а активные помещаются в физическую память компьютера. Когда памяти в компьютере не хватает, то можно наблюдать постоянную работу жесткого диска по перемещению данных из памяти в файл подкачки и обратно.

Такой файл можно создать и в Delphi–программе с помощью функций Windows API (Application Interface):

CreateFileMapping – создание файла подкачки;

MapViewFile – получение доступа к данным файла;

UnMapViewFile – прекращение доступа к данным файла подкачки.

В разных приложениях для совместного использования памяти нужно задавать одинаковые параметры для этих функций. Мы не будем описывать правила использования этих функций. Однако отметим, что динамическая память практически не имеет ограничений на размер и ее следует использовать, например, при обработке больших изображений в картографии. Кроме того, так как файл подкачки может почти весь располагаться в оперативной памяти ПК, то работа с ним будет осуществляться гораздо быстрее, чем с обычным файлом.