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

Reply via email to