2 ms·
The way 386 enhanced mode worked was that there was a 32-bit preemptive multitasking kernel that would run 16-bit virtual machines. The first VM ran Windows in
by ndiddy 6mo ago
The way 386 enhanced mode worked was that there was a 32-bit preemptive multitasking kernel that would run 16-bit virtual machines. The first VM ran Windows in standard mode, and the rest were the DOS VMs. This meant that Windows programs still shared an address space and were cooperatively multitasked. This is actually somewhat similar to how Apple shoehorned multiprocessor support into later versions of Classic Mac OS. The OS runs under a microkernel. There's one main thread where all the cooperative multitasking happens (anything that uses the Toolbox must run in this thread), and then both user software and the system can make new threads that get preemptively multitasked with the main thread. The main difference is that I don't believe there's a way for Windows software to make use of the preemptive scheduler (unless maybe they do something hacky with a VxD driver, but that's kind of silly).