• Thrashy@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    Before Win95/NT, Windows was basically just a skin on top of DOS, and DOS had never been designed with multitasking in mind. That meant that (with some exceptions, like 8-bit DOS programs running in virtual 8086 mode on a 386) for multiple programs to play nice with each other within the GUI, they had to “cooperatively multitask,” that is, they had to be programmed to share a common memory address space, and to yield back control of the processor to Windows periodically, so that the other open programs could get some execution cycles in before they had to yield in turn. As you can imagine, this didn’t work particularly well in practice, with software commonly forgetting to yield back to the task scheduler and pooping all over shared memory on a regular basis. Windows 95 was a quantum leap forward, with preemptive multitasking and independent address space for each running process.