TaskMAX
TaskMAX ist ein Taskswitcher von Digital Research, der in DR DOS 6.0 enthalten ist und u. a. ViewMAX um die Fähigkeit zum Multitasking ergänzt. Ab Novell DOS 7 wurde TaskMAX durch TaskMGR ersetzt.[1] ViewMAX mit TaskMAX standen in direkter Konkurrenz zur DOS-Shell von Microsoft, die in MS-DOS enthalten war.
Vergleich
[Bearbeiten | Quelltext bearbeiten]Im Unterschied zum Taskswitcher der DOS-Shell kann TaskMAX unter Verwendung des Protected Mode ab dem Intel 80286 auch vom erweiterten Speicher (englisch Extended Memory, XMS) Gebrauch machen.
Auf einem i386-kompatiblen Prozessor bietet TaskMGR – im Gegensatz zur DOS-Shell – unter Verwendung des DOS Protected Mode Interface (DPMI) und dem VM86-Modus echtes Multitasking. Auch TaskMAX unterstützt dies, pausiert jedoch inaktive Tasks. In beiden Fällen laufen DOS-Programme dabei in ihrer eigenen virtuellen Real-Mode-Umgebung, während TaskMAX/TaskMGR selbst im Protected Mode läuft. Aus dem erweiterten Speicher (XMS) stehen jedem VM86-Task bis zu 1 MiB individueller Arbeitsspeicher, aus Sicht der Real-Mode-DOS-Anwendung also der volle konventionellen Speicher inklusive des oberen Speicherbereichs, abzüglich des Speichers, der vor dem Start von TaskMax/TaskMGR belegt wurde, zur Verfügung. Ein weiterer Vorteil der Verwendung des VM86- und Multitasking-Betriebsmodus ist, dass TaskMAX/TaskMGR immer wieder die Kontrolle über den Prozessor zurückerlangen kann und somit abgestürzte oder eingefrorene VM86-Tasks kontrolliert beenden kann.
Auf einem 8086/8088 oder späteren Prozessoren mit weniger als 1 MB RAM läuft TaskMAX ausschließlich nur im sogenannten Taskswitching-Modus. In diesem Betriebsmodus wird beim Umschalten (englisch task switching) der bestehende Task, ähnlich wie bei der DOS-Shell, von TaskMAX aus dem Speicher entfernt und in einer einzigen versteckten Auslagerungsdatei Namens TASKMAX.SWP
zwischengespeichert, um danach entweder den nächsten Task aus diesem Auslagerungsspeicher wieder in das RAM zu laden oder, falls dieser noch nicht existiert, neu zu laden. Da in diesem Betriebsmodus TaskMAX als TSR-Programm durch einen Interrupt nach Eingabe einer Tastenkombination zum Aufrufen von TaskMAX darauf angewiesen ist, dass der vorherige Task den Prozessor wieder an TaskMAX abgibt, ist bei einem Absturz oder Einfrieren des jeweiligen Programms im Task, oder falls dieses die Tastatureingabe abfängt und nicht weitergibt, nicht garantiert, dass TaskMAX die Kontrolle wieder erlangt. Einzelne Tasks können daher dazu führen, dass der Rechner nicht mehr reagiert und neu gestartet werden muss.
Auf einem 286er wird ebenfalls der Taskswitching-Modus verwendet. Mit dem Unterschied, dass bei Anwesenheit von mehr als 1 MiB RAM für TaskMAX der 16-Bit-Protected-Mode benutzt wird um die Tasks beim Kontextwechsel anstatt auf die Festplatte in höhere Speicherbereiche des RAM auslagern zu können. Der Wechsel läuft dadurch schneller ab, allerdings müssen die Daten und der Programmcode zwischen dem konventionellen und dem höheren Speicherbereich umkopiert werden. Dieser Schritt entfällt im Multitasking-Modus von TaskMAX der durch den 386 und seiner VM86 möglich ist. Der Nachteil des Taskswitching-Modus, dass ein Task wie beim 8088 die Kontrolle nicht mehr an TaskMAX zurückgibt, bleibt auch beim 286er bestehen.
Der Taskswitching-Modus kann ab dem 386er mit dem Kommandozeilenparameter /S
erzwungen werden und hat dort dann die gleichen Nachteile.
Die DOS-Shell von Microsoft bot bis zuletzt nur einfaches Taskswitching mit Auslagerungsdateien, auch auf Systemen mit 286/386-Prozessor. Wer eine vergleichbare Funktionalität wie TaskMAX auch unter MS-DOS haben wollte, musste zu Windows 3.x greifen und dessen Erweiterten Modus und die DOS-Eingabeaufforderung verwenden.
In TaskMAX Version 1.0 von DR-DOS 6.0 konnte TaskMAX auch dazu benutzt werden, einfache Textstrings vom einen Task in einen anderen zu kopieren, eine Art Copy & Paste. Dies erfolgte über simulierte Tastatureingaben und war somit prinzipiell mit jedem bestehenden DOS-Programm möglich, welches die DOS oder BIOS Tastatureingaberoutinen verwendete. Diese Funktion wurde in TaskMGR Version 2.0 ab Novell DOS 7 entfernt. Die DOS-Shell von Microsoft verfügte zu keinem Zeitpunkt über eine derartige Fähigkeit.
Um zu verhindern, dass zwei Tasks zur gleichen Zeit auf die gleichen Dateien zugreifen können erfordert TaskMAX/TaskMGR das in DR DOS mitgelieferte Programm SHARE.EXE. Dieses muss vor dem Start von TaskMAX/TaskMGR ausgeführt werden und läuft als speicherresistentes Hintergrundprogramm (TSR), womit es einen Locking Mechanismus auf Dateiebene bietet.
Versionsgeschichte
[Bearbeiten | Quelltext bearbeiten]Version | DOS | Veröffentlichung | Anmerkungen |
---|---|---|---|
TaskMAX 1.0 | DR DOS 6.0 | März 1992 | Erste Version. |
TaskMGR 2.0 | Novell DOS 7.0 | Januar 1994 | In Novell DOS wurde TaskMAX erweitert und zu TaskMGR umbenannt. TaskMGR wurde für 386er CPUs um die Fähigkeit erweitert, mithilfe des VM86 Modus echtes Multitasking zu unterstützen TaskMAX war nur ein Task Switcher. Die Fähigkeit Daten per Copy & Paste an andere Tasks zu übertragen wurde entfernt.[2] |
TaskMGR 2.02 | Caldera DR-DOS 7.03 | März 1999 | Die einzelnen Tasks können jetzt im Hintergrund weiterlaufen, was aber nicht von allen DOS-Anwendungen auch unterstützt wird. |
Siehe auch
[Bearbeiten | Quelltext bearbeiten]- DESQview, ein Taskswitcher für DOS von Quarterdeck
- IBM TopView, ein multitaskingfähiger Taskswitcher für DOS von IBM
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ http://www.pcplayer.de/history/hefte/061994P.php Test: Novel DOS 7 PC Player 1994-06 S. 92
- ↑ Matthias Paul: Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. (Textdatei) In: NWDOS7UN.TXT. 7. Juni 1997, archiviert vom am 7. November 2016; abgerufen am 22. Oktober 2023 (Revision 85): „3. Unterschiede gegenüber DR DOS 6.0 / Tips und Tricks; i. Vergleich von TASKMRG mit TASKMAX – Der Prozeßumschalter TASKMAX ist durch TASKMGR ersetzt worden, der neben der Betriebsart Prozeßumschalter auch einen echten Multitasking-Modus kennt, der allerdings recht viel Zusatzspeicher pro ausgeführten Prozeß benötigt, so daß sich wesentlich weniger Tasks als mit dem Prozeßumschalter gleichzeitig starten lassen (4 MByte ca. 3 Prozesse, 8 MByte ca. 7 Prozesse, also ähnlich wie unter MS Windows 3.1). Für DOS bleibt jedoch allemal genügend Speicher übrig, der Kernel des Multitaskers zwackt dem DOS gerademal 6 KByte Speicher ab. Der TASKMGR kennt (auch im Prozeßumschaltmodus) leider nicht mehr die Daten-Import/Export-Funktionen des alten TASKMAX (<F5>/<F7>), d. h. die Übernahme von Daten aus anderen Tasks läßt sich nur indirekt über Dateien auf der Platte abwickeln. Zwangsläufig waren die direkten Import-Export-Funktionen recht spartanisch (z. B. über simulierte Tastatureingaben in anderen Task), aber trotzdem wird der eine oder andere dieses Feature vermissen. Der alte TASKMAX läßt sich übrigens nicht unter Novell DOS starten – auch nicht mit SETVER. Und TASKMGR lädt ebenfalls nicht unter DR DOS 6.0. Das dürfte angesichts der internen Änderungen auch berechtigt sein.“