Surely the cost of CS/CDS is far less than the cost of PLO. In my opinion, 
if you know that you can use transactional execution (which would be the 
case if you're on z/OS 2.3 or later *and* you know that you are not 
running z/OS under z/VM 6.3 or earlier), then you should never use PLO. A 
TBEGINC transaction, in particular, is so much more understandable and 
easy to code. (Unlike TBEGIN, assuming you can meet the constraints, you 
don't need a fallback path). Unlike PLO which serializes only against 
other PLO's (it does not serialize against CS/CDS), a transaction 
serializes against everything, in effect.

I did not see mention of the interlocked access facilities. These are what 
makes things like "OI" work without needing to serialize via CS/CDS. 

Many of us grew up with machines where OI and some other instructions were 
done in multiple stages, and at just the wrong point could result in lost 
data if CS/CDS was being used. You could not mix and match. 

If on a new enough z/OS, you can rely on the interlocked access facilities 
being available.

Peter Relson
z/OS Core Technology Design

Reply via email to