Vad är en oändlig slinga?
En oändlig slinga är ett tillstånd som gör att ett datorprogram fortsätter att utföra ett kommando utan slut. Detta beror vanligtvis på en av tre orsaker: programmet har inget slutvillkor, programmets slutvillkor är ouppnåelig eller ett repetitionskommando får ett program att starta om igen. Oftast kommer en oändlig slinga att göra att en dator drastiskt bromsar eller till och med låser sig. I tidiga datorer skulle dessa slingor ofta kräva en omstart, men moderna operativsystem kommer ofta att fånga dem och avbryta programmet innan de går ur handen.
Det finns oändliga slingor inom programmering; andra användningar av termen är vanligtvis felaktiga. I de flesta fall är oändliga slingor inte programmets slutmål, och det finns ett problem någonstans i koden som får tillståndet att uppstå. Var och en av de tre huvudfallen i en oändlig slinga är helt programmerings- och programvarubaserad.
När ett program inte har något slutvillkor kommer det att fortsätta att utföra sin sista instruktion utan slut. I många fall kommer detta att resultera i att programmet låses fast eftersom det väntar på någon slutlig instruktion som aldrig kommer att komma. Andra gånger utförde den senaste instruktionen som gavs programmet en instruktion eller bearbetning av ett kommando. I dessa fall kommer den att fortsätta göra dessa saker utan slut. Detta kommer att göra att datorn sakta fylls med upprepade kommandon från den oändliga slingan tills hela systemet arbetar med ett problem utan slut.
En liknande situation finns när programmets slutvillkor är ouppnåelig. I det här fallet kan programmet avsluta, men det kommer aldrig. Problemet med slutpunkten kan vara i programmeringen, eller det kan vara ett datorfel som orsakar tillståndet. Om till exempel ett program ber om en specifik information från en specifik plats, skulle ett programmeringsfel vara att informationen lagras på en annan plats. Å andra sidan, om informationen går till programmet, men avbryts på grund av störningar från användaren eller något annat program, kan det helt enkelt aldrig komma fram.
Den sista orsaken till en oändlig slinga är helt programmeringsbaserad. Någonstans inom programmeringen är ett kommando som säger att programmet ska upprepa något. Medan dessa kommandon är vanliga bör förhållandena aldrig tillåta att det upprepade kommandot återgår till den första upprepningen. Om detta händer kommer programmet att köra ett kommando, slå upp repetitionssatsen och sedan utföra kommandot igen, upprepa sedan igen och så vidare. Dessa slingor är de mest troliga att medvetet programmeras, ofta som en del av en skadlig bit.