Round Robin Scheduling in der C-Programmierung



In diesem Artikel erhalten Sie detaillierte und umfassende Kenntnisse zur Implementierung von Round Robin Scheduling in der C-Programmierung.

In diesem Artikel lernen wir den Planungsalgorithmus kennen, der als Round-Robin-Planungsalgorithmus bezeichnet wird. Was ist Round-Robin? Wie schreibe ich ein Programm? Usw. Beginnen wir.

Was ist Round Robin Scheduling?

Round Robin Scheduling ist ein Planungsalgorithmus, mit dem das System die CPU-Auslastung plant. Dies ist ein präventiver Algorithmus. Jeder Anforderung, die als Quantum bezeichnet wird, ist eine feste Zeitscheibe zugeordnet. Der Job Scheduler speichert den Fortschritt des Jobs, der gerade ausgeführt wird, und wechselt zum nächsten Job in der Warteschlange, wenn ein bestimmter Prozess für ein bestimmtes Zeitquantum ausgeführt wird.





Round Robin Scheduling

dynamische Speicherzuordnung in c ++ mit Beispielprogramm

Kein Prozess wird die CPU für eine lange Zeit halten. Die Umschaltung wird als Kontextumschaltung bezeichnet. Es ist wahrscheinlich einer der besten Planungsalgorithmen. Die Effizienz dieses Algorithmus hängt vom Quantenwert ab.



RUNDER ROBIN-ZEITPLAN-ALGORITHMUS

  • Wir haben zuerst eine Warteschlange, in der die Prozesse in der Reihenfolge 'Wer zuerst kommt, mahlt zuerst' angeordnet sind.
  • Ein Quantenwert wird zugewiesen, um jeden Prozess auszuführen.
  • Der erste Prozess wird bis zum Ende des Quantenwerts ausgeführt. Danach wird ein Interrupt generiert und der Status gespeichert.
  • Die CPU fährt dann mit dem nächsten Prozess fort und es wird dieselbe Methode angewendet.
  • Dieselben Schritte werden wiederholt, bis alle Prozesse abgeschlossen sind.

Betrachten Sie den Beispielcode

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, Turnaround_time = 0, Arrival_time [10], Burst_time [10], Temp [10] float Average_wait_time, Average_Turnaround_time printf ('nGeben Sie die Gesamtzahl der Prozesse ein: t') scanf ('% d', & limit) x = limit für (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, Burst-Zeit [i], Gesamt-Ankunftszeit [i], Gesamt-Ankunftszeit [i] - Burst-Zeit [i]) Wartezeit = Wartezeit + Gesamt-Ankunftszeit [i] - Burst-Zeit [i] Bearbeitungszeit = Turnaround_time + total - Ankunftszeit [i] Zähler = 0} if (i == limit - 1) {i = 0} else if (Ankunftszeit [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

AUSGABE:

ERLÄUTERUNG:

Im obigen Code bitten wir den Benutzer, die Anzahl der Prozesse sowie die Ankunftszeit und die Burst-Zeit für jeden Prozess einzugeben. Wir berechnen dann die Wartezeit und die Bearbeitungszeit mit dem Round-Robin-Algorithmus.

Der Hauptteil hier ist die Berechnung der Bearbeitungszeit und der Wartezeit. Die Bearbeitungszeit wird berechnet, indem die Gesamtzeit addiert und die Ankunftszeit abgezogen wird.

Wie schreibe ich einen Scanner in Java

Die Wartezeit wird berechnet, indem die Ankunftszeit und die Burst-Zeit von der Summe abgezogen und zur Wartezeit addiert werden. So erfolgt die Round-Robin-Planung.



VORTEILE:

  • Geringer Aufwand für die Entscheidungsfindung.
  • Im Gegensatz zu anderen Algorithmen haben alle Prozesse die gleiche Priorität.
  • Hunger tritt in diesem Prozess selten auf.

NACHTEILE:

  • Die Effizienz des Systems nimmt ab, wenn der Quantenwert niedrig ist, da häufig geschaltet wird.
  • Das System reagiert möglicherweise nicht mehr, wenn der Quantenwert hoch ist.

Damit sind wir am Ende dieses Artikels angelangt.

Ich hoffe, Sie fanden dies informativ und hilfreich. Weitere Tutorials zu ähnlichen Themen finden Sie hier. Sie können auch unser Schulungsprogramm t überprüfenSie können sich eingehend mit jQuery und seinen verschiedenen Anwendungen vertraut machen für Live-Online-Schulungen mit 24-Stunden-Support und lebenslangem Zugriff.Implementieren Sie den obigen Code mit verschiedenen Zeichenfolgen und Änderungen. Jetzt haben wir ein gutes Verständnis für alle Schlüsselkonzepte, die sich auf den Zeiger beziehen.

flache Kopie vs tiefe Kopie Java

Hast du eine Frage an uns? Erwähnen Sie sie im Kommentarbereich dieses Blogs und wir werden uns bei Ihnen melden.