Mis on ümmargune puhver?

Ringikujuline puhver on kas teatud tüüpi riistvaralülitus või arvutimälu piirkond, mida kasutatakse sissetuleva teabe salvestamiseks. See on fikseeritud suurusega puhver ja seda võib mõista andmestruktuurina, mis kasutab puhvrit nii, nagu oleks see ühest otsast teise lingitud. Seda nimetatakse ringikujuliseks puhvriks, kuna see annab välimuse ringikujuliseks. Lisateabe lisamine, kui puhver on täis, kirjutab selle üle esimese puhvrisse salvestatud elemendi. Seda nimetatakse ka ringpuhvriks või tsükliliseks puhvriks.

Lihtne viis ümmarguse puhvri mõistmiseks on kujutada ette liini bussijaamas. Andmed lisatakse alati rea ühte otsa ja eemaldatakse alati teisest otsast. Rea pea on alati pesa, kuhu teave lisatakse; rea sabaots on koht, kust teave eemaldatakse. Saba ja pea jätavad seda tüüpi puhvri rakendamisel mulje, nagu oleksid kõrvuti, kuigi tegelikult on puhver vaid mäluplokk. Erinevalt bussijaama liinist on puhvri suurus siiski fikseeritud ja sellel on teatud maksimaalne mahutavus.

See tähendab, et kui puhver on täis, hakkab see andmeid üle kirjutama. Puhvri maksimaalne maht tuleb eelnevalt määrata ja kuigi seda numbrit võidakse igal ajal muuta, lähevad kõik puhvris olevad andmed kaotsi. Tavaliselt kasutavad järjestikused protsessid teabe vahetamiseks tsüklilisi puhvreid ja ühe protsessi sisestatud andmeid loeb teine. Esimene protsess, mida nimetatakse tootjaks, asetab andmed puhvrisse ja teine ​​protsess, mida nimetatakse tarbijaks, eemaldab need. Rutiinid kasutavad andmete ajutiseks salvestamiseks ka tsüklilisi puhvreid.

Ringpuhvri kõige soodsam atribuut on andmete salvestamise viis. Kui rea lõpus olev objekt eemaldatakse, andmeid ei segata. Kui puhver ei oleks ringikujuline, peaksid kõik puhvris olevad andmeelemendid andmete eemaldamisel positsioone nihutama. Ringikujulist puhvrit võib pidada FIFO (First In First Out) tüüpi puhvriks, samas kui standardpuhver meenutab LIFO-tüüpi puhvrit.

Kuna ümmargune puhver salvestab andmeid külgnevates mälupiirkondades, võimaldab see andmetele kiiret juhuslikku juurdepääsu. Seda tüüpi puhvrit on lihtne siluda ja see on äärmiselt tõhus. See toimib vahemälualana teatud arvu viimati lisatud andmete salvestamiseks. Samuti on võimalik väga kiiresti mõlemast otsast andmeid sisestada ja eemaldada, mistõttu on see ideaalne paljude rakenduste jaoks.