Ah yes,  Microdata - my first Pick machine.   We were running a 32 user ERP on 
64K of main memory and a 30MB drive.

Marc Rutherford
Principal Programmer Analyst
Advanced Bionics LLC
661) 362 1754

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of dennis bartlett
Sent: Thursday, August 30, 2012 1:18 AM
To: U2 Users List
Subject: Re: [U2] [ud] Sub-second delay?

Actually the RQM functionality existed at hardware level (a true release 
quantum timeslice) when Pick ran on the Microdata machines specifically built 
for Pick. Way back when, Master Dick (and the other fella) wrote 'the ideal 
operating system' as their thesis. The theory goes that operating systems were 
inefficient because machines were being built and only when the machine existed 
an operating system would be invented for it. The "hardware" side of the Pick 
Operating System (as opposed to the file
structure) was to be specifically designed to implement the structure at raw 
machine code level.

Microdata (or whoever they were prior to that - maybe the ARPA people) then 
built this machine specifically for Pick.

This was even pre-R81.

My understanding was that it was at IRQ (interrupt request) level, so that just 
as a process needing something from an external source (external to the CPU), 
the processor would set a flag as "I'm waiting" then release the cpu to other 
processes (just as they do today). The difference today is that many disparate 
processes need to occupy memory, and so a paging file/swap space is needed. 
Back then Pick occupied the CPU the whole time. RQM would emulate this 
behaviour and also set a "I'm waiting" flag, thus releasing the cpu to process 
the next request.

This worked in a circular fashion just like an ethernet works today - the focus 
moves from computer to computer until all have been serviced then returns to 
the first one. In a Pick CPU each "user" process had a "request"
(of some maths to be done on something). They would all sit in a bottleneck 
queue and be processed one after the other (no multithreading). The RQM was a 
way to hurry up the process to allow important processes (logged in
users) to get reasonable response times and yet still be able to run slower 
routines.

Yes, 16 users on a 386. Full MRP system, plus GL and accounts, and MRP/CRP 
reporting running in the background constantly. All background apps were 
initiated as phantoms that read flags, when the system set the flag, all 
phantoms would implement RQMs. Online programs would set the flag as data 
capturing started, then reset it while the processor thought, etc.

On 30 August 2012 05:18, Tony Gravagno <[email protected]> wrote:

> The documentation is interesting for at least two reasons.
>
> 1)
> I have an R83 manual in my hands, v5 1990 that has the exact same text 
> as the Microdata text below, except with the words REALITY and Pick 
> interchanged, and one other subtlety:
> REALITY: "RQM statement causes a one-second sleep, terminating the 
> program's current timeslice."
> R83: "RQM statement terminates the program's current time-slice."
>
> There's no telling which version came first without going back to
> R81v1 docs. There's probably no way to tell who got the text from who, 
> or by what license or method. There's also no real way to know which 
> implementation actually did a sleep 1 or whether it really just 
> relinquished the Nms timeslice if there was no 'seconds' argument.
> That RQM and SLEEP are documented as being equivalent only confuses 
> the matter more in this "much ado about nearly nothing" but fun 
> discussion.
>
> 2)
> As I understand it, Unidata was conceived in a dream, and any relation 
> to other Pick platforms was purely coincidental - at least as 
> described in early lawsuits defending the originality of the platform.
> (Or maybe I'm thinking of Universe?) So how could there be an 
> "original purpose" of a command that was not based on something else?
> I'm sure that there is some logical reason for this and that we're not 
> looking at a smoking gun from 1991, but the historical significance is 
> intriguing.
>
> T
>
>
> From: Bob Wyatt
> > UniBasic User's Guide, Release 2.1, Copyright 1991 by Unidata, Inc.
> > "The original purpose of RQM was to release remaining execution time 
> > reserved for a program, allowing other programs to use the time.
>
>
> > REALITY by Microdata. DATA/BASIC Programming Manual, Series 3.0 - 
> > 4.0, Release 4.0, February, 1981
> >
> > "The time-shared environment of the REALITY system allows concurrent 
> > execution of several programs, with each program executing for a 
> > specific time period (called a timeslice or quantum) and then
> pausing
> > while other programs continue execution. The RQM statement causes a 
> > one-second sleep, terminating the program's current timeslice. The 
> > RQM statement may be used in heavy compute loops to allow increased 
> > execution speed of other concurrently executing programs by giving
> up
> > time. It may also be used to cause pauses."
>
>
> _______________________________________________
> U2-Users mailing list
> [email protected]
> http://listserver.u2ug.org/mailman/listinfo/u2-users
>
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to