From: stow AT skyfox DOT usask DOT ca Newsgroups: comp.lang.asm.x86,comp.os.msdos.djgpp,comp.os.msdos.programmer,comp.lang.pascal.borland,alt.msdos.programmer Subject: RE: Preemptive Multitasking under DPMI Date: 28 OCT 96 22:08:36 GMT Organization: University of Saskatchewan Lines: 24 Message-ID: <28OCT96.22083606@skyfox.usask.ca> References: <5538hu$2ue AT news DOT latnet DOT lv> NNTP-Posting-Host: sask.usask.ca To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp In a previous article, nobody AT nowhere wrote: >We are trying to understand reentrancy issues related to preemptive >multitasking under DPMI. We've read the DPMI specs carefully, but things are >not completely clear. We can see three multitasking schemes: Lotsa luck getting preemptive multi-tasking under DOS, Windows, or Win95. About the best you can hope for is cooperative multitasking. For pre-emptive multi-tasking you are going to have to use OS/2, NT, some variant of UNIX, NextStep, etc. Preemptive M.T. requires that the operating system (including extensions to the OS, such as when you run Borlands DPMI interface) be able to stop one process when the _OS_ decides it is a good time, and give a few time slices to another process. DOS, Win 3.x don't have that capability at all. Win95 is _supposed_ to, but fails miserably. Instead those OSes sit and wait for an app to "cooperate" by saying "This is a good place for me to pause if you have someone else waiting for a little time." A good example of the failure of all of those OSes to implement pre-emptive multitasking is that once you start a floppy formatting you are shut out from doing anything else until the format is done, even though formatting a floppy is a relatively cpu un-intensive task: the cpu has lots of time to spare for other things but the format program won't cooperate. Formatting a floppy while running OS/2 doesn't slow anything else down noticeably because the formatting requires so little attention from the cpu.