Hvad er en uendelig sløjfe?
En uendelig sløjfe er en betingelse, der får et computerprogram til at fortsætte med at udføre en kommando uden ende. Dette skyldes typisk en af tre årsager: programmet har ingen slutbetingelse, programmets slutbetingelse er uopnåelig, eller en gentagelseskommando får et program til at genstarte kontinuerligt. Det meste af tiden vil en uendelig sløjfe forårsage, at en computer drastisk bremser eller endda låser sig. I de tidlige computere ville disse sløjfer ofte kræve en genstart, men moderne operativsystemer vil ofte fange dem og afslutte programmet, før de går ude af hånden.
Der findes uendelige sløjfer inden for programmering; andre anvendelser af udtrykket er normalt forkerte. I de fleste tilfælde er uendelige sløjfer ikke programmets slutmål, og der findes et problem et sted i koden, der får tilstanden til at opstå. Hver af de tre hovedtilfælde af en uendelig sløjfe er fuldstændigt programmerings- og softwarebaseret.
Når et program ikke har nogen slutbetingelse, fortsætter det med at udføre det sidste sæt instruktioner uden afslutning. I mange tilfælde vil dette resultere i, at programmet låses fast, da det venter på en endelig instruktion, der aldrig kommer. Andre gange var den sidste instruktion, der blev givet til programmet, udførelse af en instruktion eller behandling af en kommando. I disse tilfælde fortsætter den med at gøre disse ting uden ende. Dette vil medføre, at computeren langsomt udfyldes med gentagne kommandoer fra den uendelige sløjfe, indtil hele systemet arbejder på et problem uden ende.
En lignende situation findes, når programmets slutbetingelse ikke kan opnås. I dette tilfælde kan programmet afslutte, men det bliver aldrig. Problemet med slutpunktet kan være i programmeringen, eller det kan være en computerfejl, der forårsager tilstanden. For eksempel, hvis et program beder om et specifikt stykke information fra en bestemt placering, ville en programmeringsfejl være, at informationen gemmes på et andet sted. På den anden side, hvis oplysningerne går til programmet, men afbrydes på grund af interferens fra brugeren eller et andet program, kan de simpelthen aldrig ankomme.
Den sidste årsag til en uendelig sløjfe er fuldstændigt programmeringsbaseret. Et sted inden for programmeringen er en kommando, der beder programmet om at gentage noget. Mens disse kommandoer er almindelige, bør forholdene aldrig tillade, at den gentagne kommando vender tilbage til den første gentagelse. Hvis dette sker, vil programmet udføre en kommando, ramme gentagelsessætningen, derefter køre kommandoen igen, derefter gentage igen og så videre. Disse løkker er sandsynligvis programmeret med vilje, ofte som en del af et stykke malware.