The following sections describe new and changed system services
that support shared memory global sections.
Enhanced Services The following
system services have been enhanced to recognize the new shared memory
global section flag SEC$M_SHMGS:
SYS$CRMPSC_GDZRO_64
SYS$CREATE_GDZRO
SYS$MGBLSC_64
SYS$DGBLSC
The following system services have been enhanced to work with
shared memory, but no interfaces were changed:
SYS$DELTVA
SYS$DELTVA_64
SYS$CREATE_BUFOBJ
SYS$CREATE_BUFOBJ_64
SYS$DELETE_BUFOBJ
New Section Flag
SEC$M_READ_ONLY_SHPT The new section
flag SEC$M_READ_ONLY_SHPT is recognized by the SYS$CREATE_GDZRO
and SYS$CRMPSC_GDZRO_64 services. When this bit is set, it directs
the system to create shared page tables for the sections that allow
read access only. This feature is particularly useful in an environment
where a memory resident or Galaxy shared section is used by many
readers but only a single writer.
When you map a Galaxy shared section or a memory resident
section that has an associated shared page table section, you have
the following options for accessing data:
Shared Page Tables
Read Only
Read and Write
None created
Do not set
the SEC$M_WRT flag in the map request.
Private page
tables are always used, even if you specify a shared page table region
into which to map the section.
Set the SEC$M_WRT flag in
the map request.
Private page tables are used, even
if you specify a shared page table region into which to map the section.
Write access
Do not set
the SEC$M_WRT flag in the map request.
Ensure that private
page tables are used. Do not specify a shared page table region
into which to map the section. If you do, the error status SS$_IVSECFLG
is returned.
Set the SEC$M_WRT flag in
the map request.
The shared page table section is used
for mapping if you specify a shared page table region into which
to map the section.
Read access
Do not set the SEC$M_WRT
flag in the map request. The shared page table section is used for
mapping if you specify a shared page table region into which to
map the section.
Set the SEC$M_WRT flag in the map request. Ensure
that private page tables is used. Do not specify a shared page table
region into which to map the section. If you do, the error status SS$_IVSECFLG
is returned.
Shared page tables for Galaxy shared sections are also
implemented as Galaxy shared sections. This implies that they allow
either read access only on all OpenVMS instances connected to this
section or read and write access on all instances. The setting of
the SEC$M_READ_ONLY_SHPT flag as requested by the first instance
to create the section is used on all instances.
Using the SYS$CRMPSC_GDZRO_64 service always implies that
the SEC$M_WRT flag is set and that you want to map the section for
writing. If you want to use this service to create a section with
shared page tables for read-only access, you must use private page
tables and you cannot specify a shared page table region into which
to map the section.