Różnica między blokami a sektorami

W odniesieniu do tego artykułu, jest wiersz, który brzmi:

Ponieważ istnieją ograniczenia liczby bloków lub adresów dysków, które może adresować system operacyjny. Definiując blok jako kilka sektorów, System Operacyjny może pracować z większymi dyskami twardymi bez zwiększania liczby adresów bloków.

Co to znaczy? Co oznacza "System Operacyjny może adresować"? Kolejne obliczenia też nie są jasne. Jak 64 * 512 może być mniej niż 64*4?

Author: Hashim, 2012-09-10

2 answers

Spójrz na to w ten sposób. Każdy blok, który jest używany w systemie operacyjnym filesytem do przechowywania danych, wymaga przechowywania określonej ilości metadanych wraz z rzeczywistymi danymi Pliku, które zapisujesz. np.: znaczniki czasu (zmiana, utworzenie, modyfikacja), nazwa pliku, bity własności/uprawnień. W przypadku plików, które obejmują wiele bloków, musisz również przechowywać identyfikatory każdego z tych bloków i kolejność, w jakiej są połączone, itp...

Określenie rozmiaru bloku w systemie operacyjnym jest przypadkiem kompromisu. Każdy plik musi zajmować co najmniej jeden blok, nawet jeśli plik ma 0 bajtów, więc jest coś, do czego można dołączyć metadane pliku. O ile nie możesz zagwarantować, że Twoje pliki będą zawsze miały wieloraki rozmiar bloku (np. w systemie operacyjnym z blokami 4k wszystkie pliki są 4k), będzie pewna ilość marnotrawstwa dla plików, które nie pasują dokładnie do tego bloku.

Małe rozmiary bloków są dobre, gdy trzeba przechowywać wiele małych plików. Z drugiej strony, więcej bloków = więcej metadanych, więc można w rezultacie marnujesz część systemu pamięci masowej na koszty ogólne, śledząc lokalizację wszystkich plików.

Z drugiej strony, duże bloki oznaczają mniej metadanych, ale także większe straty podczas przechowywania małych plików. np. 1-bajtowy plik przechowywany w bloku 4k marnuje 3,99 k tego bloku.

Każdy z tych bloków musi mieć numer ID przez system operacyjny, aby mógł być jednoznacznie zidentyfikowany. System operacyjny, który używa 8-bitowego pola ID, może śledzić tylko 256 bloków, a zatem, przez rozszerzenie, tylko 256 plików. ale jeśli każdy z tych bloków ma rozmiar 1 megabajta, możesz przechowywać do 256 megabajtów danych.

Artykuł, który linkujesz, ma literówkę / wadę logiczną, oznaczał 512 bajtów , a nie 512k, więc 64 * 512bajtów jest mniejsze niż 64*4k, aka 64*4096bajtów. Większość dysków twardych jest dostarczana z 512-bajtowymi rozmiarami sektora / bloku.

Jednak, jak wspomniano wcześniej, małe bloki oznaczają więcej metadanych. Z rozmiarami dysków w zakresie 3 + terabajtów, z blokami 512byte, trzeba było mieć przechowywanie metadanych dla 3TB / 512bytes = 6.44 miliard bloków. To jedna wielka strata miejsca. Więc teraz wysyłają dyski z blokami 4k, 8 razy większymi, więc potrzebujesz tylko przechowywania metadanych dla 805 milionów bloków. Całkowita liczba możliwych plików została wycięta przez współczynnik 8, ale zmniejszona ilość metadanych oznacza, że można faktycznie przechowywać większą ilość użytecznych danych.

Nawiasem mówiąc, 6,4 miliarda bloków jest większe niż to, co może być adresowane bezpośrednio przez system 32-bitowy. 2^32 ma górną limit ~4,2 miliarda, więc starsze 32-bitowe maszyny nie mogły korzystać w całości z dysku 3TB. Stąd przejście na większe rozmiary bloków. 32-bitowe pudełka mogą z łatwością obsłużyć 805 milionów bloków.

 39
Author: Marc B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 05:45:09

Wiem, że ten post jest stary, ale w dzisiejszym świecie system operacyjny działający pod NTFS ponownie wykorzystuje plik slack (Cluster tips). Również mniejsze pliki są często przechowywane bezpośrednio w MFT.

Chear!

 -1
Author: User125,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-06 21:59:57