www.wikidata.de-de.nina.az
Dieser Artikel erlautert den Informatik Begriff Zur Bedeutung in Bezug auf Menschen siehe Multitasking Psychologie Der Begriff Multitasking ˌmʌltiˈtɑːskɪŋ engl bzw Mehrprozessbetrieb bezeichnet die Fahigkeit eines Betriebssystems mehrere Aufgaben Tasks quasi nebenlaufig auszufuhren Im Allgemeinen bietet der Prozessor hierzu auch unterstutzende Hardware Strukturen Die verschiedenen Prozesse werden in so kurzen Abstanden immer abwechselnd aktiviert dass der Eindruck der Gleichzeitigkeit entsteht Multitasking ist somit eine Variante eines Zeit Multiplexverfahrens Besitzt ein Computer mehrere CPU Kerne so dass er mehrere Aufgaben echt gleichzeitig ausfuhren kann so spricht man von Multiprocessing In modernen Computern werden beide Verfahren kombiniert eingesetzt Inhaltsverzeichnis 1 Zweck des Multitasking 2 Vorlaufer und Entwicklung 2 1 Multiprogrammierung und TSR Programme 2 2 Allgemeiner Ablauf 2 3 Kooperatives Multitasking 2 4 Praemptives Multitasking 2 4 1 Auswahl des nachsten Prozesses 2 4 2 Notwendige Hardware Unterstutzung 2 4 3 Speicherschutz 2 4 4 Geschichte 2 4 5 Abgrenzung zum Time Sharing 2 4 6 Praemptibles Multitasking 3 Siehe auch 4 Literatur 5 Weblinks 6 EinzelnachweiseZweck des Multitasking BearbeitenMultitasking kann bei verschiedenen Anforderungen nutzlich sein insbesondere bei der Optimierung der Auslastung und fur eine je nach Zielsetzung ausgeglichene oder prioritatsbasierte Ressourcenverteilung Der Grundgedanke hinter der Optimierung der Auslastung ist der dass in einem durchschnittlichen Rechner der uberwiegende Teil der Rechenzeit nicht genutzt werden kann weil haufig auf verhaltnismassig langsame externe Ereignisse gewartet werden muss beispielsweise auf den nachsten Tastendruck des Benutzers Wurde nur ein Prozess laufen zum Beispiel die wartende Textverarbeitung so ginge diese Wartezeit komplett ungenutzt verloren siehe aktives Warten Durch Multitasking kann jedoch die Wartezeit eines Prozesses von anderen Prozessen genutzt werden Ist ein Rechner bzw seine Rechenzeit demgegenuber grosstenteils ausgelastet beispielsweise durch einzelne rechenintensive Prozesse so konnen dennoch mehrere Benutzer oder Prozesse anteilige Rechenzeit erhalten anstatt auf das Ende eines anderen Prozesses warten zu mussen Dies kommt insbesondere auch der Interaktivitat zugute Da das System zugleich fur die verschiedenen Prozesse Prioritaten berucksichtigen kann ist eine entsprechende Gewichtung moglich je nach Zielsetzung Ein Server kann zum Beispiel die Dienste bevorzugen welche er anbieten soll jedoch direkte Benutzer Interaktionen niedrig priorisieren Ein Desktop PC wird umgekehrt vor allem die Ein und Ausgaben von an den Benutzer bevorzugen und dafur Hintergrund Prozesse etwas zuruckstellen Vorlaufer und Entwicklung BearbeitenMultiprogrammierung und TSR Programme Bearbeiten Vorlaufer des Multitasking ist die Multiprogrammierung mit dem Ziel einer hoheren CPU Auslastung im Gegensatz zur sequenziellen Ausfuhrung der Aufgaben bei Stapelverarbeitung Bei der Multiprogrammierung findet der Kontextwechsel der Programme mit dem Zugriff auf periphere Gerate statt da dabei zwangslaufig Wartezeit entsteht Erste Ansatze basieren auf dem Konzept von Christopher Strachey aus dem Jahr 1959 Praktisch umsetzen liessen sich solche Konzepte aber erst mit leistungsfahiger Hardware bei der mit der Interruptsteuerung die Entwicklung von TSR Programmen moglich wurde Allgemeiner Ablauf Bearbeiten Der technische Ablauf beim Multitasking ist im Prinzip immer gleich Als wichtige Grundvoraussetzung des Multitaskings gilt im Allgemeinen dass ein Prozess der zugunsten eines anderen unterbrochen wird nichts uber diesen anderen oder ggf auch mehrere andere wissen muss Dies wird meist erreicht indem jeder Prozess einen eigenen sogenannten Prozesskontext besitzt der seinen Zustand beschreibt Ein Prozess andert immer nur seinen eigenen Prozesskontext niemals den eines anderen Prozesses In der Regel wird der gesamte Prozesskontext der Zustand des Prozesses beim Unterbrechen gespeichert z B auf dem Stapelspeicher englisch Stack Er bleibt so lange gespeichert bis der betreffende Prozess wieder Rechenzeit erhalten soll Unmittelbar bevor dieser Prozess wieder aktiv wird wird der gespeicherte Zustand wieder geladen sodass es fur den Prozess so erscheint als sei er uberhaupt nicht unterbrochen worden unabhangig davon ob wie viele und was fur Prozesse in der Zwischenzeit ausgefuhrt worden sind Dieses Umschalten zwischen einzelnen Prozessen wird als Taskwechsel bezeichnet So kann ein Prozess bei der weiteren Ausfuhrung nach der Unterbrechung wieder seine definierte Umgebung vorfinden auch wenn zwischenzeitlich andere Prozesse ausgefuhrt wurden Beim kooperativen Multitasking ahnelt der Taskwechsel stark dem Aufruf von Prozeduren bzw Funktionen in der prozeduralen Programmierung Kooperatives Multitasking Bearbeiten Beim kooperativen Multitasking wird das Multitasking durch eine zentrale Prozessverwaltung im Systemkernel realisiert ein einfacher sogenannter Scheduler Der Scheduler sichert den Prozesskontext des gerade unterbrochenen Tasks wahlt den nachsten Prozess aus der Rechenzeit erhalten soll stellt dessen Prozesskontext her und gibt den Prozessor dann an diesen neuen Prozess ab Der Scheduler kann Listen mit verschieden priorisierten Tasks fuhren und niedrig priorisierte entsprechend selten aufrufen Dabei kann auch die bereits verbrauchte Rechenzeit eines Tasks berucksichtigt werden In der Regel werden Betriebssystem interne Aufgaben zuerst erledigt bevor ein neuer Task den Prozessor erhalt Es ist jedem Prozess selbst uberlassen wann er die Kontrolle an den Kern zuruckgibt in der Regel wird zumindest jede Dienst Anforderung an das Betriebssystem mit einem Taskwechsel verbunden Vorteil dieser Methode ist dass viele Systemfunktionen z B die Ausgabe nicht wiedereintrittsfahig sein mussen und daher nicht synchronisiert sein mussen was eine erhebliche Vereinfachung fur den Hersteller bedeutet Unterbrechungsroutinen mussen jedoch stets dieses Problem losen Diese Form des Multitasking hat ebenso wie das TSR Konzept den Nachteil dass Programme die nicht kooperieren das restliche System zum Stillstand bringen Grunde fur solches Programmverhalten konnen sein im Programm enthaltene Fehler durch den Programmierer gewollte Fehlfunktion eines Systems gewollte vorteilhafte Alleinherrschaft des Programms zum Beispiel fur eine zeitkritische Anwendung wie ein Computerspiel Das Konzept wurde zum Beispiel eingesetzt beim Apollo Guidance Computer bei Windows 3 x Unter diesem System wird Multitasking nur teilweise unterstutzt da nur die jeweiligen Speicherbereiche nebeneinander existieren und die Anwendungen im Hintergrund zugunsten des aktiven Programms einfach angehalten werden bei vielen Heimcomputern wie zum Beispiel dem Atari ST in grafischen Oberflachen fur MS DOS und dazu kompatibles DOS System 5 Mac OS 9 eingeschrankt in erweiterten TSR Programmen fur PC kompatibles DOS Diese Form des Multitasking ist prinzipiell schnell und ressourcenschonend sowie technisch verhaltnismassig einfach realisierbar Fur multiuserfahige Grossrechner war es nie eine praktikable Alternative und wurde z B unter Unix nie eingesetzt da ja ein Benutzer mittels unkooperativem Programm alle anderen blockieren konnte Auch in den neueren Windows Betriebssystemen der NT Linie und in Mac OS X wird diese inzwischen als veraltet geltende Technik nicht eingesetzt Teilweise unterstutzen sie ahnliche Funktionalitat begrenzt zum Beispiel als User Mode Threads jedoch in jedem Fall nur eingebettet in praemptivem Multitasking Praemptives Multitasking Bearbeiten Basis der heutzutage standardmassig angewendeten Methode ist das praemptive Multitasking Der gerade laufende Prozess wird nach einer bestimmten Abarbeitungszeit seinem Zeitschlitz auch Zeitscheibe engl time slice durch den Interrupt eines Hardware Timers unterbrochen Die Interrupt Service Routine Teil des Betriebssystems unterbricht den Prozess und sichert seinen Prozesskontext der Prozess wird schlafen gelegt dann ubergibt sie an den Scheduler das Betriebssystem hat wieder die Kontrolle erlangt Sofern kein Betriebssystem eigener Ablauf ansteht wahlt der Scheduler nun einen rechenbereiten Prozess aus ggf denselben der gerade unterbrochen wurde stellt dessen Prozesskontext wieder her startet den Hardware Timer und ubergibt dann an den Prozess Meist wird jedem Prozess eine absolute Zeitscheibe zugewiesen alle Zeitscheiben haben die gleiche feste Dauer ublicherweise wenige Millisekunden alternativ wird ihm pro definierter Zeiteinheit ein bestimmter Prozentteil dieser Zeiteinheit zugewiesen z B abhangig von seiner Prioritat den er hochstens nutzen kann die Lange der Zeitscheibe wird also jedes Mal neu bestimmt Sollte er bereits vor Ablauf seiner Zeitscheibe eine Funktion des Betriebssystems benotigen so wird er sogleich angehalten und als nicht rechenbereit markiert bis das Betriebssystem den gewunschten Dienst erbracht hat Nur als rechenbereit markierte Prozesse erhalten Prozessorzeit Zuteilungen Auswahl des nachsten Prozesses Bearbeiten Eine beliebte Umsetzung des praemptiven Multitaskings ist die Verwendung einer Vorrangwarteschlange in Verbindung mit der Round Robin Scheduling Strategie Es gibt auch die Prozessorzuteilung abhangig von der Taskprioritat vor allem bei Echtzeitsystemen z B MicroC OS II Fur das Multitasking spielt das nur eine untergeordnete Rolle da praemptives Multitasking die Kernel bzw Prozessorkontrolle uber die Prozesse beschreibt Notwendige Hardware Unterstutzung Bearbeiten Hardwareseitig benotigt praemptives Multitasking im Gegensatz zur kooperativen Variante vergl TSR Programm als Vorlaufer zwingend einen Interrupterzeuger meist ein Zeitgeber im geeigneten Prozessor da das System softwareseitig keine Moglichkeit hat Prozessen die Kontrolle uber den Prozessor zu entziehen Der Zeitgeber sendet regelmassig oder nach Ablauf einer eingestellten Zeit ein Signal Interrupt an die CPU was sie zur Unterbrechung des aktuell laufenden Tasks und zur Ausfuhrung der Betriebssystem Interrupt Service Routine veranlasst Speicherschutz Bearbeiten Moderne Betriebssysteme arbeiten daruber hinaus mit einem Speicherschutz der verhindert dass verschiedene Prozesse sich im Speicher gegenseitig beeinflussen oder gar uberschreiben Diese Schutzfunktion ubernimmt im PC die Memory Management Unit MMU welche die Virtualisierung des Hauptspeichers und verschiedene Berechtigungslevel Ringe oder auch Modi Kernel Mode versus User Mode ermoglicht und so dem Betriebssystem erlaubt verschiedene parallele Prozesse innerhalb des Rechners voneinander strikt abzukapseln Im PC kam die MMU erstmals in Rechnern mit i286 Prozessoren von Intel zum Einsatz Diese Technik ist aber fur Multitasking im engeren Sinne nicht zwingend notwendig Geschichte Bearbeiten Die ersten weit verbreiteten Computersysteme die praemptives Multitasking beherrschten waren der Sinclair QL 1984 und der Commodore Amiga 1985 im Heimbereich beim Amiga ohne Speicherschutz Privilegierung und somit aushebelbar sowie zuvor die unter Unix betriebenen Grossrechenanlagen Windows beherrscht erstmals in den 3 x Versionen teilweise praemptives Multitasking dort allerdings nur fur DOS Programme und das auch nur dann wenn sie auf einem System mit einem i386 kompatiblen Prozessor ausgefuhrt werden da dieser in solchen Fallen hardwareseitige Virtualisierung ermoglicht Moderne Betriebssysteme die praemptives Multitasking vollstandig unterstutzen sind Windows NT und alle Nachfolger QNX BeOS und alle auf Unix basierenden Systeme wie Linux HP UX Solaris macOS u v m Abgrenzung zum Time Sharing Bearbeiten Ausserdem muss man zwischen Time slicing Zeitscheiben Verfahren und Time Sharing unterscheiden letzteres gestattet mehreren Benutzern bzw deren Prozessen z B auf Datenbankservern oder Grossrechnern mit Terminalzugriff sich automatisch anteilig die verfugbare Rechenzeit zu teilen 1 Wahrend sich also beim Multitasking mehrere Prozesse eines einzelnen Users die Rechenzeit teilen konnen wird beim Time Sharing die Zeit eines Prozesses auf mehrere Benutzer verteilt Praemptibles Multitasking Bearbeiten Eine Sonderform des praemptiven Multitasking ist das weniger bekannte Praemptible Multitasking englische Schreibweise Preemptible Multitasking das erstmals im Betriebssystem OS 2 implementiert wurde Viele Betriebssystem eigene Kernel Routinen werden als Scheduler Threads gefuhrt somit konnen Anwendungsprozesse auch Zeitschlitze erhalten wahrend eigentlich eine Betriebssystem Aktion ausgefuhrt wird mit Ausnahmen fur atomare OS Prozesse 2 Das Konzept ermoglicht schnellere Reaktionszeiten Mit Version 2 6 hat es auch in den Linux Kernel Eingang gefunden 3 Siehe auch BearbeitenMultithreading Hyper ThreadingLiteratur BearbeitenC Strachey Time Sharing in Large Fast Computers Proceedings of the International Conference on Information Processing UNESCO 1959 Klaus D Thies Echtzeit Multitasking Der Kernel Elementare Einfuhrung in die parallele Systemprogrammierung Shaker Verlag Aachen ISBN 978 3832248673 Weblinks Bearbeiten nbsp Wiktionary Multitasking Bedeutungserklarungen Wortherkunft Synonyme UbersetzungenEinzelnachweise Bearbeiten aus Artikel Timesharing in Meyers Taschenlexikon in 24 Banden B I Taschenbuchverlag Meyer nennt auch hier ausdrucklich Zeitscheiben im Mehrbenutzerbetrieb auch MS Encarta Weltatlas verweist beim Time Sharing auf Mehrbenutzerbetrieb Praemptibler Kernel ab Linux 2 6 von http articles tutorialonline biz abgerufen am 14 September 2012 Informationen auf www jakoxx de Memento vom 15 August 2009 im Internet Archive Abgerufen von https de wikipedia org w index php title Multitasking amp oldid 237563023