การอ่านไฟล์ตามลำดับจะส่งผลให้เกิดการค้นหาดิสก์แบบสุ่มหรือไม่

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

หากคำตอบนั้นขึ้นอยู่กับระบบไฟล์ การอ้างอิงระบบไฟล์หลักบางระบบจะดีมาก ขอบคุณ.


person Phelodas    schedule 08.08.2016    source แหล่งที่มา
comment
ก่อนอื่น คุณต้องให้คำจำกัดความของลำดับ - บน HDD ไม่มีลำดับ เนื่องจาก HDD เป็นแบบ 3 มิติ (เพลต / แทร็ก / เซกเตอร์)   -  person Eugene Mayevski 'Callback    schedule 08.08.2016
comment
@EugeneMayevski'EldoS sequential == บล็อกที่ต่อเนื่องกันบน HDD   -  person itisravi    schedule 09.08.2016
comment
@itisravi น่าเสียดายที่ความคิดเห็นของคุณใช้ไม่ได้ สาเหตุตามลำดับและต่อเนื่องกันเป็นคำพ้องความหมาย และปัญหาดังกล่าวได้รับการระบุไว้ในความคิดเห็นก่อนหน้าของฉัน นอกจากนี้ สองภาคส่วนที่อยู่ติดกันจะไม่ต่อเนื่องกัน เซกเตอร์บน HDD ตั้งแต่เริ่มต้นจะไม่ถูกเรียงลำดับหมายเลขตามลำดับ ดังนั้นเซกเตอร์โลจิคัล 1 และเซกเตอร์โลจิคัล 2 แม้ว่าจะอยู่บนแทร็กเดียวกัน (ทรงกระบอก) จึงไม่ใช่เพื่อนบ้าน   -  person Eugene Mayevski 'Callback    schedule 09.08.2016
comment
@EugeneMayevski'EldoS ตกลงไม่รู้เรื่องนั้น แล้วการจัดสรรต่อเนื่องหมายถึงอะไร? จะต้องมีตรรกะบางอย่างที่จัดสรรบล็อกให้อยู่ใกล้กัน (แม้ว่าจะไม่ได้เรียงลำดับหมายเลขตามลำดับก็ตาม) เพื่อลดเวลาการค้นหาข้ามเซกเตอร์ของแผ่นเสียงเดียวกันและข้ามแผ่นเสียงในขณะที่อ่านไฟล์   -  person itisravi    schedule 09.08.2016


คำตอบ (1)


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

person itisravi    schedule 08.08.2016