Ich finde es schwierig, klar zwischen Multiprogramming und Multitasking zu unterscheiden.
Meine Hauptquelle war Wikipedia , aber der WP-Artikel scheint ein wenig im Widerspruch zu einigen weniger seriösen Quellen zu stehen (wie meinem College-Professor).
Während ich WP lese, ist Multiprogramming eine rudimentäre Methode zur Erhöhung des CPU-Durchsatzes durch Kontextwechsel, wenn ein Prozess auf E / A wartet.
Multiprogramming gibt keine Garantie dafür, dass ein Programm rechtzeitig ausgeführt wird. In der Tat kann das allererste Programm sehr gut stundenlang laufen, ohne dass ein Zugriff auf ein Peripheriegerät erforderlich ist.
Cooperative Time-Sharing , synonym mit Cooperative Multitasking , ist eine Verbesserung des Multiprogramming (mit dem es nicht gleichbedeutend ist). Der CPU-Kontext wechselt regelmäßig, um den Eindruck einer gleichzeitigen Ausführung zu erwecken, aber es sind immer noch Prozesse erforderlich, um nachzugeben - und schlecht gestaltete Programme können den Rest des Systems aushungern lassen.
Preemptive Multitasking übernimmt eine aggressivere Kontrolle der Zeitplanung, wobei einigen Prozessen Vorrang vor anderen usw. eingeräumt wird.
- Ist diese Übersicht korrekt? Wenn nicht, liegt das daran, dass WP falsch ist oder weil ich WP falsch gelesen habe?
- Warum scheinen einige Quellen Multiprogramming und Multitasking miteinander zu verbinden?