Προγραμματισμός Round Robin στον προγραμματισμό C



Αυτό το άρθρο θα σας παράσχει μια λεπτομερή και περιεκτική γνώση του τρόπου εφαρμογής του Προγραμματισμού Round Robin στον Προγραμματισμό Γ.

Σε αυτό το άρθρο, θα μάθουμε για τον αλγόριθμο προγραμματισμού που ονομάζεται αλγόριθμος προγραμματισμού Round-Robin, τι είναι ο Round-Robin; Πώς να γράψετε ένα πρόγραμμα; Κ.λπ. Ας ξεκινήσουμε.

Τι είναι ο προγραμματισμός Round Robin;

Το Round Robin Scheduling είναι ένας αλγόριθμος προγραμματισμού που χρησιμοποιείται από το σύστημα για τον προγραμματισμό της χρήσης της CPU. Αυτός είναι ένας προληπτικός αλγόριθμος. Υπάρχει ένα σταθερό χρονικό διάστημα που σχετίζεται με κάθε αίτημα που ονομάζεται κβαντικό. Ο προγραμματιστής εργασίας αποθηκεύει την πρόοδο της εργασίας που εκτελείται αυτήν τη στιγμή και μετακινείται στην επόμενη εργασία που υπάρχει στην ουρά όταν εκτελείται μια συγκεκριμένη διαδικασία για ένα δεδομένο κβαντικό χρόνου.





Προγραμματισμός Round Robin

Καμία διαδικασία δεν θα κρατήσει τη CPU για μεγάλο χρονικό διάστημα. Η εναλλαγή ονομάζεται διακόπτης περιβάλλοντος. Είναι πιθανώς ένας από τους καλύτερους αλγόριθμους προγραμματισμού. Η αποτελεσματικότητα αυτού του αλγορίθμου εξαρτάται από την κβαντική τιμή.



ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΡΟΓΓΥΛΟΥ ROBIN

  • Έχουμε πρώτα μια ουρά όπου οι διαδικασίες είναι διατεταγμένες με σειρά προτεραιότητας.
  • Μια κβαντική τιμή εκχωρείται για την εκτέλεση κάθε διαδικασίας.
  • Η πρώτη διαδικασία εκτελείται μέχρι το τέλος της κβαντικής τιμής. Μετά από αυτό, δημιουργείται μια διακοπή και η κατάσταση αποθηκεύεται.
  • Στη συνέχεια, η CPU μεταβαίνει στην επόμενη διαδικασία και ακολουθείται η ίδια μέθοδος.
  • Τα ίδια βήματα επαναλαμβάνονται έως ότου ολοκληρωθούν όλες οι διαδικασίες.

Εξετάστε το παράδειγμα κώδικα

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int waiting_time = 0, turnaround_time = 0, άφιξη_ ώρα [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEnter Total Number of Processes: t') scanf ('% d', & limit) x = όριο για (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_time [i], total - άφιξη_ ώρα [i], σύνολο - άφιξη_ ώρα [i] - burst_time [i]) wait_time = waiting_time + total - άφιξη_ ώρα [i] - burst_time [i] turnaround_time = turnaround_time + total - άφιξη_ ώρα [i] μετρητής = 0} εάν (i == όριο - 1) {i = 0} αλλιώς εάν (άφιξη_ ώρα [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 }

ΠΑΡΑΓΩΓΗ:

ΕΞΗΓΗΣΗ:

Στον παραπάνω κώδικα, ζητάμε από τον χρήστη να εισαγάγει τον αριθμό των διαδικασιών και την ώρα άφιξης και το χρόνο ριπής για κάθε διαδικασία. Στη συνέχεια υπολογίζουμε τον χρόνο αναμονής και τον χρόνο περιστροφής χρησιμοποιώντας τον αλγόριθμο round-robin.

δυναμική κατανομή μνήμης σε c ++ με παράδειγμα προγράμματος

Το κύριο μέρος εδώ είναι ο υπολογισμός του χρόνου περιστροφής και του χρόνου αναμονής. Ο χρόνος περιστροφής υπολογίζεται προσθέτοντας τον συνολικό χρόνο που αφαιρέθηκε και αφαιρώντας την ώρα άφιξης.

Ο χρόνος αναμονής υπολογίζεται αφαιρώντας τον χρόνο άφιξης και τον χρόνο έκρηξης από το σύνολο και προσθέτοντάς τον στον χρόνο αναμονής. Έτσι λαμβάνει χώρα ο προγραμματισμός του round-robin.



γ ++ πίνακας ταξινόμησης σε αύξουσα σειρά

ΠΛΕΟΝΕΚΤΗΜΑΤΑ:

  • Χαμηλή επιβάρυνση για τη λήψη αποφάσεων.
  • Σε αντίθεση με άλλους αλγόριθμους, δίνει ίση προτεραιότητα σε όλες τις διαδικασίες.
  • Η πείνα εμφανίζεται σπάνια σε αυτήν τη διαδικασία.

ΜΕΙΟΝΕΚΤΗΜΑΤΑ:

  • Η απόδοση του συστήματος μειώνεται εάν η κβαντική τιμή είναι χαμηλή καθώς πραγματοποιείται συχνή εναλλαγή.
  • Το σύστημα μπορεί να μην ανταποκρίνεται εάν η κβαντική τιμή είναι υψηλή.

Με αυτό, φτάνουμε στο τέλος αυτού του άρθρου.

Ελπίζω να βρήκατε αυτό το ενημερωτικό και χρήσιμο, μείνετε συντονισμένοι για περισσότερα μαθήματα σχετικά με παρόμοια θέματα. Μπορείτε επίσης να δείτε το εκπαιδευτικό μας πρόγραμμα to να αποκτήσετε σε βάθος γνώσεις σχετικά με το jQuery μαζί με τις διάφορες εφαρμογές του, μπορείτε για ζωντανή διαδικτυακή εκπαίδευση με 24ωρη υποστήριξη και πρόσβαση σε όλη τη διάρκεια ζωής.Εφαρμόστε τον παραπάνω κώδικα με διαφορετικές συμβολοσειρές και τροποποιήσεις. Τώρα, έχουμε καλή κατανόηση όλων των βασικών εννοιών που σχετίζονται με το δείκτη.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας.