Mis on lõpmatu silmus?

Lõpmatu tsükkel on tingimus, mille tõttu arvutiprogramm jätkab käsu täitmist lõputult. Selle põhjuseks on tavaliselt üks kolmest põhjusest: programmil pole lõpptingimust, programmi lõpptingimus on kättesaamatu või korduskäsk põhjustab programmi pideva taaskäivitamise. Enamasti põhjustab lõpmatu silmus arvuti järsu aeglustumise või isegi lukustumise. Varasemates arvutites nõuavad need silmused sageli taaskäivitamist, kuid kaasaegsed operatsioonisüsteemid püüavad need sageli kinni ja lõpetavad programmi enne, kui need kontrolli alt väljuvad.

Programmeerimises eksisteerivad lõpmatud tsüklid; termini muud kasutusviisid on tavaliselt valed. Enamikul juhtudel ei ole lõpmatud tsüklid programmi lõppeesmärk ja kuskil koodis on probleem, mis põhjustab selle tingimuse ilmnemise. Kõik kolm peamist lõpmatu ahela juhtumit on täielikult programmeerimis- ja tarkvarapõhised.

Kui programmil pole lõputingimust, jätkab see oma viimase käskude komplekti täitmist ilma lõputa. Paljudel juhtudel põhjustab see programmi lukustumise, kuna see ootab mõnda viimast juhist, mida kunagi ei tule. Muul ajal oli viimaseks programmile antud juhiseks käsu täitmine või käsu töötlemine. Sellistel juhtudel jätkab ta nende asjade tegemist lõputult. See paneb arvuti aeglaselt täituma lõpmatu ahela korduvate käskudega, kuni kogu süsteem tegeleb lõputu probleemiga.

Sarnane olukord on siis, kui programmi lõpptingimus on saavutamatu. Sel juhul võib programm lõppeda, kuid see ei lõpe kunagi. Lõpp-punkti probleem võib olla programmeerimises või selle põhjuseks võib olla arvuti viga. Näiteks kui programm küsib konkreetsest asukohast konkreetset teavet, on programmeerimisviga see, et teave salvestatakse teise kohta. Teisest küljest, kui teave läheb programmi, kuid see katkeb kasutaja või mõne muu programmi häirete tõttu, ei pruugi see lihtsalt kohale jõuda.

Lõpmatu tsükli viimane põhjus on täielikult programmeerimispõhine. Kuskil programmeerimises on käsk, mis käsib programmil midagi korrata. Kuigi need käsud on tavalised, ei tohiks tingimused kunagi lubada korduval käsul naasta esialgsele kordusele. Kui see juhtub, täidab programm käsu, vajutab korduslauset, käivitab käsu uuesti, siis kordab uuesti ja nii edasi. Need silmused on kõige tõenäolisemalt tahtlikult programmeeritud, sageli pahavara osana.