Apakah membaca file secara berurutan akan menghasilkan pencarian disk secara acak?

Saya mendapat kesan bahwa pemindaian file secara berurutan sebenarnya adalah pencarian berurutan pada disk. Namun, baru-baru ini saya membaca bahwa blok suatu file mungkin tidak ditulis secara berdekatan pada disk oleh sistem file. Jika inode digunakan sebagai peta dan setiap blok diperoleh dengan mengikuti penunjuk blok, saya bertanya-tanya apakah mekanisme sebenarnya yang digunakan sistem file untuk mengambil blok file sebenarnya berurutan?

Jika jawabannya bergantung pada sistem file, sebaiknya sebutkan beberapa sistem file utama. Terima kasih.


person Phelodas    schedule 08.08.2016    source sumber
comment
Pertama, Anda perlu memberikan definisi sekuensial -- pada HDD tidak ada urutan, karena HDD berbentuk 3 dimensi (pelat/track/sektor).   -  person Eugene Mayevski 'Callback    schedule 08.08.2016
comment
@EugeneMayevski'EldoS berurutan == blok yang berdekatan pada HDD.   -  person itisravi    schedule 09.08.2016
comment
@itisravi sayangnya komentar Anda tidak berlaku, karena berurutan dan bersebelahan adalah sinonim, dan masalahnya telah ditentukan dalam komentar saya sebelumnya. Terlebih lagi, dua sektor yang berdekatan tidak bersebelahan. Sektor-sektor pada HDD sejak awal tidak diberi nomor secara berurutan, sehingga sektor logis 1 dan sektor logis 2, meskipun berada pada jalur (silinder) yang sama, bukanlah tetangga.   -  person Eugene Mayevski 'Callback    schedule 09.08.2016
comment
@EugeneMayevski'EldoS Oke, tidak tahu itu. Jadi, apa yang dimaksud dengan alokasi berdekatan? Harus ada logika yang mengalokasikan blok-blok agar berada dalam jarak fisik yang dekat (walaupun tidak diberi nomor urut) sehingga waktu pencarian antar sektor pada platter yang sama dan antar platter diminimalkan saat membaca file.   -  person itisravi    schedule 09.08.2016


Jawaban (1)


Sistem file mencoba mengalokasikan sebanyak mungkin blok berurutan selama penulisan. Namun seiring bertambahnya usia (yaitu banyak pembuatan + penghapusan seiring berjalannya waktu), fragmentasi menjadi tidak dapat dihindari. Ada heuristik untuk mengurangi fragmentasi seperti praalokasi spekulatif, praalokasi tertunda, dll. Aplikasi itu sendiri dapat melakukan hal-hal seperti praalokasi (contoh fallokasi), mengaktifkan readahead, dan menjalankan alat de-fragmentasi tergantung pada fitur yang tersedia di sistem file untuk membuat blok berdekatan atau setidaknya membaca lebih cepat.

person itisravi    schedule 08.08.2016