I tested Windows 3.0 for study reasons and I kept out of curiosity, and discovering some things, I was surprised.
Monothread multitasking scheduled for system events, but you could use "N" virtual DOS windows.
I remember in particular the issue of memory in banks. There was EMMS that switched the banks and XMMS you used on i386.
The operating system manages 640 KB of memory and the rest was in banks, to use more of this incredible amount of memory, using Globalalloc and did not have the pointer but the handle, then you should have been a lock that was staring the bank and gave you the pointer.
All of this work in the "real" mode where the 32-bit 386 processor that had I/O mapping/segmented pagination/task switching with single instruction, entered the simulation of a 16-bit XT, to adapt to DOS.
Things you would not believe ... but those were the war years of operating systems.
Today we use a quadcore smartphone with 4 GB ram and 32 GB flash and we are not aware of anything...
Thanks for this thread
@BoraMurdar