Deskaccessories contra Multitasking

Hauptspeicher von 1 Mbyte und mehr kann es aber auch sinnvoll sein, etwas längere Programme als Deskaccessoies zu benutzen. Angenommen, es sind Uhr (Wecker), Druckerspooler und Zeichenprogramm als DA's vorhanden und man benutzt ein Textverarbeitungsprogramm wie 1st Word, dann ist es viel eleganter, hier mit den verschiedenen Programmen zu arbeiten als bei einem einfachen Multitaskingsystem. Seitdem es Computer mit leistungsfähigen Prozessoren gibt, ist es möglich geworden, mehrere Programme gleichzeitig ablaufen zu lassen, so daß z. B. im Hintergrund eine Uhr läuft, oder daß ein Spoolprogramm Texte auf dem Drucker ausdrückt, während man mit einem anderen Programm arbeitet. Das Verfahren bei dem quasi parallel mehrere Programme bearbeitet werden, nennt man Multitasking. Die verschiedenen Varianten des Multitasking sollen an zwei unterschiedlichen Konzepten dargestellt werden.

ATARI GEM im Vergleich mit AMIGADOS, dem Betriebssystem des AMIGA.

Um die Unterschiede zu verdeutlichen, wird die Arbeitsweise an einem Beispiel dargestellt.

Angenommen, man arbeitet an seinem Rechner und muß zu einer bestimmten Uhrzeit, vielleicht 15 Uhr, noch etwas wichtiges erledigen. Als erstes startet man ein Programm, das um 15 Uhr auf sich aufmerksam machen soll und dann anfängt zu klingeln. In der Zeit sollen noch ein Brief geschrieben und einige Bilder in den Text eingefügt werden, so daß ein Zeichenprogramm und ein Textprogramm geladen und abwechselnd benutzt werden. Zu irgendeinem bestimmten Zeitpunkt wird der Text ausgedruckt und dafür ein Spoolprogramm aufgerufen, das den Text vorläufig speichert und dann nebenbei an den Drucker weiterleitet. Zu diesem Zeitpunkt wird das Betriebssystem betrachtet. Ein einfaches Multitaskingsystem (AMIGA) teilt jedem Programm eine bestimmte Zeit zu, in der es jeweils abgearbeitet wird. Vorausgesetzt, daß die Zeiteinteilung einigermaßen intelligent vorgenommen wird, sieht das bei diesem Beispiel ungefähr so aus:

Weckerprogramm: ca. 15 % Rechenzeit Zeichenprogramm: ca. 35 % Rechenzeit Textprogramm: ca. 35 % Rechenzeit Druckerspooler: ca. 15 % Rechenzeit

Das bedeutet, die beiden Hauptprogramme laufen in nur einem Drittel der gesamten Rechenzeit, und das kann bei rechenintensiven Routinen schon durch eine deutliche Verzögerung bemerkbar werden. Außerdem sind die 15 % Zeit für den Wecker eine Verschwendung, da das Programm bestimmt einige Male pro Sekunde aufgerufen wird, um dann festzustellen, daß es immer noch nicht Zeit zum Klingeln ist.

Bei GEM wird das Multitasking auf eine etwas elegantere Art gelöst. Voraussetzung ist hierfür, daß die Programme mit der GEM-Menüleiste arbeiten und Deskaccessories zugelassen werden. Beim Einschalten des Computers werden Programme mit dem Filetyp ".ACC" automatisch mit in den Rechner geladen und bleiben resident im Speicher (normalerweise!). Wenn man dann in einem Programm den Menüpunkt "Desktop Info" anwählt, kann anschließend das jeweils gewünschte Accessory gestartet werden.

Eigentlich ist diese Möglichkeit dafür vorgesehen, kleinere Hilfsprogramme - wie Taschenrechner oder eine Uhr - bei Bedarf einzublenden. Bei einem einfachen Multitaskingsystem.

Wird mit der Textverarbeitung gearbeitet, sind die anderen Programme zwar im Speicher vorhanden, aber sie beanspruchen keine nennenswerte Rechenzeit des Hauptprogramms, so daß dieses mit fast voller Geschwindigkeit ablaufen kann.

Realisiert wird diese Möglichkeit über d en Event-Manager von GEM. Unter einem EVENT (Ereignis, besser: Aktion) ist hierbei die Bewegung der Maus, das Drücken einer Taste oder des Mausknopfs, das Anwählen eines Menüpunktes oder das Verändern eines Fensters anzusehen. Ferner kann auch das Erreichen eines vorgegebenen Zeitpunkts dazu führen, daß der Event-Manager in Aktion tritt (Timer-Event). Deshalb sollten GEM-Programme ihre üblichen Eingaben auch über den "EVENT_MULTI" erhalten, weil erst dadurch ermöglicht wird, daß der Event-Manager auswählen kann, welches Programm oder welche Aktion als nächstes zu bearbeiten ist. Mit "EVENT_MULTI" wird dabei die Routine bezeichnet, die fast alle Aktionen abfragt und meldet, wenn durch den Benutzer oder den Timer eine Eingabe erfolgt bzw. ein bestimmter Zeitraum verstrichen ist.

In dem genannten Beispiel sieht das Multitasking folgendermaßen aus:

Der Druckerspooler wird geladen und hat vorerst nichts weiter zu tun als im EVENT-MULTI zu warten, bis er angewählt wird, um etwas zu Drucken. Der Wecker wird geladen, die gewünschte Zeit eingestellt, und über EVENT_MULTI wird einmal pro Sekunde überprüft, ob die gewünschte Zeit schon erreicht ist. Das Zeichenprogramm wird ebenfalls nur geladen und wartet geduldig, bis der EVENT-MUI.TI die Anwahl des Programms meldet. Das Textprogramm wird geladen und gestartet, läuft mit nahezu voller Geschwindigkeit ab und empfängt seine Eingaben über den EVENT_MULTI. Die Zeiteinteilung bei Textverarbeitung sieht hierbei ungefähr so aus:

Weckerprogramm: ca. 3 % Rechenzeit
Zeichenprogramm: ca. 2 % Rechenzeit
Textprogramm: ca. 93 % Rechenzeit
Druckerspooler: ca. 2 % Rechenzeit

Wird nun zu einem beliebigen Zeitpunkt das Zeichenprogramm aufgerufen, zeigt sich die eigentliche Flexibilität von GEM, da dann fast die gesamte Zeit des Textprogramms an das Zeichenprogramm abgegeben werden kann und somit wieder nahezu die komplette Rechenzeit für das ausgewählte Programm zur Verfügung steht, ohne daß im Hintergrund unnötige Routinen ablaufen.

Als Resümee bleibt festzuhalten: wenn auf einem Microcomputer mehrere Arbeiten nebeneinander erledigt werden sollen, ist es wichtig, daß dabei der Vorteil eines schnellen Computers nicht dadurch zunichte gemacht wird, daß die Programme nur mit deutlich reduzierter Geschwindigkeit ablaufen, sondern ein intelligenter 'Aktionsmanager' für eine schnelle Programmverwaltung sorgt.


Oliver Joppich
Aus: ST-Computer 04 / 1986, Seite 56

Links

Copyright-Bestimmungen: siehe Über diese Seite