Πίνακας περιεχομένων:
- Ορισμός - Τι σημαίνει σφάλμα τμηματοποίησης (Segfault);
- Η Techopedia εξηγεί το Σφάλμα κατάτμησης (Segfault)
Ορισμός - Τι σημαίνει σφάλμα τμηματοποίησης (Segfault);
Ένα σφάλμα κατάτμησης (segfault) είναι ένα σφάλμα που επιστρέφεται από το υλικό με προστασία μνήμης που αναφέρει στο λειτουργικό σύστημα ότι έχει σημειωθεί παραβίαση πρόσβασης μνήμης. Το λειτουργικό σύστημα συνήθως αντιδρά λέγοντας την παράνομη διαδικασία για το σφάλμα μέσω ενός σήματος και στη συνέχεια το λειτουργικό σύστημα εκτελεί κάποια διορθωτική ενέργεια. Αυτό συμβαίνει επειδή μια διαδικασία ή ένα πρόγραμμα προσπαθεί να αποκτήσει πρόσβαση σε μνήμη που δεν έχει εκχωρηθεί σε αυτήν.
Ένα σφάλμα κατάτμησης είναι επίσης γνωστό ως παραβίαση πρόσβασης.
Η Techopedia εξηγεί το Σφάλμα κατάτμησης (Segfault)
Ένα σφάλμα κατάτμησης συχνά προκαλείται από σφάλματα στον προγραμματισμό μιας διαδικασίας ή μιας εφαρμογής στην οποία το πρόγραμμα οδηγείται στη μνήμη πρόσβασης που δεν έχει διατεθεί για αυτό, αλλά για άλλα προγράμματα ή για το ίδιο το σύστημα. Μια διαδικασία δεν επιτρέπεται να αγγίξει τη μνήμη που δεν προορίζεται για αυτήν, καθώς πρέπει πάντα να ζητά μνήμη πριν την χρησιμοποιήσει. Επομένως, όταν ακουμπά τυχαία μνήμη που δεν έχει εκχωρηθεί σε αυτήν, εμφανίζεται παραβίαση πρόσβασης.
Τα Segfaults μπορούν επίσης να προκληθούν από μια επαναληπτική συνάρτηση, η οποία μπορεί να χρησιμοποιήσει όλο το χώρο στοίβας που της αντιστοιχίζεται και να παρεμβαίνει γρήγορα στη μνήμη που δεν έχει εκχωρηθεί σε αυτήν. Σε ορισμένα συστήματα, αυτό θεωρείται υπερχείλιση στοίβας, αλλά για άλλους είναι απλώς ένα είδος παραβίασης της πρόσβασης.
Ένα σφάλμα κατάτμησης μπορεί να αντιμετωπιστεί με μια διαδικασία μέσω ενός χειριστή προσαρμοσμένου σήματος, αλλά συχνά είναι ο προεπιλεγμένος χειριστής σήματος του λειτουργικού συστήματος που χρησιμοποιείται, πράγμα που συνήθως έχει ως αποτέλεσμα την τερματισμό της παραβατικής διαδικασίας ασυνήθιστα, που ονομάζεται συντριβή ή το λειτουργικό σύστημα που αναγκάζει μια χωματερή .