[Info-vax] What is a section file? How is it helpful? Is a TPU$SECTION file a section file?
Arne Vajhøj
arne at vajhoej.dk
Thu Sep 1 20:36:52 EDT 2022
On 9/1/2022 12:53 PM, Stephen Hoffman wrote:
> On 2022-08-31 00:07:29 +0000, Arne Vajhj said:
>
>> On 8/30/2022 6:10 PM, Stephen Hoffman wrote:
>>>
>>> A section file...
>>>
>>> ...is a form of persistent storage available for in-memory data
>>> structures.
>>>
>>> ...can be used to persist a user-written or third-party in-memory
>>> database. Or can persist a pile of shared data structures. Or other
>>> such.
>>>
>>> ...lacks any database-like APIs and features; it's a means to map
>>> (transfer) arbitrary user data from persistent storage into memory,
>>> and from memory into persistent storage.
>>>
>>> ...sections are the underpinning of Fortran COMMON, the C/Unix mmap()
>>> APIs, of parts of TPU customizations, and related mechanisms.
>>
>> I agree with everything except the Fortran common block thing.
>>
>> A Fortran common block is a psect, but not this kind of section (per
>> default - it can of course be mapped like any other memory).
>
> Sure.
>
> It's a section of virtual memory with backing (and sharable) storage,
> with the salient difference being whether it uses static
> mapping—Fortran, BASIC, C, etc., common storage involving the linker—or
> use dynamic mapping—run-time calls to $crmpsc, etc.
????
A Fortran common block does not share data between processes
and does not map data to disk.
It is basically just a named bundle of global variables.
(VAX C and DEC C with /EXTERN=COMMON_BLOCK use the same
construct for global variables)
To share with other processes or map data to disk something
more is needed like mapping it via SYS$CRMPSC or SYS$MGLBSC.
Or a bit more old fashioned. Use the common block in
a block data and build that to a shareable installed
writeable image.
Arne
More information about the Info-vax
mailing list