wprowadzenie: – ponieważ miejsce na dysku jest ograniczone, powinniśmy ponownie wykorzystać miejsce z usuniętych plików na nowe pliki. Aby śledzić wolne miejsce na dysku, system utrzymuje listę wolnego miejsca. Lista wolna przestrzeń rejestruje wszystkie wolne bloki dyskowe, które nie są przypisane do jakiegoś pliku lub katalogu. Ta lista wolnej przestrzeni może być zaimplementowana jako jedna z następujących opcji:
a) Bit vector – lista wolnej przestrzeni jest zaimplementowana jako mapa bitowa lub wektor bitowy. Każdy blok jest reprezentowany przez jeden bit. Jeśli blok jest wolny, bit jest równy 1, jeśli blok jest alokowany, bit jest równy 0.
główną zaletą tego podejścia jest jego względna prostota i skuteczność w znajdowaniu pierwszego wolnego bloku lub N kolejnych wolnych bloków na dysku. Obliczenie numeru bloku to (liczba bitów na słowo) * (liczba słów o wartości 0) przesunięcie pierwszego 1 bitu
b) lista powiązana-innym podejściem do zarządzania wolną przestrzenią jest połączenie ze sobą wszystkich wolnych bloków dyskowych utrzymując wskaźnik do pierwszego wolnego bloku w specjalnym miejscu na dysku i buforując go w pamięci. Pierwszy blok zawiera wskaźnik do następnego wolnego bloku dysku.
C) grupowanie-modyfikacja podejścia free list polega na przechowywaniu adresów N wolnych bloków w pierwszym wolnym bloku.
d) zliczanie-innym podejściem jest wykorzystanie faktu, że kilka sąsiadujących ze sobą bloków może być przydzielanych lub zwalnianych jednocześnie, gdy przestrzeń jest przydzielana za pomocą algorytmu alokacji ciągłej lub klastrowania.
wydajność i wydajność
dyski zwykle stanowią główne wąskie gardło wydajności systemu, ponieważ są najwolniejszym głównym komponentem komputera. Wydajność:- Efektywne wykorzystanie przestrzeni dyskowej zależy w dużym stopniu od alokacji dysku i używanych algorytmów katalogów.
wydajność: – większość kontrolerów dysków zawiera pamięć lokalną, tworząc wbudowaną pamięć podręczną, która jest wystarczająco duża, aby przechowywać całe ścieżki naraz. Po wykonaniu wyszukiwania ścieżka jest odczytywana do pamięci podręcznej dysku, zaczynając od sektora pod głowicą dysku. Kontroler dysku przesyła następnie wszelkie żądania sektorów do systemu operacyjnego. Niektóre systemy utrzymują oddzielną sekcję pamięci głównej dla bufora cache, gdzie bloki są przechowywane przy założeniu, że zostaną ponownie użyte. Inne systemy buforują dane Plików za pomocą pamięci podręcznej strony. Pamięć podręczna stron wykorzystuje techniki pamięci wirtualnej do buforowania danych plików jako stron, a nie jako bloków zorientowanych na system plików. Buforowanie danych plików przy użyciu adresów wirtualnych jest bardziej wydajne niż buforowanie za pomocą fizycznych bloków dyskowych, ponieważ uzyskuje dostęp do interfejsu z pamięcią wirtualną, a nie do systemu plików. Kilka systemów używa buforowania stron do buforowania zarówno stron procesu, jak i danych plików. Jest to znane jako unified buffer cache.
istnieją inne problemy, które mogą mieć wpływ na wydajność we / wy, takie jak to, czy zapisy do systemu plików następują synchronicznie czy asynchronicznie. Synchroniczne zapisy występują w kolejności, w jakiej podsystem dyskowy je odbiera, a zapisy nie są buforowane. Asynchroniczne zapisy są wykonywane przez większość czasu. Niektóre systemy optymalizują pamięć podręczną stron za pomocą różnych algorytmów zastępczych w zależności od typu dostępu do pliku. Dostęp sekwencyjny można zoptymalizować za pomocą technik znanych jako free behind I read ahead. Free behind usuwa stronę z bufora, gdy tylko Następna strona jest żądana. Dzięki funkcji read ahead żądana strona i kilka kolejnych stron są odczytywane i buforowane.