Reading your message brought the phrase "cooperative preemption" to mind.
I think I coined it....?
Maybe that makes sense and maybe it doesn't. If an application is hung,
there would have to be some mechanism to prevent it from hanging the whole
system.
Windows 9x is a good example of this kind of hybrid except I'm pretty sure
it does one or the other mode but not both simultaneously.
When you run a win3x application under 9x, the entire multitasking scheme
reverts to cooperative which not a nice thing to do even to windos. Also,
all win3x apps share the same space, one crashes, all can crash because of
it.
As pertains to running windows programs, OS/2 does 'cooperative
preemption' in a way. If you want to run a win3x application, you can
either run it entirely in it's own, protected memory space (seamless), or
in a shared, protected space (shared between several win3x apps together
in the same space). In the first mode, if a seamless 3x app crashes, it
affects only it's own space. If an app running in shared space crashes,
it can crash all it's buddies sharing it's memory.
OS/2 does not run Windows apps, it runs Windows. You can run as many as
240 copies of Windows 3.11 with as many apps each as each can support.
You can substitute one or more of those 240 copies with seamless (single
app) sessions which can reduce the total number of apps which can be run,
but with 240 available Windoses to run, it is trivial to mention that.
Who on earth is going to run eight gazillion Windows apps? One or ten, but
not tens of thousands. Within a Win/OS2 session running multiple programs,
cooperative multitasking is used as that is what Win311 uses and win311 is
what is running. OS/2 treats each win311 session as a single program and
multitasks them preemptively. Because of this, each win311 session is able
to communicate with other win311 sessions which may be running (clipboard
etcetera) as well as with OS/2 and DOS programs 'outside' the 'bubble'.
Using this method, OS/2 avoided the Kluge of windows9x and is BY FAR more
compatible with DOS and Win3x apps than is Windows 9x or NT for that
matter. A dos example:
Note: OS/2 2.11 is OLD, classicmp old.
OS/2 2.11 without networking functions installed. I open a DOS window,
load LSL, NE2000, IPXODI and NetX, run Quake in this dos window and play
over the net'. Windows 9x wouldn't even take Quake in a window, much less
a nic driver entirely encapsulated in a protected memory area. OS/2, since
the NIC's interrupt and base address were not used by it, it allows direct
hardware access. If an OS/2 driver were loaded for that NIC, it would not
provide access via virtualization, omitting the need to load the NE2000
driver, IPXODI, etcetera.
Because the DOSbox support is so strong, not only can you run dos in a
window, but you can run up to 240 copies of DIFFERENT 16bit operating
systems. I've had a Win95 dosbox running next to a 95b dosbox next to a
98a dosbox next to a 98b dosbox next to a Xenix box, next to a win311 box,
next to a ... you get the picture.
For example, I've got fat32.ifs for OS/2 loaded now, but at one time I
didn't and needed to read a fat32 disk on my system under warp. I just
loaded up a copy of 98's dos and of course had access to the fat32
filesystem even though warp does not by default understand fat32 at all.
With the included filesystem filter, that copy of 98 dos could 'bridge'
the two giving me convenient access to copy the files I needed. No muss,
no fuss. If you do this often, you can chose not to 'boot' the dosbox from
floppy, but create a file containing an Image of that floppy on your hard
disk. Just a file. Associate it with an icon and wham! instant
Dos/98/xenix/minix/whatever session.
It does not work with 32bit operating systems like Linux. TomsRTBT
(Linux) will boot to a point, but once it goes into protected-mode it
errors because it was ALLREADY running in protected mode and didn't know
it until it tried to switch.
I don't think there is another operating system out there that is NEARLY
so flexible in supporting the multitasking of instances of other operating
systems. In addition, each individual session can be customized by
altering any of 75 provided settings for it such as priority, hardware
access, XMS and EMS and DPMI memory sizes, video refresh, and on and on
and on. Adjusting a setting in one dosbox affects only that box. Win9x's
customization is primitive by comparison and could never approach it
because the 9x architecture precludes doing this.
Architecturaly speaking, allowing direct access to hardware which has not
been virtualized (unutilized) by loading a driver could allow problems,
but I don't know how a virus or trojan could take advantage of that since
it couldn't possibly know you had a given card in your system or that you
chose not to load a driver for it.
NT won't allow direct hardware access at all which is architecturally
speaking, safer, but the consequences are lost compatability with legacy
applications and much reduced flexiblility.
I'm not sure which approach is 'superior', but I prefer OS/2's approach.
I mean, you can run Xenix in a window by default!
Whew!
Regards,
Jeff
In <3A60CD2A.F4FCF29C_at_coin.org>, on 01/13/01
at 05:15 PM, John Tinker <jtinker_at_coin.org> said:
>ultimate preemption, expressed as its servicing of hardware interrupts. I
>would expect that it would only be able to delegate its authority to be
>preemptive to *any* application if *every* other application running
>agrees to the proposition. But I do not have experience with that level
>of the operation of the various operating systems. In my own applications
--
-----------------------------------------------------------
Jeffrey S. Worley
President
Complete Computer Services, Inc.
30 Greenwood Rd.
Asheville, NC 28803
828-277-5959
Visit our website at HTTP://www.Real-Techs.com
THETechnoid_at_home.com
-----------------------------------------------------------
Received on Sat Jan 13 2001 - 16:15:45 GMT