[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