Wie war Multitasking in älteren Windows-Versionen möglich?

Wie war Multitasking in älteren Windows-Versionen möglich?

How Was Multi Tasking Possible Older Versions Windows

Wenn man bedenkt, dass DOS ein Single-Tasking-Betriebssystem war und es mit frühen Windows-Versionen verbunden war, wie haben frühere Versionen von Windows es geschafft, Multitasking zu erreichen? Der heutige SuperUser Q&A-Post befasst sich mit den Antworten auf diese Frage.



Die heutige Frage-und-Antwort-Sitzung kommt mit freundlicher Genehmigung von SuperUser – einer Unterabteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q&A-Websites.

Screenshot von Windows 95 mit freundlicher Genehmigung von Wikipedia .

Die Frage

SuperUser-Leser LeNoob möchte wissen, wie ältere Windows-Versionen als Multitasking-Systeme laufen konnten?:

Was bedeutet Sim-Pin?

Ich habe gelesen, dass DOS ein Single-Tasking-Betriebssystem ist. Aber wenn ältere Versionen von Windows (einschließlich Windows 95?) nur Wrapper für DOS wären, wie könnten sie dann als Multitasking-Betriebssystem laufen?

Gute Frage! Wie haben es ältere Windows-Versionen geschafft, als Multitasking-Systeme zu laufen?

Die Antwort

Die SuperUser-Mitwirkenden Bob und Pete haben die Antwort für uns. Zuerst, Bob:

Windows 95 war weit mehr als nur ein Wrapper für MS-DOS . Zitat von Raymond Chen:

  • MS-DOS diente in Windows 95 zwei Zwecken: 1.) Es diente als Bootloader. & 2.) Es fungierte als 16-Bit-Legacy-Gerätetreiberschicht.

Windows 95 hakte/überschrieben eigentlich fast alles von MS-DOS und behielt es als Kompatibilitätsschicht bei, während es die ganze schwere Arbeit selbst erledigte. Es implementiert auch präventives Multitasking für 32-Bit-Programme.

SIM-Karte in das iPhone einlegen

Prä-Windows 95

Windows 3.x und älter waren meistens 16-Bit (mit Ausnahme von Win32s, einer Art Kompatibilitätsschicht, die 16 und 32 überbrückt, aber das werden wir hier ignorieren), waren stärker von DOS abhängig und verwendeten nur kooperatives Multitasking – das ist diejenige, bei der sie ein laufendes Programm nicht zum Umschalten zwingen; Sie warten, bis das laufende Programm die Kontrolle übergibt (im Grunde genommen, sagen wir, ich bin fertig, indem ich dem Betriebssystem sage, dass es das nächste wartende Programm ausführen soll).

  • Multitasking war kooperativ, genau wie in alten Versionen von MacOS (allerdings im Gegensatz zu Multitasking DOS 4.x, das präventives Multitasking aufwies). Eine Aufgabe musste dem Betriebssystem weichen, um eine andere Aufgabe zu planen. Die Erträge wurden in bestimmte API-Aufrufe integriert, insbesondere in die Nachrichtenverarbeitung. Solange eine Aufgabe Nachrichten zeitnah verarbeitete, war alles super. Wenn eine Aufgabe die Verarbeitung von Nachrichten beendete und damit beschäftigt war, eine Verarbeitungsschleife auszuführen, gab es kein Multitasking mehr.

Windows 3.x-Architektur

Wie frühe Windows-Programme die Kontrolle übernehmen würden:

  • Windows 3.1 verwendet kooperatives Multitasking – das bedeutet, dass jede laufende Anwendung angewiesen wird, regelmäßig eine Nachrichtenwarteschlange zu überprüfen, um herauszufinden, ob eine andere Anwendung die CPU-Nutzung anfordert, und wenn ja, die Kontrolle an diese Anwendung. Viele Windows 3.1-Anwendungen überprüfen die Nachrichtenwarteschlange jedoch nur selten oder gar nicht und monopolisieren die CPU-Steuerung so lange wie erforderlich. Ein präventives Multitasking-System wie Windows 95 entzieht einer laufenden Anwendung die CPU-Steuerung und verteilt sie an diejenigen, die je nach Systemanforderungen eine höhere Priorität haben.

Quelle

Alles, was DOS sehen würde, ist diese einzelne Anwendung (Windows oder andere), die ausgeführt wird und die die Kontrolle weitergibt, ohne sie zu beenden. Theoretisch kann präemptives Multitasking möglicherweise ohnehin auf DOS implementiert werden, indem eine Echtzeituhr und Hardware-Interrupts verwendet werden, um dem Scheduler zwangsweise die Kontrolle zu geben. Wie Tonny Kommentare , dies wurde tatsächlich von einigen Betriebssystemen durchgeführt, die auf DOS ausgeführt wurden.

386 Erweiterter Modus?

Oculus Rift-Bildschirmtür-Effekt

Hinweis: Es gab einige Kommentare zu 386 erweiterter Modus von Windows 3.x ist 32-Bit und unterstützt präventives Multitasking.

Dies ist ein interessanter Fall. Um das verlinkte zusammenzufassen Blogeintrag , 386 Enhanced Mode war im Grunde ein 32-Bit-Hypervisor, der virtuelle Maschinen ausführte. Auf einer dieser virtuellen Maschinen lief der Windows 3.x-Standardmodus, der alle oben aufgeführten Aufgaben erledigt.

MS-DOS würde auch innerhalb dieser virtuellen Maschinen laufen, und anscheinend waren sie präventiv Multitasking-fähig – es scheint also, dass der 386-Hypervisor im erweiterten Modus die CPU-Zeitscheiben zwischen den virtuellen Maschinen teilt (von denen eine normale 3.x und lief). andere, auf denen MS-DOS ausgeführt wurde), und jede VM macht ihr eigenes Ding – 3.x würde kooperativ Multitasking betreiben, während MS-DOS Singletasking wäre.

MS-DOS

DOS selbst war auf dem Papier Single-Tasking, aber es hatte Unterstützung für TSR Programme, die im Hintergrund bleiben würden, bis sie durch einen Hardware-Interrupt ausgelöst werden. Weit entfernt von echtem Multitasking, aber auch nicht vollständig Singletasking.

Dieses ganze Gerede von Bitness? Ich fragte nach Multitasking!

Nun, streng genommen sind Bitness und Multitasking nicht voneinander abhängig. Es sollte möglich sein, jeden Multitasking-Modus in jeder Bit-Nheit zu implementieren. Der Wechsel von 16-Bit-Prozessoren zu 32-Bit-Prozessoren führte jedoch auch andere Hardwarefunktionen ein, die präventives Multitasking hätten leichter implementieren können.

Da 32-Bit-Programme neu waren, war es auch einfacher, sie zum Laufen zu bringen, wenn sie gewaltsam ausgetauscht wurden – was möglicherweise einige ältere 16-Bit-Programme beschädigt hat.

Natürlich ist das alles Spekulation. Wenn Sie wirklich wissen möchten, warum MS in Windows 3.x (trotz des erweiterten Modus 386) kein präventives Multitasking implementiert hat, müssen Sie jemanden fragen, der dort gearbeitet hat.

was ist optimiertes akkuladen

Außerdem wollte ich Ihre Annahme korrigieren, dass Windows 95 nur ein Wrapper für DOS war.

Gefolgt von der Antwort von Pete:

In einem modernen Betriebssystem kontrolliert das Betriebssystem alle Hardware-Ressourcen und laufende Anwendungen werden in Sandboxen gehalten. Eine Anwendung darf nicht auf Speicher zugreifen, den das Betriebssystem dieser Anwendung nicht zugewiesen hat, und sie kann nicht direkt auf Hardwaregeräte im Computer zugreifen. Wenn Hardwarezugriff erforderlich ist, muss die Anwendung über Gerätetreiber kommunizieren.

Das Betriebssystem kann diese Kontrolle erzwingen, da es die CPU zwingt, einzutreten Sicherheitsmodus .

DOS hingegen geht nie in den geschützten Modus, sondern bleibt im Real-Modus ( * siehe unten). Im Real-Modus können die laufenden Anwendungen alles ausführen, was sie wollen, d. h. direkt auf Hardware zugreifen. Eine Anwendung, die im Realmodus ausgeführt wird, kann der CPU jedoch auch mitteilen, in den geschützten Modus zu wechseln.

Und dieser letzte Teil ermöglicht es Anwendungen wie Windows 95, eine Multithread-Umgebung zu starten, obwohl sie im Grunde von DOS gestartet wurden.

DOS (Disk Operating System) war meines Wissens nicht viel mehr als ein Dateiverwaltungssystem. Es stellte ein Dateisystem, Mechanismen zum Navigieren im Dateisystem, einige Tools und die Möglichkeit zum Starten von Anwendungen bereit. Es ermöglichte auch, dass einige Anwendungen resident bleiben, z. B. Maustreiber und EMM-Emulatoren. Es wurde jedoch nicht versucht, die Hardware im Computer so zu steuern, wie es ein modernes Betriebssystem tut.

Dampf im Spiel fps-Zähler

* Als DOS in den 1970er Jahren zum ersten Mal entwickelt wurde, existierte der geschützte Modus in der CPU nicht. Erst mit dem 80286-Prozessor Mitte der 1980er Jahre wurde der Protected Mode Teil der CPU.

Anzeige

Blättern Sie unbedingt zum Originalthread und lesen Sie die lebhafte Diskussion zu diesem Thema über den unten stehenden Link!


Möchten Sie der Erklärung noch etwas hinzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Sehen Sie sich hier den vollständigen Diskussionsthread an .

WEITER LESEN
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
  • & rsaquo; Cyber ​​Monday 2021: Die besten Tech-Deals
  • › So finden Sie Ihr Spotify Wrapped 2021
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • › Was ist MIL-SPEC Fallschutz?
Akemi Iwaya
Akemi Iwaya ist seit 2009 Teil des How-To Geek/LifeSavvy Media-Teams. Sie hat zuvor unter dem Pseudonym 'Asian Angel' geschrieben und war Lifehacker-Praktikantin, bevor sie zu How-To Geek/LifeSavvy Media kam. Sie wurde von ZDNet Worldwide als maßgebliche Quelle zitiert.
Vollständige Biografie lesen