Hvordan gamle Windows-versioner baseret på DOS håndterede multitasking

Hvordan kunne gamle versioner af Windows, som var baseret på DOS, fungere som multitasking-operativsystemer, når DOS er et single-tasking OS?

Gamle versioner af Windows, som var baseret på DOS, kunne fungere som multitasking-operativsystemer ved at bruge teknologier som kooperativ multitasking, Virtual 8086 mode og segmenteret hukommelsesmodel.

Hvordan kunne gamle versioner af Windows, som var baseret på DOS, fungere som multitasking-operativsystemer, når DOS er et single-tasking OS?

Gamle versioner af Windows, såsom Windows 3.x, var i stand til at udføre multitasking på trods af at være baseret på DOS, som i sig selv er et single-tasking operativsystem. Dette blev opnået gennem en række teknologiske og arkitektoniske løsninger:

  • Windows som et grafisk brugergrænseflade (GUI) lag: Windows kørte som et program oven på DOS, hvilket betød, at DOS stadig var til stede i baggrunden, men Windows håndterede multitasking.
  • Kooperativ multitasking: I stedet for at operativsystemet selv styrede tidsdelingen mellem programmer, var det op til hvert enkelt program at give kontrol tilbage til Windows. Dette betød, at programmer skulle være designet til at samarbejde om multitasking.
  • Virtual 8086 mode: På Intel 80386 og senere processorer kunne Windows køre flere DOS-programmer samtidigt ved at bruge Virtual 8086 mode, som tillod flere virtuelle maskiner at køre på samme tid.
  • Segmenteret hukommelsesmodel: Windows brugte en segmenteret hukommelsesmodel, som gjorde det muligt at isolere forskellige programmer i deres egne hukommelsessegmenter, hvilket reducerede risikoen for, at et program kunne påvirke et andet.
  • Swap-filer: Windows kunne bruge swap-filer til at udvide den tilgængelige hukommelse ved at skrive inaktive dele af programmer til disk, hvilket gav mulighed for at køre flere programmer samtidigt, selv med begrænset fysisk RAM.
  • Timer-interrupts: Windows brugte hardware-timer interrupts til at skifte mellem forskellige programmer, hvilket gav en form for tidsdeling, selvom det ikke var ægte preemptiv multitasking.

Disse teknikker tillod Windows at give brugerne en oplevelse af multitasking, selvom det underliggende DOS-operativsystem kun kunne håndtere én opgave ad gangen.