Bir dosyaya yazmak için 10 baytlık verim var, programım 9 bayt ve 7 bit sabit diske yazdıktan sonra, elektrik kesilirse, elektrik geldikten sonra bu dosyadan kaç bayt okuyabilirim? 9 bayt veya 10 bayt?Harddisk çalışma prensibi
cevap
Hiçbir şey söyleyemezsiniz. Burada çok fazla soyutlama katmanı var. Programınız genellikle arabellekleri, OS arabelleklerini, yonga seti arabelleklerini, sürücünün arabelleklerini ve bir noktada verileri yazacaktır. Eğer fsync
gibi bir şey aracılığıyla veriler üzerinde sert bir senkronizasyon için sorduğunuzda
alıyoruz tüm en az veri, başka hiçbir şey olduğunu garanti yazılmış olduğunu bir teyididir.
Bu verilerin tüm bu katmanlarda akış yapması ve fiziksel olarak diskinizde, SSD'nizde veya başka bir şekilde sonuçlanması için sıfırdan fazla olmayan bir zaman alır. Eğer bu süreçte güç kesintiye uğrarsa ve bir yazım onayını almadıysanız, ne kadar yazıldığını bilmiyorsunuz. Daha önce yazdığınız dosyaları incelemek ve hangi verinin bulunduğunu görmeniz gerekir.
Sisteminiz yeniden başlatıldığında, büyük olasılıkla yine de günlük defterinden kurtarmak zorunda kalacak ve izin verilmeyen değişiklikler geri alınacaktır. Örneğinizde, aslında yazılan bayt sayısı sıfır'dur.
Her diski bir diske yazamazsınız. Minimum blok büyüklüğü vardır. – Thilo
Ve bu bile, dosya sisteminin bir dosyanın nerede başladığını ve bittiğini ve tam olmayan güncellemelerden korunmak için ne tür önlemlerin uygulandığını düşünmesiyle pek alakalı değildir. – Thilo
En az blok boyutu 512 bayt ise sıfır bayt okuyabileceğimi söyleyebilirim. Ben haklı mıyım – codeator