Robert A. Rosenberg wrote:
> You are confusing two separate schemes. In my case the data was written
> in standard order. Since I was using BDAM (it might have been BSAM where
> I was supplying the record number I wanted) I just REQUESTED the records
> in reverse order (after I used the EXCP CCW string to find the last
> record on the current track).
> 
> HASP WROTE the records in the order (and numbered as in the Count
> Section) 1 4 2 5 3 6 (assuming 6 blocks per track). This allowed it to
> read the full track in two revolutions of the drive. If it had tried to
> read a normally numbered track the channel was too slow to catch the
> next record on that revolution. The out-of-sequence-interleaved
> numbering allowed the channel to catch up and be ready for the next
> block before it passed the read head. By JES2 days the channels were
> fast enough to keep up with the DASD (as well as there being cached
> buffering and read-track commands/etc.).

in the early 70s, the stuff for page-map support of cms filesystem
(originally on cp67):
http://www.garlic.com/~lynn/subtopic.html#mmap

picked up the earlier pathlength stuff i had done for stylized fastpath
ccw for cms disk i/o (that eventually turned into diag 18) ... but it
also eliminated a lot of the overhead of simulating real i/o operations
in virtual memory environment (prefetch & lock/pin of pages before
starting the complete i/o, unpinning all the pages when done, etc).

the other thing was that cms file i/o only did chaining when file
records were sequential and contiguous. i had originally done the
chaining logic for page i/o for cp67 ... where each page transfer was
independent operation and multiple could be chained together for optimal
disk operation ... regardless of the original order or source of the
request. this met that different requests for the same shared area from
different tasks could be chained together ... or that chains could be
re-ordered (i.e. multiple records for the same file could be randomly
ordered on the same cylinder ... page mapped interface would queue the
request ... and optimal reordering and chaining would fall out in the
standard page support).

there was also some tricks about looking at system contention and
dynamically deciding to build huge i/o transfers ... and/or delay stuff
... part of the stuff was that using the paging interface ... you could
have asyncronous operation transparent to the application ... by using
virtual memory hardware to provide necessary serialization control.

note that in migration of os/360 to virtual memory environment ...
resulted in similar need to do all the real i/o simulation processes for
virtual memory environment. as mentioned before ... one time when we
were doing some stuff 3rd shift in pok machine room ... I think it was
Ludlow was working on VS2/SVS prototype ... basically using 360/67,
taking mvt and cobbling together a little bit of single address space
layout and a low-level page fault and replacement handler. the other
part was taking cp67's CCWTRANS and hacking it into the side of MVT for
doing all the steps for translating and shadowing CCWs, fetching/pinning
virtual pages, untranslating, unpinning. etc.

a few old posts about hacking cms disk i/o pathlength as undergraduate:
http://www.garlic.com/~lynn/99.html#95 Early interupts on mainframes
http://www.garlic.com/~lynn/2003.html#60 MIDAS
http://www.garlic.com/~lynn/2003k.html#7 What is timesharing, anyway?
http://www.garlic.com/~lynn/2004d.html#66 System/360 40 years old today
http://www.garlic.com/~lynn/2004q.html#72 IUCV in VM/CMS
http://www.garlic.com/~lynn/2005b.html#23 360 DIAGNOSE
http://www.garlic.com/~lynn/2005j.html#54 Q ALLOC PAGE vs. CP Q ALLOC vs
ESAMAP

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

Reply via email to