υπολογιστή

* Γνώση Υπολογιστών >> υπολογιστή >> Λογισμικό

Ποιες είναι οι διαφορές μεταξύ μιας κυκλικής ουράς και μιας γραμμικής ουράς;

Αν και οι ουρές μπορεί να σχετίζονται με οποιοδήποτε σύστημα υγρών, οι κυκλικές και γραμμικές ουρές συσχετίζονται συχνότερα με λογισμικό υπολογιστών και συστήματα υπολογιστών. Μεταξύ αυτών των δύο τύπων ουρών υπάρχουν διαφορές δομικών και επιδόσεων. Για παράδειγμα, κατά το σχεδιασμό μιας εκμετάλλευσης διακομιστή Web, ένας αρχιτέκτονας δικτύου μπορεί να χρειαστεί να αποφασίσει εάν η πρόσβαση θα πρέπει να αντιμετωπιστεί σε μια κυκλική ουρά ή μια γραμμική ουρά. Αυτό επηρεάζει τον τρόπο δρομολόγησης της πρόσβασης στους διακομιστές, καθώς και τον τρόπο με τον οποίο οι διακομιστές θα πρέπει να συνδέονται δομικά.

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

Συγκρίνοντας δομές ουράς

Μια γραμμική ουρά είναι σαν μια ευθεία γραμμή στην οποία όλα τα στοιχεία ή οι εντολές στέκεστε το ένα πίσω από το άλλο. Υπάρχει μια ορισμένη αρχή και ένα οριστικό τέλος της ουράς. Οι εργασίες που ευθυγραμμίζονται σε αυτή τη μορφή ουράς εκτελούνται με τη σειρά της τοποθέτησής τους σε βάση FIFO (First In First Out). Μια κυκλική ουρά έχει μια κυκλική δομή. Το τελευταίο στοιχείο αυτής της ουράς συνδέεται με το πρώτο στοιχείο, συμπληρώνοντας έτσι τον κύκλο. Οι εργασίες σε αυτή τη μορφή δεν εκτελούνται ουσιαστικά με τη σειρά με την οποία αποστέλλονται.

Εισαγωγή και διαγραφή

Σε μια γραμμική ουρά, εισάγεται μια νέα εργασία στο στο τέλος της λίστας, ενώ μια διαγραφή γίνεται στο μπροστινό μέρος της λίστας. Τα εμπρός και πίσω άκρα είναι υπεύθυνα για την παρακολούθηση της κατάστασης της ουράς. Μια ουρά μπορεί να έχει ένα πεπερασμένο αριθμό στοιχείων, το οποίο είναι προκαθορισμένο. Κάθε νέα εισαγωγή πρέπει να περάσει μια δοκιμή "πλήρους ουράς", και ομοίως, πριν από μια διαγραφή, πρέπει να περάσει μια δοκιμή "ουρά ουρά". Το "Queue full" ελέγχει αν υπάρχει χώρος για την εισαγωγή και η "ουρά ουρά" βεβαιώνεται ότι υπάρχουν στοιχεία που αναμένουν να διαγραφούν και η ουρά δεν είναι ήδη κενή. Σε μια κυκλική ουρά, οι εισαγωγές και οι διαγραφές μπορούν να συμβούν σε οποιαδήποτε θέση στην ουρά και όχι απαραίτητα σε σειρά. , για μια νέα εισαγωγή στο τέλος, πρέπει να υπάρχει ένας κενός χώρος στο μπροστινό μέρος και όλα τα στοιχεία μεταξύ πρέπει να κινηθούν προς τα πάνω ένα διάστημα για να δημιουργήσει κενή θέση a για τη νέα εισαγωγή. Κάθε φορά που υπάρχει μια νέα εισαγωγή, τα βήματα πρέπει να επαναληφθούν. Η εισαγωγή και διαγραφή είναι δύο διαφορετικά βήματα. Αυτή η προσέγγιση είναι χρονοβόρα και υπολογιστικά δαπανηρή. Από την άλλη πλευρά, σε μια κυκλική ουρά, η εισαγωγή και διαγραφή μπορεί να συμβεί ταυτόχρονα

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα