Präsentation (Computing)
Im Computer, Präsentation ist der Akt der vorübergehend Unterbrechung ein Ausführung Aufgabemit der Absicht, es zu einem späteren Zeitpunkt wieder aufzunehmen. Dieser Interrupt erfolgt von einem externen Planer ohne Unterstützung oder Zusammenarbeit von der Aufgabe.[1]: 153 Dieser präventive Scheduler läuft normalerweise im privilegierten Zeitraum Schutzring, was bedeutet, dass Unterbrechung und Wiederaufnahme als hochsichere Maßnahmen angesehen werden. Eine solche Änderung in der aktuell ausführenden Aufgabe von a Prozessor ist bekannt als Kontextumschaltung.
Benutzermodus und Kernel -Modus
In einem bestimmten Systemdesign sind einige vom System ausgeführte Operationen möglicherweise nicht pünktlich. Dies gilt normalerweise für Kernel Funktionen und Service Interrupts was, wenn nicht erlaubt ist rennen zur Fertigstellungwürde neigen zu produzieren Rennbedingungen ergebend Sackgasse. Abgesehen von dem Scheduler von Vorbereitungsaufgaben, während sie Kernelfunktionen verarbeiten, vereinfacht das Kernel -Design auf Kosten von Systemreaktionsfähigkeit. Die Unterscheidung zwischen Benutzermodus und Kernelmodus, was die Privilegienstufe innerhalb des Systems bestimmt, kann auch verwendet werden, um zu unterscheiden, ob eine Aufgabe derzeit präventiv ist.
Die meisten modernen Betriebssysteme haben Präventivkerne, die so konzipiert sind, dass Aufgaben auch im Kernel -Modus vorbezahlt werden können. Beispiele für solche Betriebssysteme sind Solaris 2.0/sunos 5.0,[2] Windows NT, Linux Kernel (2.5.4 und neuer),[3] AIX und einige BSD Systeme (Netbsdseit Version 5).
Präventiver Multitasking
Der Begriff Präventiver Multitasking wird verwendet, um a zu unterscheiden Multitasking -Betriebssystem, was die Präsentation von Aufgaben ermöglicht, von a Kooperatives Multitasking System, bei dem Prozesse oder Aufgaben explizit programmiert werden müssen Ertrag Wenn sie keine Systemressourcen benötigen.
In einfachen Worten: Präventives Multitasking beinhaltet die Verwendung eines Interrupt -Mechanismus die den aktuell ausführenden Prozess ausnutzt und a aufruft a Planer Um zu bestimmen, welcher Prozess als nächstes ausführen sollte. Daher erhalten alle Prozesse zu einem bestimmten Zeitpunkt eine gewisse CPU -Zeit.
Im präventiven Multitasking das Betriebssystem Kernel kann auch a initiieren Kontextschalter um das zu befriedigen PlanungsrichtliniePrioritätsbeschränkung, somit die aktive Aufgabe vorbereitet. Im Allgemeinen bedeutet die Präsentation "vorheriger Beschlagnahme von". Wenn die Aufgabe mit hoher Priorität in dieser Instanz die aktuell ausgeführte Aufgabe erfasst, wird sie als präventive Planung bezeichnet.
Der Begriff "präventive Multitasking" wird manchmal fälschlicherweise verwendet, wenn die beabsichtigte Bedeutung spezifischer ist, und bezieht sich stattdessen auf die Klasse der Planungsrichtlinien Zeitabteilung Zeitplanung, oder Zeitteilung.
Durch das Präventive Multitasking kann das Computersystem jedem Prozess zuverlässig eine regelmäßige "Scheibe" der Betriebszeit garantieren. Es ermöglicht das System auch, schnell mit wichtigen externen Ereignissen wie eingehenden Daten umzugehen, die möglicherweise die sofortige Aufmerksamkeit eines oder eines anderen Prozesses erfordern.
Zu jedem Zeitpunkt können Prozesse in zwei Kategorien eingeteilt werden: diejenigen, die auf Eingabe oder Ausgabe warten (genannt "E/O gebunden"), und diejenigen, die die CPU voll nutzen ("CPU gebunden"). In frühen Systemen würden Prozesse oft"Umfrage" oder "Beschäftigt"Während er auf angeforderte Eingaben wartete (z. B. Festplatten-, Tastatur- oder Netzwerkeingabe). In dieser Zeit leistete der Prozess keine nützliche Arbeit, hatte aber dennoch die vollständige Kontrolle über die CPU. Mit dem Aufkommen von Interrupts und präventiven Multitasking hat diese I// I/ beibehalten. O gebundene Prozesse könnten "blockiert" oder in die Hand genommen werden, bis die erforderlichen Daten angegeben werden können, damit andere Prozesse die CPU nutzen können Ausführung.
Obwohl ursprünglich Multitasking -Techniken entwickelt wurden, um mehreren Benutzern eine einzelne Maschine zu teilen, wurde bald deutlich, dass Multitasking unabhängig von der Anzahl der Benutzer nützlich war. Viele Betriebssysteme, von Mainframes bis hin zu Einzelbenutzer-Personalcomputern und No-User Kontroll systeme (wie die in Roboter -Raumschiff), haben die Nützlichkeit der Multitasking -Unterstützung aus verschiedenen Gründen erkannt. Multitasking ermöglicht es einem einzelnen Benutzer, mehrere Anwendungen gleichzeitig auszuführen oder "Hintergrund" -Prozesse auszuführen und gleichzeitig die Steuerung des Computers beizubehalten.
Zeitscheibe
Der Zeitraum, für den ein Prozess in einem präventiven Multitasking -System ausgeführt wird Zeitscheibe oder Quanten.[1]: 158 Der Scheduler wird einmal jedes Mal ausgeführt, um den nächsten zu ausgeführten Vorgang auszuwählen. Die Länge jedes Zeitschichts kann für die Ausgleichssystemleistung im Vergleich zum Reaktionsfähigkeit der Prozesse von entscheidender Bedeutung sein. Wenn die Zeitscheibe zu kurz ist, verbraucht der Scheduler zu viel Verarbeitungszeit, aber wenn die Zeitscheibe zu lang ist, dauern die Prozesse länger, um darauf zu reagieren Eingang.
Ein unterbrechen ist geplant, um das zuzulassen Betriebssystem Kernel Um zwischen den Prozessen zu wechseln, wenn ihre Zeitscheiben ablaufen, und die Zeit des Prozessors effektiv zwischen einer Reihe von Aufgaben geteilt werden kann, wodurch die Illusion (gleichzeitig) mit diesen Aufgaben parallel behandelt wird. Das Betriebssystem, das ein solches Design steuert, wird als Multitasking-System bezeichnet.
Systemunterstützung
Heute unterstützen fast alle Betriebssysteme präventive Multitasking, einschließlich der aktuellen Versionen von Fenster, Mac OS, Linux (einschließlich Android) und iOS.
Einige der frühesten Betriebssysteme, die für Heimnutzer zur Verfügung stehen, die präventive Multitasking zeigten, waren Sinclair Qdos (1984[4]) und Amiga OS (1985). Beide rannten weiter Motorola 68000-Familie Mikroprozessoren ohne Speicherverwaltung. Amiga -Betriebssystem verwendet dynamische Belastung von lockeren Codeblöcken ("("Hunks"In Amiga -Jargon), um alle Prozesse im selben flachen Adressraum multitaskisch zu multitaskieren.
Frühzeitig PC Betriebssysteme wie z. MS-DOS und PC dosunterstützte Multitasking überhaupt nicht, wie alternative Betriebssysteme wie z. MP/M-86 (1981) und Gleichzeitiger CP/M-86 hat präventive Multitasking unterstützt. Sonstiges Unix-artig Systeme einschließlich Minix und Kohärent bereitete präventive Multitasking auf Personalcomputern aus den 1980er Jahren.
Später DOS Versionen, die nativ präventive Multitasking/Multithreading unterstützen Gleichzeitige dos, Multiuser dos, Novell dos (später gerufen Caldera Opendos und DR-DOS 7.02 und höher). Seit Gleichzeitige DOS 386Sie konnten auch mehrere DOS -Programme gleichzeitig durchführen Virtuelle DoS -Maschinen.
Die früheste Version von Windows zur Unterstützung einer begrenzten Form von präventivem Multitasking war Windows/386 2.0, die die verwendeten Intel 80386's Virtueller 8086 -Modus DOS -Anwendungen ausführen in Virtuelle 8086 -Maschinen, allgemein bekannt als "DOS -Boxen", die vorbefragt werden konnten. Im Windows 95, 98 und ich32-Bit-Anwendungen wurden präventiv gestellt, indem jeder jeweils in einem separaten Adressraum ausgeführt wurde. 16-Bit-Anwendungen blieben jedoch für die Rückwärtskompatibilität kooperativ.[5] In Windows 3.1x (geschützter Modus) lief der Kernel- und virtuelle Geräte-Treiber präventiv, aber alle 16-Bit-Anwendungen waren nicht preemptiv und teilten denselben Adressraum.
Präventives Multitasking wurde immer von unterstützt von Windows NT (alle Versionen), OS/2 (native Anwendungen), Unix und Unix-artig Systeme (wie z. Linux, BSD und Mac OS), VMs, OS/360und viele andere Betriebssysteme, die für den Einsatz in den akademischen und mittel- bis großen Geschäftsmärkten konzipiert sind.
Obwohl es Pläne gab, das kooperative Multitasking in der zu verbessern Klassischer Mac OS zu einem präventiven Modell (und eine präventive API existierte in Mac OS 9, obwohl im begrenzten Sinne[6]), diese wurden zugunsten von aufgegeben Mac OS X (jetzt macOS genannt) das, als Mischung des alten Mac -Systemstils und Nächster Schritt, ist ein Betriebssystem basierend auf der Mach Kernel und abgeleitet von Teil von BSD, die immer unixartige präventive Multitasking bereitgestellt hatte.
Siehe auch
Verweise
- ^ a b Tanenbaum, Andrew (2015). Moderne Betriebssysteme. Boston: Pearson. ISBN 0-13-359162-x. OCLC 870646449.
- ^ Khanna, S.; Sebree, M.; Zolnovsky, J. "Echtzeitplanung in Sunos 5.0". Proceedings of the Usenix Winter Conference, 1992: 375–390.
- ^ "Versionshinweise für v2.5.4". Das Linux -Kernelarchiv. Linux Kernel Organization, Inc.. Abgerufen 2021-07-03.
- ^ "QL History FAQ: Firmware".
- ^ "Wie 16-Bit- und 32-Bit-Programme Multitask in Windows 95 (Q117567)". Archiviert von das Original am 2008-01-17. Abgerufen 2008-01-17.
- ^ "Re: Neuling Frage: Was ist eine blaue Aufgabe". Archiviert von das Original Am 2007-10-13. Abgerufen 2007-03-29.