Skip to main content

Hva er en sirkulær buffer?

En sirkulær buffer er enten en type maskinvarekrets eller et område med dataminne som brukes til å lagre innkommende informasjon.Det er en buffer i fast størrelse og kan forstås som en datastruktur som bruker en buffer som om den var koblet fra den ene enden til den andre.Det kalles en sirkulær buffer fordi den gir utseende som sirkularitet.Å legge til mer informasjon når bufferen er full, får den til å overskrive det første elementet som er lagret i bufferen.Det kalles også en ringbuffer eller en syklisk buffer.

En enkel måte å forstå en sirkulær buffer er å forestille seg en linje i en busstasjon.Data legges alltid til i den ene enden av linjen og fjernes alltid fra den andre enden.Linjens hode er alltid sporet som informasjonen legges til;Haleenden av linjen er stedet som informasjonen fjernes fra.Halen og hodet gir utseendet til å være ved siden av hverandre i implementeringen i denne typen buffer, selv om bufferen i virkeligheten bare er en minneblokk.I motsetning til linjen i en busstasjon, er imidlertid størrelsen på bufferen fast, og den har en viss maksimal kapasitet.

Den maksimale kapasiteten til bufferen må settes på forhånd, og selv om dette tallet kan endres når som helst, vil alle eksisterende data som er til stede i bufferen gå tapt.Vanligvis bruker sekvensielle prosesser sykliske buffere for å utveksle informasjon, og dataene som er lagt inn av den ene prosessen blir lest av den andre.Den første prosessen, kalt produsenten, plasserer data inn i bufferen, og den andre prosessen, kjent som forbrukeren, tar den ut.Rutiner bruker også sykliske buffere for lagring av data midlertidig. Den mest fordelaktige attributtet til en sirkulær buffer er måten den lagrer data på.Data blandes ikke rundt når et objekt på slutten av linjen fjernes.Hvis bufferen var ikke -sirkulær, ville alle dataelementene som var til stede i bufferen måtte skifte posisjoner når data ble fjernet.En sirkulær buffer kan tenkes å være en første i første ut (FIFO) -type, mens en standardbuffer ligner en siste i First Out (LIFO) type buffer. Ettersom den sirkulære bufferen lagrer data i sammenhengende hukommelsesregioner, muliggjør det tilfeldig tilgang av data raskt.Denne typen buffer er enkel å feilsøke og er ekstremt effektiv.Det fungerer som et hurtigbufferområde for lagring av et visst antall av de sistnevnte dataene.Det er også mulig å sette inn og fjerne data fra begge ender veldig raskt, noe som gjør det ideelt for mange applikasjoner.