According to my OS/390 Collection March 1999 Version 2 Release 7.0:

RENT: MVS *protects your module's virtual storage so that your module
cannot be modified* - and REFR implies RENT.
 
See attached (this time without Unicode formatting <g>.)
 
Cheers, Chris Poncelet (retired sysprog consultant)



On 26/08/2021 04:54, Jim Mulder wrote:
>   YDNRC.  In general, the frame steal code has no knowledge
> that a frame contains a program, or that  the program
> is REFR.  The only exception to that is the PLPA and EPLPA 
> virtual storage ranges, for which the frame steal code does 
> steal without paging out, effectively treating everything in
> those ranges as conceptually REFR for stealing purposes,
> regardless of the load module attributes. 
>
> Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. 
> Poughkeepsie NY
>
> "IBM Mainframe Discussion List" <IBM-MAIN@LISTSERV.UA.EDU> wrote on 
> 08/25/2021 09:10:04 PM:
>
>> From: "CM Poncelet" <ponce...@bcs.org.uk>
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Date: 08/25/2021 11:21 PM
>> Subject: Re: RENT binder option
>> Sent by: "IBM Mainframe Discussion List" <IBM-MAIN@LISTSERV.UA.EDU>
>>
>> IIRC The page(s) of an LMOD marked REFR can be stolen without having
>> first to back it up to cache, because it can be REFReshed from cache (or
>> DASD) and continue to execute as if its page(s) had not been stolen -
>> e.g. in the PLPA. If it modified itself, it would hit a S0C4-4. AFAIK A
>> backup/swap-out would be needed if it was marked RENT but not REFR.
>
>
> ----------------------------------------------------------------------
> 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
From my OS/390 Collection March 1999 Version 2 Release 7.0 (CD 1 of 9) 
 
7.3.30 REUS:  Reusability Options
 
The REUS option allows you to specify how a program may be reused. (Reusability 
means that the same copy of a program module can be used by more than one task 
either concurrently or one after another.)
 
Note that the value of the REUS option always overrides the reusability of any 
included load modules or program objects.
 
The syntax of the REUS option is as follows:
 
+------------------------------------------------------------------------+
¦                                                                        ¦
¦ REUS={NONE|SERIAL|RENT|REFR}                                           ¦
¦                                                                        ¦
+------------------------------------------------------------------------+
 
The reusability values are:
 
NONE
    The module cannot be reused.  A new copy must be brought into virtual 
storage for each use.  NONE is the default value.
 
SERIAL
    The module is serially reusable.  It can only be executed by one task at a 
time;  when one task has finished executing it another task may begin.  A 
serially reusable module may modify its own code, but when it is re-executed it 
must initialize itself or restore any instructions or data that have been 
altered.
 
RENT
    The module is reenterable.  It can be executed by more than one task at a 
time.  A task may begin executing it before a previous task has completed 
execution.  A reenterable module cannot modify its own code. (MVS *protects 
your module's virtual storage so that your module cannot be modified*.)
 
    Reenterable modules are also serially reusable.
 
REFR
    The module is refreshable.  *It can be replaced by a new copy during 
execution without changing the sequence or results of processing.  A 
refreshable module cannot be modified during execution*.
 
    A module can only be refreshable if all the control sections within it are 
refreshable.  The refreshable attribute is negated if any input modules are not 
refreshable.  *Refreshable modules are also reenterable and serially reusable*.
 
    The refreshable attribute can be specified for any non-modifiable module.
 
 
Alternatively, you can code a REUS option as a single keyword without a value 
(REUS, NOREUS, RENT, NORENT, REFR, NOREFR).  For example:
 
--------------------------------------------------------------------------
 
//LKED  EXEC PGM=IEWBLINK,PARM='RENT,...'
 
--------------------------------------------------------------------------
 
This alternative form is supported only for backward compatibility.  The most 
restrictive positive specification is used to set the reusability attribute.  
For example, specifying REFR has the same effect as specifying REUS (REFR) and 
the module is marked as refreshable, reenterable, and (serially) reusable.
 
If the PARM string contains both formats, the REUS(value) instance will 
override any reusability options specified without values.
 
The binder only stores the attribute in the directory entry.  It does not check 
whether the module is actually reenterable or serially reusable.  If the module 
is incorrectly marked as reenterable or reusable, execution results are 
unpredictable; for example, a protection exception might occur or the program 
might use another task's data.

----------------------------------------------------------------------
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