Ist MS DOS multitaskingfähig?

  • Ich weiß jetzt nicht, ob es wieder eine typisch florida-Frage ist, aber ich finde sie interessant und möchte sie gerne aufgeklärt haben.

    Auf vielen DOS-Seiten findet man ja, dass MS DOS kein Multitasking-Betriebssystem ist.
    Im Grunde genommen ist ja die Aussage falsch. Wenn man z.B. den DOS-Editor oder Turbo C/Pascal für DOS öffnet, bekommt man ja in der "Datei"-Menüleiste eine Funktion, um in die Eingabeaufforderung zu gelangen. In der Eingabeaufforderung kann man währenddessen andere Prozesse ausführen und wenn man den Befehl "exit" eingibt, erscheint ja wieder der DOS-Editor oder Turbo C/Pascal mit den gleichen Änderungen wie vor dem Start der Eingabeaufforderung. Demnach wird ja der DOS-Editor im Speicher behalten, während die Eingabeaufforderung geladen wird. Und dies bedeutet wiederrum, dass MS DOS sehr wohl Multitasking-fähig ist.

    In wie weit könnte meine Aussage stimmen? Also, mich interessiert es, auch wenn es wieder meine typische Frage sein soll.

  • Das hat aber mit Multitasking wenig zu tun. Guckst du hier.
    Mit deiner Begründung wäre ja quasi alles Multitasking... selbst ein alter Commodore 64 ;).
    Unter DOS sind TSR-Programme rudimentäre Vorläufer des Multitasking. Das erste wirklich verbreitete Multitasking Betriebssystem ( präemptives Multitasking ) hatte übrigens der Amiga.

    Mich nerven Verschwörungstheoretiker

    Wer Rechtschreibfehler findet, darf sie behalten!

  • Man spricht von kooperativen und vom präemptiven Multitasking. Bei kooperativen (dem alten) müssen Programme freiwillig Rechenzeit abgeben und werden in der Zeit quasi eingefrohren.

    Beim präemptiven, exisitiert eine eigene Instanz, die über die Rechenzeit wacht. Der Scheduler merkt wenn Programme gerade keine Rechenzeit benötigen (fertig, I/O Warten) und verteilt dynamisch, ist aber eigentlich auch nur ein Programm. Während der Pausen sind natürlich auch die anderen Programme angehalten. Nur sind die Pausen deutlich kürzer und die prioritäten werden so gelegt das jeder mal rankommt, und gerade arbeitene Programme haben eine höhere Chance an die Rechenzeit zu kommen.

  • Haben nicht einige zu der Zeit mit multitasking experimentiert? Aber damals konnte es nichts werden. Jedes Programm lief für sich selbst, mit hoher Hardwarenähe, es kostete zusätzlichen Speicher der teuer war, man brauchte nen modernen prozessor wie den 286, der aber auch seine unzulänglichkeiten hatte.

  • Zitat von Dirk

    Man spricht von kooperativen und vom präemptiven Multitasking. Bei kooperativen (dem alten) müssen Programme freiwillig Rechenzeit abgeben und werden in der Zeit quasi eingefrohren.


    Mit der Definition des "kooperativen Multitaskings" würde wirklich jedes System, bei dem man wie in manchen DOS-Programmen eine shell öffnen kann und das aufrufende Programm währenddessen anhält, als "Multitasking-OS" bezeichnen können. Ich erinnere mich noch an die Glaubenskriege damals zwischen den WIN3.X- und OS/2-Anhängern, bei denen letztere in Bezug auf WIN3.X auch gerne von "seriellem Multitasking" gespöttelt haben.

    ot:Aber mit der Definition kann man auch philosophisch verallgemeinernd von "serieller Polygamie" in unserer Gesellschaft sprechen, wenn man sich zeitlich begrenzt für einen "Lebensabschnittsbegleiter" entscheidet, den man nach der Beendung der Beziehung durch jemand anderes ersetzt.

    "I think that computer viruses should count as life. I think it says something about human nature that the only form of life we have created so far is purely destructive. We've created life in our own image."
    (Stephen William Hawking)
    (Igor bevölkert das Winhistory-Forum seit dem 21.09.2006)
    (In the rpg commonly known as rl, Igor got an extra life on March 28, 2009)

  • Zitat von Igor Todeshure


    ot:Aber mit der Definition kann man auch philosophisch verallgemeinernd von "serieller Polygamie" in unserer Gesellschaft sprechen, wenn man sich zeitlich begrenzt für einen "Lebensabschnittsbegleiter" entscheidet, den man nach der Beendung der Beziehung durch jemand anderes ersetzt.

    Nach der Theorie braucht man ja kein Multitasking... Echtes Multitasking heißt doch: ich kann immer "zurück" oder mal hier hin oder mal dort hin 8D ... wenn das meine Frau erfährt...

    Mich nerven Verschwörungstheoretiker

    Wer Rechtschreibfehler findet, darf sie behalten!

  • Wichtig zu beachten: Nur weil edit.com nen binären kooperativen Multitasking-Switcher ("Scheduler" wär ja bereits übertrieben) drin hat, heisst das nicht, dass das OS selber Multitasking konnte.

    Das gleiche gilt ja für die DOS-Shell oder ähnliche Aufsätze: Nur weil die sowas ähnliches wie Multitasking implementiert hatten, heisst das nicht, dass das Betriebsystem das angeboten hätte.

    Einzig TSR lässt sich mit viel gutem Willen als ansatzweise Multitasking betrachten. Wobei auch das nicht wirklich von dem Betriebsystem (aka. DOS) verwaltet wurde, sondern zu einem grossen Teil auch von der CPU und den TSR-Programmen selber.

    Ich würde also behaupten, dass DOS als Betriebssystem (aka. Funktions-Dienstleister) eben nicht Multitasking-fähig war, eben weil es keine entsprechende Funktion anbot, sondern dass Programme das selber implementieren mussten.

    Es gab übrigens ein paar kooperative Multitasking-Aufsätze für DOS, die immer dann wenn ein Program auf User-Input oder ähnliches gewartet hat, immer dann zwischen den Programmen gewechselt hat: http://web.archive.org/web/2009060322…tm#multitasking (allerdings ist nichts mit grafischer Ausgabe, das kriegt das Ding nicht gemultiplext).

  • wie gandro schon meinte, ist DOS selbst nicht multitaskingfähig, weils selbst keine mechanismen dafür bietet.
    das gängige Verständnis von Multitasking beinhaltet auch eine quasi-parallelität, die gibt es in dem genannten edit.com-Beispiel nicht, weil da das andere Programm einfach gestoppt und im Speicher gehalten wird

    übrigens konnte DR-DOS 7 von sich aus ein einfaches multitasking ähnlich dem switchen von virtuellen terminals an einem linux-system, aber das hat natürlich praktisch niemand mehr benutzt

  • Beitrag von Blue-Fox (3. August 2011 um 22:26)

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Blue-Fox (3. August 2011 um 22:40)

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • mit cubic-Player kann man btw musik im hintergrund laufen lassen^^

    HP DL-580 G7
    2x Intel Xeon E7-2870 (10 x 2,4GHz)
    96GB DDR3-1333 RAM
    NVIDIA GeForce GTX 1080 MSI (Blower)
    Samsung 850 Pro 512GB auf PCIe Karte
    4TB Seagate billigfieh
    72GB 10K HP Drive

  • ...Und der Maustreiber läuft auch so, oder CD-Treiber. Aber das fällt unter TSR, und das hat gandro ja schon ausfürhlich erläutert

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Der Maustreiber läuft eigentlich auch im Multitasking, aber das ist nicht das gleiche, wie bei Programmen. Und der CD-ROM-Treiber läuft nicht im Multitasking, sondern ist einfach nur ein speicherresistentes Programm, welches bei Gebrauch aufgerufen wird.
    Man muss hier ganz klar zwischen Multi-Tasking und resistenten Programmen unterscheiden. Ersteres setzt tatsächlich gewisse Fähigkeiten der Hardware voraus (vor allem die verschiedenen Speichermodi sind wichtig), letzteres ist selbst auf C64 und Atari 8 Bit möglich.

    MS-DOS schränkt den Programmierer beim Zugriff auf die Hardware in keiner Weise ein, so dass jeder, der fähig ist, Multitasking zu implementieren, auch Multitasking implementieren kann. Genau auf diese Weise machen es MS-DOS-Anwendung namens "Windows 3.1" und "Windows 95".

  • Zitat von atarixle

    Der Maustreiber läuft eigentlich auch im Multitasking, aber das ist nicht das gleiche, wie bei Programmen. Und der CD-ROM-Treiber läuft nicht im Multitasking, sondern ist einfach nur ein speicherresistentes Programm, welches bei Gebrauch aufgerufen wird.
    Man muss hier ganz klar zwischen Multi-Tasking und resistenten Programmen unterscheiden. Ersteres setzt tatsächlich gewisse Fähigkeiten der Hardware voraus (vor allem die verschiedenen Speichermodi sind wichtig), letzteres ist selbst auf C64 und Atari 8 Bit möglich.

    MS-DOS schränkt den Programmierer beim Zugriff auf die Hardware in keiner Weise ein, so dass jeder, der fähig ist, Multitasking zu implementieren, auch Multitasking implementieren kann. Genau auf diese Weise machen es MS-DOS-Anwendung namens "Windows 3.1" und "Windows 95".

    Wer die Hardware direkt programmiert umgeht damit das Betriebssystem und programmiert damit eigentlich nicht systemkonform. Daher rühren allerlei Inkomatibilitäten auf unterschiedlicher Hardware uns sollte bei sauberer Programmierung des Systems vermieden werden. Es sind im eigentlichen Sinn auch keine MS-DOS Programme mehr, da sie MS-DOS nur als "Startvehikel" missbrauchen. Windows 9x macht es wimre ähnlich und ist dafür ein gutes Beispiel. Beim Start entreisst es dem DOS die Kontrolle über den PC und macht seine "sauereien" mit eigenen Treibern.
    .... glaube ich ....:D

    Mich nerven Verschwörungstheoretiker

    Wer Rechtschreibfehler findet, darf sie behalten!

  • MS-DOS hat ja nicht wirklich die Kontrolle über das System. Es läuft eigentlich so ab, dass MS-DOS zwar irgendwie den Speicher arrangiert und aufteilt, jedoch sich die Programme mehr oder weniger "freiwillig" an die Vorgaben von MS-DOS halten.
    Als DOS, also als Disk Operating System, ist der FAT-Treiber der eigentliche Kern des System. Dieser wird natürlich nicht mehr für Dateizugriffe verwendet, sobald ein Programm z.B. die Windows-Variante des fopen-Befehls verwendet.

    MS-DOS-konform zu bleiben heißt eigentlich nur, sich an die Vorgaben für die Speicherverwaltung zu halten und die MS-DOS-eigenen Systemcalls für den Dateizugriff zu verwenden. Der direkte Hardware-Zugriff, z.B. auf die VGA-Karte (egal, ob VGA, SVGA oder VESA-Modus), ist völlig MS-DOS-konform. Genauso wie auch die Implementierung eines eigenen kleinen Multitasking-Kernels.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!