[Info-vax] New CEO of VMS Software

Arne Vajhøj arne at vajhoej.dk
Sat Jan 6 15:09:25 EST 2024


On 1/5/2024 11:52 PM, Lawrence D'Oliveiro wrote:
> On Fri, 5 Jan 2024 23:25:38 -0500, Arne Vajhøj wrote:
> 
>> Just take a list of all the JPI$_* codes.
> 
> OK, looking at the VMS 5.5 System Services manual from Bitsavers (they
> don’t seem to have anything more recent):
> 
> JPI$_ACCOUNT -- we can maintain that per-process
> JPI$_APTCNT -- same as the resident working set
> JPI$_ASTACT -- ASTs would have to be maintained as part of the emulation
> layer, this count would come from there
> JPI$_ASTCNT -- ditto
> JPI$_ASTEN -- ditto ditto
> JPI$_ASTLM -- ditto ditto ditto
> JPI$_AUTHPRI -- equivalent to the “nice” value
> JPI$_AUTHPRIV -- either emulation layer, or just some dummy value
> JPI$_BIOCNT -- just a count of I/O operations to block devices in progress
> JPI$_BIOLM -- a limit that could be imposed by the emulation layer
> JPI$_BUFIO -- same thing, but for buffered I/O this time
> JPI$_BYTCNT -- ditto
> JPI$_BYTLM -- ditto
> JPI$_CHAIN -- hmm, new to me, but no problem
> JPI$_CLINAME -- part of the emulation layer (CLI would run in a separate
> Linux process, of course, but there’s no reason the VMS code needs to be
> aware of that)
> JPI$_CPU_ID -- straightforward extraction from /sys/devices/system/cpu
> JPI$_CPULIM -- can be obtained from prlimit(2)/getrlimit(2)
> JPI$_CPUTIM -- can be obtained from prlimit(2)/getrlimit(2)
> JPI$_CREPRC_FLAGS -- maintained by emulation layer
> 
> So that’s the second page done. I could keep going on, but do you want to
> shortcut the process by pointing out where you think the traps lie?

It becomes complex to maintain that process state in a VMS process
style aka across image activations.

Let us look at the scenario where an EVE use press spawn
key and do a DIR to check some filenames.

On VMS it is:

process 1 with DCL in P1, EVE in P0 and process info in S0
subprocess 2 with DCL in P1, DIRECTORY in P0 and process info in S0

First attempt:

process A with DCL and "process 1" info
process B with EVE
process C with DCL and "subprocess 2" info
process D with DIRECTORY
IPC B->A
IPC D->C
IPC C->A

Making shells a server process is not good design so:

process A with "process 1" info
process B with DCL
process C with EVE
process D with "subprocess 2" info
process F with DIRECTORY
process E with DCL
IPC B->A
IPC C->A
IPC F->D
IPC E->D
IPC D->A

Messy.

Arne




More information about the Info-vax mailing list