From: kim@Software.Mitel.COM (Kim Letkeman)
Newsgroups: comp.os.ms-windows.programmer.misc
Subject: Re: Setting a Window to "Always on top"
Date: 30 Sep 92 13:00:18 GMT
	<qx_ptgg.whedon@netcom.com>
Distribution: na
Organization: MITEL Public Switching, Kanata, Ontario, Canada
In-reply-to: whedon@netcom.com's message of 28 Sep 92 19:53:40 GMT

| In article <80636@ut-emx.uucp> bk@ccwf.cc.utexas.edu writes:
| >
| > Help !
| >
| >I am interested in creating several TASKS that run as background
| >processes under Windows 3.1.  I wish these tasks to handle Serial
| >Comms and other slow I/O, while I run a process in the foreground
| >that is timing critical.  Therefore the I/O would have to be
| >buffered.  

Windows provides the ability to specify your buffer sizes. So long as
you don't lock interrupts out for long periods of time, or so long as
you use a UART with a FIFO on it, you should have no problem. In
Windows 3.1 you can use the enablecommnotify function so that you
don't have to constantly scan your input and output queues.

| >I would like to know:
| >
| >1. Which book in the SDK has this information?

The information is spread across several manuals. Summary info is
available in Reference 1: Overview. The function and structure
references provide the rest of the detail (3.1 SDK).

| >2. What is the difference in the way Windows handles DOS-Apps
| >   and Windows apps when tasking?  I have a basic understanding
| >   of this, but any clarification on preemptive/nonpreemptive
| >   would be helpful.

Windows tasks are cooperatively multi-tasked within a single
environment. Each DOS window gets its own virtual machine that is then
time sliced with all other virtual machines and the Windows
environment. Relative priorities are used to balance the applications
for performance tuning. It's not really pretty, but it works well
enough.

---------------------------------------------------------------------
In article <qx_ptgg.whedon@netcom.com> whedon@netcom.com (Bill Whedon) writes:

| Based on your needs, the smartest thing you could do would be to
| switch over to OS/2 2.0.  DOS/Windows is not _really_ multitasking,
| in the strict sense of the term, and what little it does in that
| line will make your life a living hell to make use of.

Windows is multi-tasking in any sense of the term. There is
cooperative multi-tasking between Windows apps and time slicing of the
virtual DOS machines with the Windows environment and each other.

| OS/2, on the other hand, is a true preemptive multitasking and
| multithreaded environment, with compilers and toolkits designed to
| support its abilities.

This is a clear advantage of OS/2 over Windows 3.X.

| It will run on any machine which properly supports Windows, and will
| also run W/3.0 programs _without_ Windows.  (W/3.1 programs require
| you to run in Windows, but I believe IBM is working on that
| situation right now).

True, but he didn't ask the question on the OS/2 programmers groups or
the Windows advocacy group.

| The price is right, too.  Why should you settle for Windows, when
| you can have OS/2 and its advantages for about the same money?

I can think of two reasons.

1. He has to use it for whatever corporate reason might be dominant
   over personal preference.

2. There are currently about 90 million DOS machines, 10 million
   Windows machines and about 1 million OS/2 machines (source: latest
   PC magazine.) The economics are rather obvious.
--
Kim Letkeman	kim@Software.Mitel.COM
Newsgroups: comp.os.ms-windows.programmer.misc