> -----Original Message----- > From: IBM Mainframe Discussion List > [mailto:[email protected]] On Behalf Of Paul Gilmartin > Sent: Wednesday, November 18, 2009 12:25 PM > To: [email protected] > Subject: Re: Reentrant Programs and Protected Storage > <snip> > I agree with your analysis: REFR and RENT should be > independent. One can > contrive scenarios to populate each quadrant of the truth table. IBM, > with binder, however, has made the definitions hierarchial: REFR > implies RENT, and RENT implies REUS. > > -- gil >
I definitely agree that RENT and REFR are different concepts. Well, at least to me they are. RENT means that the code is reentrant. That is, it can be executed concurrently (or simultaneously on multiprocessors) by multiple tasks/threads and still work correctly. This does not mean "non-self modifying". Self modifying programs can be reentrant by proper use of ENQ/DEQ, locks, semaphores, etc. Also, a "non-self modifying" program may not be reentrant if it updates a shared area (or file!) without the proper locking. REFR, to me, means that the code is non-self modifying (I think this was also called "pure code"). That is, if the code is running in a page frame which "fails", then the OS can simply page that code back in from the paging system to another page frame and redispatch the work with no difference in the programs processing. It could also mean that the OS could be written such that it never pages the program out to a dataset because it can simply be fetched again from the original source. Or that the frame could be stolen without doing a page-out. This is basically how LPA works. As I recall, back in the days of OS/360 and OS/VS1, there was a "transient SVC area". This area was small (4K?). All SVCs had to be REFR because they all ran in this one area. It is also why type 3 SVCs were restricted in size. The entire SVC had to fit in the transient area. Type 4 SVCs got around this by being kept in multiple modules and one module would XCTL to the other modules which made up the SVC, each loaded into the transient area. Anyway, if an SVC were running for task A when it was preempted in order to run task B, and task B did an SVC, then task B's SVC would overlay this area and run. When task A was redispatched, the OS would reload task A's SVC from SVCLIB. End of history lession - hope I wasn't off too badly. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * (817)-961-6183 cell [email protected] * www.HealthMarkets.com Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

