Maybe worth adding that the two MS packages can be run with command line options suitable for unattended use, e.g.

vcredist_x86.exe /passive /norestart

For a dialog box showing all the command line options:

vcredist_x86.exe /help

or

vcredist_x86.exe /?

I wish an unattended install of Cache would install these runtime prerequisites automatically for us. I think it does that when doing an interactive install, which would imply that the vcredist_x*.exe kits are already bundled inside the cache*.exe installer.

Adding to the other answers, I notice the OP wrote "I need my globals unreadable if other process is in critical area".

This means you will need to obtain LOCKs before referencing (reading) the globals. But in this case you might opt to request shared LOCKs, e.g.

LOCK +(^A#"S",^B#"S",^C#"S")
WRITE !,"^A=",^A,!,"^B=",^B,!,"^C=",^C,!
LOCK -(^A#"S",^B#"S",^C#"S")

The use of shared locks will allow multiple concurrent reader processes, while still blocking all readers if a writer holds conflicting locks. A would-be writer will also be blocked while any readers still hold conflicting locks.