Skip to main content

บัฟเฟอร์วงกลมคืออะไร?

บัฟเฟอร์แบบวงกลมเป็นวงจรฮาร์ดแวร์ประเภทหนึ่งหรือพื้นที่ของหน่วยความจำคอมพิวเตอร์ที่ใช้ในการจัดเก็บข้อมูลที่เข้ามามันเป็นบัฟเฟอร์ขนาดคงที่และสามารถเข้าใจได้ว่าเป็นโครงสร้างข้อมูลที่ใช้บัฟเฟอร์ราวกับว่ามันเชื่อมโยงจากปลายด้านหนึ่งไปอีกด้านหนึ่งมันถูกเรียกว่าบัฟเฟอร์แบบวงกลมเพราะมันให้ลักษณะของวงกลมการเพิ่มข้อมูลเพิ่มเติมเมื่อบัฟเฟอร์เต็มทำให้มันเขียนทับองค์ประกอบแรกที่เก็บไว้ในบัฟเฟอร์มันถูกเรียกว่าบัฟเฟอร์แหวนหรือบัฟเฟอร์วงจร

วิธีที่ง่ายในการทำความเข้าใจบัฟเฟอร์แบบวงกลมคือการจินตนาการถึงสายในสถานีรถบัสข้อมูลจะถูกเพิ่มไปที่ปลายด้านหนึ่งของบรรทัดเสมอและจะถูกลบออกจากปลายอีกด้านเสมอหัวของบรรทัดมักจะเป็นสล็อตที่เพิ่มข้อมูลปลายหางของเส้นเป็นสถานที่ที่ข้อมูลถูกลบออกหางและศีรษะให้ลักษณะของการอยู่ติดกันในการใช้งานในบัฟเฟอร์ประเภทนี้แม้ว่าบัฟเฟอร์จะเป็นจริงเพียงบล็อกของหน่วยความจำซึ่งแตกต่างจากสายในสถานีรถบัสขนาดของบัฟเฟอร์ได้รับการแก้ไขและมีความจุสูงสุดที่แน่นอน

นี่หมายความว่าเมื่อบัฟเฟอร์เต็มมันจะเริ่มเขียนทับข้อมูลที่หัวความจุสูงสุดของบัฟเฟอร์จะต้องตั้งค่าไว้ล่วงหน้าและในขณะที่หมายเลขนี้อาจเปลี่ยนแปลงได้ตลอดเวลาข้อมูลที่มีอยู่ทั้งหมดที่มีอยู่ในบัฟเฟอร์จะหายไปโดยทั่วไปแล้วกระบวนการต่อเนื่องจะใช้บัฟเฟอร์แบบวงกลมเพื่อแลกเปลี่ยนข้อมูลและข้อมูลที่ป้อนโดยกระบวนการหนึ่งจะถูกอ่านโดยอีกกระบวนการหนึ่งกระบวนการแรกที่เรียกว่าผู้ผลิตวางข้อมูลลงในบัฟเฟอร์และกระบวนการที่สองที่เรียกว่าผู้บริโภคนำออกมารูทีนยังใช้บัฟเฟอร์วงจรสำหรับการจัดเก็บข้อมูลชั่วคราว

คุณลักษณะที่ได้เปรียบที่สุดของบัฟเฟอร์แบบวงกลมคือวิธีที่เก็บข้อมูลข้อมูลจะไม่ถูกสับเปลี่ยนไปรอบ ๆ เมื่อวัตถุที่ส่วนท้ายของบรรทัดถูกลบออกหากบัฟเฟอร์นั้นไม่ใช่วงกลมองค์ประกอบข้อมูลทั้งหมดที่มีอยู่ในบัฟเฟอร์จะต้องเลื่อนตำแหน่งเมื่อข้อมูลถูกลบออกบัฟเฟอร์แบบวงกลมสามารถถือได้ว่าเป็นบัฟเฟอร์ประเภทแรก (FIFO) ในขณะที่บัฟเฟอร์มาตรฐานมีลักษณะคล้ายกับบัฟเฟอร์ประเภทแรก (LIFO)

เมื่อบัฟเฟอร์แบบวงกลมเก็บข้อมูลในภูมิภาคที่ต่อเนื่องกันของหน่วยความจำจึงช่วยให้สามารถเข้าถึงข้อมูลแบบสุ่มได้อย่างรวดเร็วบัฟเฟอร์ประเภทนี้ง่ายต่อการดีบักและมีประสิทธิภาพมากมันทำหน้าที่เป็นพื้นที่แคชสำหรับการจัดเก็บข้อมูลที่รวมล่าสุดจำนวนหนึ่งนอกจากนี้ยังเป็นไปได้ที่จะแทรกและลบข้อมูลออกจากปลายทั้งสองอย่างรวดเร็วทำให้เหมาะสำหรับแอปพลิเคชันจำนวนมาก