0

Problem:Round Robin Scheduling: Was passiert, wenn alle Jobs gleichzeitig ankommen?

Fünf Batch-Jobs A bis E, kommt an in einem Rechenzentrum fast die gleiche Zeit. Sie haben Laufzeiten von 10, 6, 2, 4 und 8 Minuten geschätzt. Ihre (extern bestimmten) Prioritäten sind 3, 5, 2, 1 bzw. 4, wobei 5 die höchste Priorität hat. Ermitteln Sie den mittleren Prozess Turn um die Zeit. Ignoriere Prozessumschaltungs-Overhead. Nehmen Sie für Round Robin Scheduling an, dass das System Multiprogramming ist und dass jeder Job einen fairen Anteil der CPU erhält. Alle Jobs sind vollständig CPU-gebunden.

Lösung 1 Die folgende Lösung kommt von this page:

Für Round-Robin, während der ersten 10 Minuten, jeder Auftrag wird 1/5 der CPU. Am Ende der 10 Minuten endet C. Während der nächsten 8 Minuten erhält jeder Job 1/4 der CPU, nach welcher Zeit D endet. Dann erhält jeder der drei verbleibenden Aufträge 1/3 der CPU für 6 Minuten, bis B beendet und so weiter. Die Bearbeitungszeiten für die fünf Jobs sind 10, 18, 24, 28, 30, für einen Durchschnitt von 22 Minuten.

Lösung # 2 die folgende Lösung von der Cornell University kommt here, die anders ist (und dieser macht mir mehr Sinn):

Denken Sie daran, dass die Durchlaufzeit die Zeit ist das verstreicht zwischen dem Job, der ankommt, und dem Job, der beendet. Da wir davon ausgehen, dass alle Jobs zum Zeitpunkt 0 eintreffen, ist die Bearbeitungszeit einfach die Zeit, die sie ausfüllen. (a) Round Robin: Die nachstehende Tabelle zeigt eine Aufschlüsselung, welche Jobs während jedes Zeitquants verarbeitet werden. Ein * zeigt an, dass der Job während dieses Quantums abgeschlossen ist.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
A B C D E A B C* D E A B D E A B D* E A B E A B* E A E A E* A A* 

Die Ergebnisse sind unterschiedlich: In der ersten C nach 10 Minuten beendet ist, beispielsweise, wohingegen in der zweiten C nach 8 Minuten beendet.

Welches ist das richtige und warum? Ich bin verwirrt .. Danke im Voraus!

+2

Bitte fügen Sie Ihrer Frage das * homework * -Tag hinzu. – thb

Antwort

1

Q1: Ich glaube, dass die "fair share" -Anforderung bedeutet, dass Sie davon ausgehen können, dass die Zeit gleichmäßig unter den laufenden Prozessen aufgeteilt wird und somit die jeweilige Reihenfolge keine Rolle spielt. Man könnte sich das auch so vorstellen, dass das Quantum so niedrig ist, dass jede Variation, die durch eine bestimmte Reihenfolge eingeführt wird, zu klein ist, um sich Sorgen machen zu müssen.

Q2: Wenn man davon ausgeht, dass die Zeit gleichmäßig verteilt ist, dauert es 10 Minuten, bis alle Prozesse 2 Minuten Zeit haben, an denen C ausgeführt wird.

+0

bezüglich Q2 ..Warum beendet C, nachdem alle Prozesse 2 Minuten für sich selbst gehabt haben und nicht nachdem C 2 Minuten eigene Zeit gehabt hat (was nach 8 Minuten ist). Da es 10 Minuten dauert, bis alle Prozesse 2 Minuten lang sind, bedeutet das Alles passiert sequentiell in einem Job nach dem anderen, Sie machen ti so, als ob C am Ende der Liste steht –

+1

@ user1073400: Stellen Sie sich ein Quantum von 1 MICROSECOND vor; dann, egal in welcher Reihenfolge, solange die Zeit ziemlich geteilt ist, wird C enden, nachdem jeder andere Prozess zwischen 2 (1 MIKROSEKUNDE) und 2 Minuten gelaufen ist. –

+0

Ich verstehe immer noch nicht warum. Ich habe eine andere Lösung online von der Cornell University gefunden, die für mich mehr Sinn macht und ich habe sie am Ende meines ursprünglichen Beitrags hinzugefügt. Schau es dir an und sag mir, was du denkst. –

Verwandte Themen