Hva er en sirkulær buffer?

En sirkulær buffer er enten en type maskinvarekrets eller et område av 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 utseendet til sirkularitet. Å legge til mer informasjon når bufferen er full, fører til at den overskriver 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 på er å forestille seg en linje i en busstasjon. Data blir alltid lagt til i den ene enden av linjen og blir alltid fjernet fra den andre enden. Linjens hode er alltid sporet som informasjon legges til; halens ende av linjen er stedet der informasjonen fjernes fra. Halen og hodet gir utseendet som å være ved siden av hverandre i implementeringen i denne typen buffer, selv om bufferen i virkeligheten bare er en hukommelsesblokk. I motsetning til linjen i en busstasjon er riktignok størrelsen på bufferen fast, og den har en viss maksimal kapasitet.

Dette betyr at når bufferen er full, begynner den å overskrive data i spissen. Maksimal kapasitet på bufferen må settes på forhånd, og selv om dette nummeret kan endres når som helst, vil alle eksisterende data som er tilstede i bufferen gå tapt. Sekvensielle prosesser bruker 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 i bufferen, og den andre prosessen, kjent som forbrukeren, tar den ut. Rutiner bruker også sykliske buffere for lagring av data midlertidig.

Det 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 er tilstede i bufferen, måtte skifte posisjoner når data ble fjernet. En sirkulær buffer kan sees på som en første inn første ut (FIFO) type buffer, mens en standard buffer ligner en siste inn første ut (LIFO) type buffer.

Ettersom den sirkulære bufferen lagrer data i sammenhengende områder av minnet, muliggjør den tilfeldig tilgang til data raskt. Denne typen buffere er enkel å feilsøke og er ekstremt effektiv. Det fungerer som et cacheområde for lagring av et visst antall av de sist inkluderte dataene. Det er også mulig å raskt sette inn og fjerne data fra begge ender, noe som gjør det ideelt for mange applikasjoner.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?