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. 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. ⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭ潆䉉ⵍ䅍义猠扵捳楲敢⼠猠杩潮晦⼠愠捲楨敶愠捣獥湩瑳畲瑣潩獮ബ猊湥浥楡潴氠獩獴牥䁶楬瑳敳癲甮摥⁵楷桴琠敨洠獥慳敧›义但䤠䵂䴭䥁ൎ