From: shurr@cbnews.cb.att.com (larry.a.shurr)
Subject: Re: OS/2 2.0 and My Modem Blues
Organization: AT&T Bell Laboratories, Columbus, OH
Date: Thu, 31 Dec 1992 04:43:16 GMT

In article <1992Dec28.033621.14496@actrix.gen.nz> Steve.Withers@bbs.actrix.gen.nz writes:
>In article <1hl5tiINN8cd@cae.cad.gatech.edu> chris@cad.gatech.edu (Chris McClellen) writes:
>> [2400 baud download in one VDM slows all VDM's to a crawl].

>> This problem may cause me to get another OS.  I like OS/2, but I find
>> it inexcusable that it does this kind of stuff at LOW modem speeds.

>OS/2 works fine with a 2400 modem on my machine at work....but I use an OS/2
>comms program. I have actually had two modems downloading simultaneously on
>that machine while I was zipping up a hard drive to the network on the same
>system - all in the background while I checking my CD-ROM for product info in
>a DOS window.

Steve's is by far the best suggestion for your problem.  I, too, exper-
ienced an dramatic slowing of concurrent VDM sessions while running
a 2400 baud Zmodem download using Telix -- it could take 30 seconds to
echo a single character typed on a 4DOS command line.  Meanwhile VIO
and PM sessions continued to run with almost no ill affect.

The behavior of the system under these circumstances suggests that there
are critical sections in the virtual interrupt portion of the shared VDM
code which -- perhaps -- block execution of the emulator in all other
VDM's during the delivery of a virtual interrupt.  I don't know if this
represents a flaw in the design of the VDM code or an architectural
necessity... how could I?  I don't even know if my assessment of the
situation is even close to reality.

Believe me, this emulation of a "DOS machine" down to the interrupt level
is an ambitious undertaking.  Software emulation of hardware sounds easy,
but making the beast accurate is a bear.  Life would have been a lot
easier if they could have forgotten about emulating interrupts.  Unfor-
tunately, you can't if you want to support a lot of DOS software -- it's
just too intimate with the hardware.  Consider the timer interrupt.  How
do you assure it's accuracy (55 millseconds + a pinch) with a stochastic,
asynchronous load in the background?  You don't.  IBM engineers had to
adopt a different standard: delivery of the correct number of timer
interrupts over a given period -- 91 ticks every 5 seconds or some such,
though the interval between ticks is necessarily imprecise and variable.
A pretty problem... but I digress.

The clue was that VIO and PM sessions were virtually... uh, perhaps I
should say practically unaffected.  Thus it is something related to the
VDM code which necessarily affects all concurrent VDM's.  It suggests
the solution, as well: Steve's.  Adopt an OS/2-native comm package.
I've been working with TE/2, though with some frustration: it's dread-
fully slow in a windowed VIO session ever since I loaded the SP and 
I'm having trouble getting file transfers to work well.  Actually,
I've only succeeded in getting Zmodem downloads to work and that at
only about half the pace I achieved with Telix.  I have yet to get 
Zmodem or any other upload to work at all.  Like so much of OS/2, it's
only "halfway there" -- so far.  Steve, maybe you can help me here.

Not a very good recommendation I'll grant, but I hope that 2.1 will be
more like what I want to see in a system of this sort.  Dammit, I just
want OS/2 to live up to its promise!

Larry
-- 
Larry A. Shurr (las@cbnmva.att.com) speaking only for myself.
Norman, listen carefully.  I am lying.  Are you sure your circuits are
registering?  Your ears are green.  Logic is a little bird singing in a
meadow.  Logic is a wreath of pretty flowers which smell bad! - Mr. Spock