Skip to main content

รายการฟรีคืออะไร?

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

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

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

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

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

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

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