Skip to main content

Τι είναι ένας άπειρος βρόχος;

Ένας άπειρος βρόχος είναι μια κατάσταση που προκαλεί ένα πρόγραμμα υπολογιστή να συνεχίσει να εκτελεί μια εντολή χωρίς τέλος.Αυτό οφείλεται συνήθως σε μία από τις τρεις αιτίες: το πρόγραμμα δεν έχει τελική κατάσταση, η τελική κατάσταση του προγράμματος είναι ανέφικτη ή μια εντολή επανάληψης προκαλεί την συνεχής επανεκκίνηση ενός προγράμματος.Τις περισσότερες φορές, ένας άπειρος βρόχος θα προκαλέσει επιβράδυνση ενός υπολογιστή ή ακόμα και κλειδώματος.Στους πρώιμους υπολογιστές, αυτοί οι βρόχοι συχνά απαιτούσαν μια επανεκκίνηση, αλλά τα σύγχρονα λειτουργικά συστήματα συχνά θα τα πιάσουν και θα τερματίσουν το πρόγραμμα πριν να ξεφύγουν από το χέρι. Οι άπειροι βρόχοι υπάρχουν μέσα στον προγραμματισμό.Άλλες χρήσεις του όρου είναι συνήθως λανθασμένες.Στις περισσότερες περιπτώσεις, οι άπειροι βρόχοι δεν είναι ο τελικός στόχος του προγράμματος και υπάρχει πρόβλημα κάπου στον κώδικα που προκαλεί την εμφάνιση της κατάστασης.Κάθε μία από τις τρεις κύριες περιπτώσεις ενός άπειρου βρόχου είναι πλήρως προγραμματισμού και λογισμικού.

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

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

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