Kas yra begalinė kilpa?

Begalinis ciklas yra sąlyga, dėl kurios kompiuterio programa toliau vykdo komandą be pabaigos. Paprastai taip yra dėl vienos iš trijų priežasčių: programa neturi pabaigos sąlygos, programos pabaigos sąlygos nepasiekiama arba pakartojant komandą programa nuolat paleidžiama iš naujo. Dažniausiai dėl begalinės kilpos kompiuteris smarkiai sulėtės arba net užsiblokuos. Ankstyvuosiuose kompiuteriuose šias kilpas dažnai tekdavo paleisti iš naujo, tačiau šiuolaikinės operacinės sistemos dažnai jas sugaus ir nutrauks programą, kol jos nebepateks iš rankų.

Programavime egzistuoja begalinės kilpos; kiti termino vartai paprastai yra neteisingi. Daugeliu atvejų begalinės kilpos nėra galutinis programos tikslas, o kažkur kode yra problema, dėl kurios atsiranda sąlyga. Kiekvienas iš trijų pagrindinių begalinės kilpos atvejų yra visiškai pagrįstas programavimu ir programine įranga.

Kai programa neturi pabaigos sąlygos, ji ir toliau vykdys paskutinį instrukcijų rinkinį be pabaigos. Daugeliu atvejų dėl to programa užsiblokuos, nes ji laukia kokios nors paskutinės instrukcijos, kurios niekada nebus. Kitais atvejais paskutinė programai duota instrukcija buvo komandos vykdymas arba komandos apdorojimas. Tokiais atvejais ji ir toliau tai darys be galo. Dėl to kompiuteris lėtai užpildys pasikartojančias komandas iš begalinio ciklo, kol visa sistema spręs be galo problemą.

Panaši situacija yra tada, kai programos pabaigos sąlyga nepasiekiama. Tokiu atveju programa gali baigtis, bet niekada nesibaigs. Problema dėl galutinio taško gali būti programavimo arba kompiuterio klaida, dėl kurios atsiranda sąlyga. Pavyzdžiui, jei programa prašo konkrečios informacijos iš konkrečios vietos, programavimo klaida būtų ta, kad informacija saugoma kitoje vietoje. Kita vertus, jei informacija patenka į programą, bet nutrūksta dėl vartotojo ar kitos programos trukdžių, ji gali tiesiog nepasiekti.

Paskutinė begalinės kilpos priežastis yra visiškai pagrįsta programavimu. Kažkur programavimo vietoje yra komanda, kuri nurodo programai ką nors pakartoti. Nors šios komandos yra dažnos, sąlygos niekada neturėtų leisti pakartotinai komandai grįžti į pradinį kartojimą. Jei taip atsitiks, programa vykdys komandą, paspaus pakartoti sakinį, tada dar kartą vykdys komandą, tada pakartos dar kartą ir pan. Labiausiai tikėtina, kad šios kilpos yra sąmoningai užprogramuotos, dažnai kaip kenkėjiškos programos dalis.