I would like to add:
while LINK is functionally the same as LOAD - CALL - DELETE,
there is an important difference:
the transfer of control with LINK is known to the operating system,
but with LOAD - CALL - DELETE, it is NOT known.
In fact, CALL is not a supervisor action, it is simple machine
instructions (very cheap).
This means that if a module is not RENT and not REUS (for example),
a call using LOAD - CALL - DELETE is not safe, because the system does
not know that
the module is in use. Another subtask can easily call the same module at
the same time,
if it knows the address, and it will never get another copy. You are
responsible yourself
for doing things right.
With LINK, on the contrary, if the module is not RENT and not REUS, the
system
will ALWAYS fetch a new copy, when you do another LINK.
(There is a "use count" in the control blocks, which is incremented and
decremented
during LINK processing, but of course not, when doing a CALL).
Kind regards
Bernd
Am 05.02.2021 um 18:54 schrieb Frank Swarbrick:
I am not a systems programmer. I am a COBOL programmer who knows only enough
assembler to be dangerous.
What is the "difference" between doing a LOAD and a CALL to perform a dynamic
call and doing a LINK?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN