Διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού

Πίνακας περιεχομένων:

Διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού
Διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού

Βίντεο: Διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού

Βίντεο: Διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού
Βίντεο: 19. Talking (and Listening) Across Divides 2024, Ιούλιος
Anonim

Εσωτερικός εναντίον Εξωτερικού Κατακερματισμού

Η διαφορά μεταξύ εσωτερικού και εξωτερικού κατακερματισμού είναι ένα θέμα που ενδιαφέρει πολλούς που θέλουν να βελτιώσουν τις γνώσεις τους στους υπολογιστές. Πριν μάθουμε αυτή τη διαφορά, πρέπει να δούμε τι είναι ο κατακερματισμός. Ο κατακερματισμός είναι ένα φαινόμενο που εμφανίζεται στη μνήμη του υπολογιστή, όπως η μνήμη τυχαίας πρόσβασης (RAM) ή οι σκληροί δίσκοι, το οποίο προκαλεί σπατάλη και αναποτελεσματική χρήση του ελεύθερου χώρου. Ενώ η αποτελεσματική χρήση του διαθέσιμου χώρου παρεμποδίζεται, αυτό προκαλεί επίσης προβλήματα απόδοσης. Ο εσωτερικός κατακερματισμός συμβαίνει όταν η εκχώρηση μνήμης βασίζεται σε κατατμήσεις σταθερού μεγέθους, όπου μετά την αντιστοίχιση μιας εφαρμογής μικρού μεγέθους σε μια υποδοχή, ο υπόλοιπος ελεύθερος χώρος αυτής της υποδοχής χάνεται. Ο εξωτερικός κατακερματισμός συμβαίνει όταν η μνήμη εκχωρείται δυναμικά όπου μετά τη φόρτωση και την εκφόρτωση πολλών θυρίδων εδώ και εκεί ο ελεύθερος χώρος διανέμεται αντί να είναι συνεχόμενος.

Τι είναι ο εσωτερικός κατακερματισμός;

Διαφορά μεταξύ Internal και External Fragmentation_Internal Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_Internal Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_Internal Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_Internal Fragmentation

Σκεφτείτε το παραπάνω σχήμα όπου ακολουθείται ένας μηχανισμός εκχώρησης μνήμης σταθερού μεγέθους. Αρχικά, η μνήμη είναι άδεια και ο εκχωρητής έχει χωρίσει τη μνήμη σε διαμερίσματα σταθερού μεγέθους. Στη συνέχεια, αργότερα τρία προγράμματα με τα ονόματα A, B, C φορτώθηκαν στα τρία πρώτα διαμερίσματα, ενώ το 4ο διαμέρισμα είναι ακόμα δωρεάν. Το πρόγραμμα Α ταιριάζει με το μέγεθος του διαμερίσματος, επομένως δεν υπάρχει σπατάλη σε αυτό το διαμέρισμα, αλλά το Πρόγραμμα Β και το Πρόγραμμα Γ είναι μικρότερα από το μέγεθος του διαμερίσματος. Έτσι, στο τμήμα 2 και στο διαμέρισμα 3 υπάρχει ελεύθερος χώρος. Ωστόσο, αυτός ο ελεύθερος χώρος δεν μπορεί να χρησιμοποιηθεί καθώς ο εκχωρητής μνήμης εκχωρεί μόνο πλήρεις κατατμήσεις σε προγράμματα αλλά όχι τμήματα του. Αυτή η σπατάλη ελεύθερου χώρου ονομάζεται εσωτερικός κατακερματισμός.

Στο παραπάνω παράδειγμα, πρόκειται για σταθερά διαμερίσματα ίσου μεγέθους, αλλά αυτό μπορεί να συμβεί ακόμη και σε μια κατάσταση όπου είναι διαθέσιμα διαμερίσματα διαφόρων σταθερών μεγεθών. Συνήθως η μνήμη ή ο πιο σκληρός χώρος χωρίζεται σε μπλοκ που έχουν συνήθως το μέγεθος των δυνάμεων των 2 όπως 2, 4, 8, 16 byte. Έτσι, ένα πρόγραμμα ή ένα αρχείο 3 byte θα εκχωρηθεί σε ένα μπλοκ 4 byte αλλά ένα byte αυτού του μπλοκ θα καταστεί άχρηστο προκαλώντας εσωτερικό κατακερματισμό.

Τι είναι ο εξωτερικός κατακερματισμός;

Διαφορά μεταξύ Internal και External Fragmentation_External Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_External Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_External Fragmentation
Διαφορά μεταξύ Internal και External Fragmentation_External Fragmentation

Σκεφτείτε το παραπάνω σχήμα όπου η εκχώρηση μνήμης γίνεται δυναμικά. Στη δυναμική εκχώρηση μνήμης, ο εκχωρητής εκχωρεί μόνο το ακριβές μέγεθος που χρειάζεται για αυτό το πρόγραμμα. Η πρώτη μνήμη είναι εντελώς δωρεάν. Στη συνέχεια, τα Προγράμματα A, B, C, D και E διαφορετικών μεγεθών φορτώνονται το ένα μετά το άλλο και τοποθετούνται στη μνήμη συνεχόμενα με αυτή τη σειρά. Στη συνέχεια, αργότερα, το Πρόγραμμα Α και το Πρόγραμμα Γ κλείνουν και ξεφορτώνονται από τη μνήμη. Τώρα υπάρχουν τρεις περιοχές ελεύθερου χώρου στη μνήμη, αλλά δεν είναι γειτονικές. Τώρα ένα μεγάλο πρόγραμμα που ονομάζεται Πρόγραμμα F πρόκειται να φορτωθεί, αλλά κανένα από τα μπλοκ ελεύθερου χώρου δεν είναι αρκετό για το Πρόγραμμα F. Η προσθήκη όλων των ελεύθερων χώρων είναι σίγουρα αρκετή για το Πρόγραμμα F, αλλά λόγω της έλλειψης γειτνίασης αυτού του χώρου είναι άχρηστο για το πρόγραμμα F. Αυτό ονομάζεται Εξωτερικός Κατακερματισμός.

Ποια είναι η διαφορά μεταξύ Εσωτερικού και Εξωτερικού Κατακερματισμού;

• Ο εσωτερικός κατακερματισμός συμβαίνει όταν χρησιμοποιείται μια τεχνική εκχώρησης μνήμης σταθερού μεγέθους. Ο εξωτερικός κατακερματισμός συμβαίνει όταν χρησιμοποιείται μια τεχνική δυναμικής εκχώρησης μνήμης.

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

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

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

• Ο εσωτερικός κατακερματισμός μπορεί να ακρωτηριαστεί με την ύπαρξη κατατμήσεων πολλών μεγεθών και την ανάθεση ενός προγράμματος με βάση την καλύτερη προσαρμογή. Ωστόσο, ο εσωτερικός κατακερματισμός εξακολουθεί να μην έχει εξαλειφθεί πλήρως.

Σύνοψη:

Εσωτερικός εναντίον Εξωτερικού Κατακερματισμού

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

Συνιστάται: