Was ist die offizielle Erklärung dafür? Ich scheine immer zu vergessen.
Was ist die offizielle Erklärung dafür? Ich scheine immer zu vergessen.
Antworten:
Multitasking oder Multithreading auf einem einzelnen Prozessor wird auch als wahrgenommenes Multithreading bezeichnet. Offensichtlich ist es mit einer CPU nicht möglich, Befehle gleichzeitig auszuführen. Stattdessen verschachteln wir Prozesse und geben die Illusion von Multithreading.
Wie @Journeyman Geek hinzufügte, wird hier die Vorbelegung verwendet. Hier haben wir eine Art Struktur (etwa eine Warteschlange), in der die Programme gespeichert sind und jeder Prozess so viele Zyklen ausführen kann. Dann wird das aktuell laufende Programm vorab geprüft (oder mit einem anderen Programm ausgetauscht) und dann läuft dieses Programm. Es gibt viele Strategien, um zu bestimmen, welche Programme wann ausgeführt werden. Wir könnten völlig fair sein (zB Round Robin) und jedes Programm erhält eine bestimmte Zeitmenge oder wir könnten die Programme nach Priorität trennen und das Programm mit niedrigerer Priorität nur ausführen, wenn keine Programme mit höherer Priorität mehr auszuführen sind (zB Priorität) Warteschlange).
Dies ist hilfreich, wenn Sie beispielsweise eine GUI-Anwendung schreiben und eine lange Hintergrundaufgabe ausführen. Wenn dies als einzelne Thread-App geschrieben werden würde, würde das Front-End der GUI einfrieren. Bei zwei Threads bleibt die Benutzeroberfläche jedoch ansprechbar. Selbst wenn nur eine CPU vorhanden ist, bedeutet die Verschachtelung der Prozesse, dass die GUI weiterhin reagiert, während der Hintergrundprozess ausgeführt wird und Fortschritte erzielt.
Hyperthreading ist bei modernen Systemen am wahrscheinlichsten. Kurz gesagt, ein Teil des, aber nicht der gesamte Kern wird dupliziert, sodass pro Kern mehr Threads ausgeführt werden können
Grundsätzlich nimmt das Betriebssystem jede Anwendung (und jeden Thread in jeder Anwendung) der Reihe nach und führt sie einige CPU-Zyklen lang aus. Wenn also 10 Anwendungen ausgeführt werden, läuft über einen Zeitraum von 10 Sekunden jeweils 1 Sekunde.
Dies bedeutet, dass jede Anwendung langsamer ausgeführt wird als die einzige auf dem Computer ausgeführte Anwendung. Bei der überwiegenden Mehrheit der Anwendungen wird jedoch die meiste Zeit darauf verwendet, auf Benutzereingaben zu warten.
Weitere Informationen finden Sie in Wikipedia .
Ich bin mir nicht sicher, was Sie vorhaben, aber es erinnert die Benutzer daran, dass Anwendungen parallel ausgeführt werden. Dieser Effekt wird erzielt, indem die Anforderungen von gleichzeitigen Prozessen so oft verschachtelt werden, dass es so aussieht, als ob alle oder zumindest die meisten Prozesse zum gleichen Zeitpunkt ausgeführt werden.
Im Unix-Sprachgebrauch verschiebt sich der Fokus übrigens auf die Wahrnehmung, dass das System den Anforderungen jedes Benutzers gewidmet erscheint. Wir nennen das einfach "Mehrbenutzer".
Wenn Sie viele Anwendungen auf einer CPU mit einem Thread ausführen, wechselt das Betriebssystem die CPU zwischen den Anwendungen. Dies geschieht so schnell, dass eine Illusion von Multitasking entsteht. Im Grunde genommen gibt die CPU ihre Zyklen an die gewünschte Anwendung weiter und wechselt dann zu einer anderen und zurück zur ersten Anwendung. Dies alles wird vom Betriebssystem durchgeführt. Wenn die CPU zu einer anderen Anwendung wechselt, die gleichzeitig ausgeführt wird, wird der Status der durchlässigen Anwendung gespeichert, sodass sie sich beim erneuten Aufrufen der CPU den Status der Anwendung merkt, in dem sie noch ausgeführt wurde.