Talk:Co-operative multitasking

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

The statement about Win95 needs to be verified and clarified. Windows 2.0 had preemptive DOS apps, and Windows 95 was the first to introduce preemption of Win32-based apps. (I think) That the Mac system relied on a flat, shared memory space should also be mentioned. An explicit statement also needs to me made that this system can (and often did) lead to system hangs from single misbehaving applications. Someone more familiar with MacOS and RiscOS should give it another crack. --Heywood

Windows/386, a 1987 precursor of Windows 3.0, first introduced pre-emptive multitasking to Windows; you could run multiple DOS applications in separate DOS boxes and they'd pre-emptively multitask. Windows 3.0 (1990) had pre-emptive multitasking for Windows applications if configured to run in Enhanced mode. --Minority Report 21:35, 7 Nov 2004 (UTC)

This is not true. I remember writing Win16 programs in C back then (Win 3.x) and they were cooperatively multitasked. Programmers had to explicitly yield at the bottom of the application's event loop otherwise Bad Things (ie, lockup) would happen. --Bk0 23:21, 5 Mar 2005 (UTC)

I've taken the following paragraph out for editing because it's gibberish. I know what the author is getting at but it really isn't good English. I'm inserting a more concise version that I hope gives the basic sense of the paragraph. --Minority Report 21:18, 7 Nov 2004 (UTC)

Co-operating multitasking takes special precautions when programs are event or message-driven, for example GUI applications, and hence can be upcalled from the operating system or from the GUI library. Although any invocation of the operating system could be a preemption point, this would immediately require that applications explicitly define critical sections, in order to avoid getting reentered arbitrarily and confused. Therefore, only very specific operating system calls can cause preemption, typically calls which allow to get the next message from the application's input queue.