Skip to main content

Hvad er en cirkulær buffer?

En cirkulær buffer er enten en type hardware -kredsløb eller et område med computerhukommelse, der bruges til at gemme indgående information.Det er en buffer med fast størrelse og kan forstås som en datastruktur, der bruger en buffer, som om den var forbundet fra den ene ende til den anden.Det kaldes en cirkulær buffer, fordi den giver udseendet af cirkularitet.Tilføjelse af mere information, når bufferen er fulde, får den til at overskrive det første element, der er gemt i bufferen.Det kaldes også en ringbuffer eller en cyklisk buffer.

En nem måde at forstå en cirkulær buffer er at forestille sig en linje i en busstation.Data tilføjes altid til den ene ende af linjen og fjernes altid fra den anden ende.Linjens hoved er altid det slot, i hvilken information der tilføjes;Linjens ende er det sted, hvorfra information fjernes.Halen og hovedet giver udseendet at være ved siden af hinanden i implementeringen i denne type buffer, skønt bufferen i virkeligheden kun er en hukommelsesblok.I modsætning til linjen i en busstation er bufferens størrelse dog fast, og den har en vis maksimal kapacitet.

Dette betyder, at når bufferen er fuld, begynder den at overskrive data i spidsen.Den maksimale kapacitet af bufferen skal indstilles på forhånd, og selvom dette antal kan ændres til enhver tid, vil alle de eksisterende data, der er til stede i bufferen, gå tabt.Typisk bruger sekventielle processer cykliske buffere til at udveksle information, og de data, der er indtastet ved den ene proces, læses af den anden.Den første proces, kaldet producenten, placerer data i bufferen, og den anden proces, kendt som forbrugeren, tager den ud.Rutiner bruger også cykliske buffere til lagring af data midlertidigt.

Den mest fordelagtige egenskab ved en cirkulær buffer er den måde, den gemmer data på.Data er ikke blandet rundt, når et objekt i slutningen af linjen fjernes.Hvis bufferen var ikke -cirkulære, ville alle dataelementer, der var til stede i bufferen, være nødt til at skifte position, når data blev fjernet.En cirkulær buffer kan betragtes som en første i første ud (FIFO) type buffer, mens en standardbuffer ligner en sidste i første ud (LIFO) type buffer.

Da den cirkulære buffer gemmer data i sammenhængende hukommelsesregioner, muliggør det hurtigt tilfældig adgang til data.Denne type buffer er let at fejlsøge og er ekstremt effektiv.Det fungerer som et cacheområde til lagring af et vist antal af de sidst inklusive data.Det er også muligt at indsætte og fjerne data fra begge ender meget hurtigt, hvilket gør dem ideelle til adskillige applikationer.