410 likes | 531 Views
Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady , P. Czarny Windows XP. Naprawa i optymalizacja , B. Danowski Windows XP Home Pl , D. Mendrala i M. Szeliga Windows Vista PL. Instalacja i naprawa , B. Danowski www.chip.pl www.howto.pl www.wikipedia.pl. Systemy plików.
E N D
Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows XP Home Pl, D. Mendrala i M. Szeliga Windows Vista PL. Instalacja i naprawa, B. Danowski www.chip.pl www.howto.pl www.wikipedia.pl Systemy plików Opracował: Andrzej Nowak
Pojęcie pliku (ang. file) • Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. • Plik jest podstawową jednostką logiczną magazynowania informacji w systemie komputerowym, widoczną dla użytkownika. • Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym w pamięci pomocniczej (najczęściej nieulotnej, czyli trwałej).
Atrybuty pliku • Nazwa — ciąg znaków służących użytkownikowi do identyfikacji pliku • Typ — informacja służąca do rozpoznania rodzaju zawartości pliku i tym samym sposobu interpretacji • Lokalizacja — informacja służąca do odnalezienia pliku w systemie komputerowym (urządzenie i położenie pliku w tym urządzeniu) • Rozmiar — bieżący rozmiar pliku w ustalonych jednostkach (bajtach, słowach, blokach itp.) • Ochrona — informacje umożliwiające kontrolę dostępu • Czasy dostępów — daty i czasy wykonywania pewnych operacji na pliku, typu odczyt, modyfikacja, utworzenie
Typ pliku • Typ pliku określa rodzaj informacji przechowywanej w pliku i tym samym sposób interpretacji jego zawartości, np. program binarny, wynik kompilacji, kod źródłowy, makrodefinicja (plik wsadowy, skrypt powłoki itp.), tekst, biblioteka programisty, grafika, dane aplikacji. • Informacja o typie pliku może być przechowywana w strukturach wewnętrznych systemu plików, w zawartości samego pliku, w katalogach lub w nazwie pliku. • Typ pliku może być rozpoznawany przez system operacyjny, ale może to być również tylko informacja interpretowana przez użytkownika lub aplikację.
Struktura pliku • Struktura pliku określa jego wewnętrzną organizację. • Struktura może być definiowana i rozpoznawana przez system operacyjny lub może być rozpoznawana na poziomie aplikacji korzystającej z tego pliku. • Definiowanie różnych struktur plików na poziomie systemu operacyjnego może być pomocne dla użytkownika, ale w systemie musi być wówczas zawarty kod do obsługi każdej z tych struktur. • Wyróżniana jest też wewnętrzna (fizyczna) struktura plików, narzucana przez urządzanie, które ten plik przechowuje
Metody dostępu do plików Metody dostępu do plików określają sposób wykonywania operacji na plikach w celu udostępnienia znajdującej się w nich informacji.
Metody dostępu do plików • Dostęp sekwencyjny (ang. sequential access) — informacje w pliku przetwarzane są rekord po rekordzie, tzn. po wykonaniu operacji na określonym rekordzie system przygotowuje się do wykonania operacji na kolejnym rekordzie w pliku. • Dostęp bezpośredni (ang. direct access) — lokalizacja rekordu do przetwarzania podawana jest jako parametr odpowiedniej operacji. • Dostęp indeksowy — rekord, na którym ma być wykonana operacja identyfikowany jest przez klucz, odwzorowywany na konkretny rekord w pliku stowarzyszonym poprzez plik indeksowy.
System plików - metoda przechowywania i organizacji plików i informacji o plikach, tak by był to system łatwy w użytkowaniu. System plików jest stosowany na nośnikach fizycznych takich jak: dyski, dyskietki, CD - zwanych nośnikami danych.
Podstawowe operacje na plikach • Tworzenie pliku — konieczne jest określenie podstawowych atrybutów pliku, znalezienie miejsca na ten plik w systemie komputerowym oraz jego zaewidencjonowanie (utworzenie wpisu katalogowego) • Zapis do pliku — konieczne jest określenie, co ma być zapisane i gdzie ma być zapisane (w którym pliku i w jakim miejscu tego plik, zależnie od sposobu dostępu) • Odczyt z pliku — konieczne jest określenie, co ma być odczytane (z którego pliku i z jakiego miejsca tego plik, zależnie od sposobu dostępu) i gdzie mają być umieszczone odczytane dane
Podstawowe operacje na plikach • Usuwanie informacji z pliku — należy określić jaki fragment pliku (i którego pliku) ma być usunięty. Najczęściej możliwe jest tylko skracanie pliku, czyli usuwanie jego końcowej zawartości lub całej jego zawartości. • Usuwanie pliku — należy określić plik do usunięcia. Usuwana jest zawartość oraz wpis ewidencyjny pliku. • Dodatkowe operacje na plikach, wykonywane w celu uzyskania dostępu do zawartości pliku: • otwieranie, • zamykanie, • przesuwanie wskaźnika bieżącej pozycji.
Dysk podzielony jest na bloki o określonej długości wynikającej z długości sektora. Bloki sąjednostkami wszystkich operacji wejścia/wyjścia. Wszystkie bloki mają ten sam rozmiar i zazwyczaj jest on różny od rozmiaru rekordu logicznego. Rekordy logiczne mogąmiećnawet zmienne rozmiary. Prowadzi to do pakowania pewnej ilości rekordów logicznych do bloków fizycznych. (W systemie UNIX pliki sązwyczajnymi ciągami bajtów, każdy bajt jest adresowany przez podanie odległości od początku lub końca pliku. Rekordem logicznym jest 1 bajt – system automatycznie pakuje i rozpakowuje bajty z fizycznych bloków dyskowych).
Zawsze marnuje się część ostatniego bloku każdego pliku. Bajty marnowane z powodu dokonywanych wszystkich przydziałów w jednostkach blokowych (a nie w bajtach) stanowią fragmentację wewnętrzną. Fragmentacja występuje we wszystkich systemach plików, im większe rozmiary bloków – tym większa fragmentacja wewnętrzna.
Nośniki danych typu dyskietka, dysk itp. przechowują informacje w porcjach zwanych sektorami. Sektor jest zawsze w całości odczytywany i zapisywany. Większość urządzeń posiada sektory o wielkości 512 bajtów
W formacie FAT partycja (poza początkowymi zarezerwowanymi sektorami) jest podzielona na klastry (jednostki alokacji pliku). Każdy klaster składa się z jednego lub kilku sektorów, klastry są numerowane (adresowalne). System operacyjny na podstawie numeru klastra oblicza numer logiczny sektora (numer sektora od początku partycji), a na tej podstawie numer ścieżki, głowicy i sektora na ścieżce (dawniej fizyczne położenie na dysku), identyfikując jednoznacznie sektor i dokonując odczytu lub zapisu wybranego sektora. Klaster w całości jest przydzielony jednemu plikowi.
Plik w katalogu zawiera numer pierwszego klastra pliku, gdzie znajdują się dalsze części pliku opisuje wpis w FAT. W tablicy FAT pod numerem odpowiadającym numerowi pierwszej części pliku jest umieszczony numer kolejnego klastra przydzielonego plikowi lub liczba z zakresu FFF8h11 - FFFFh, jeśli to jest ostatni klaster pliku. Jeżeli dany klaster jest wolny, to w FAT odpowiada mu wpis 0000h, a FFF7h oznacza uszkodzony klaster. Każdy dysk logiczny posiada swoją tablicę FAT. Podstawowe informacje o pliku zapisanym na dysku znajdują się w (pod)katalogu, w którym został zapisany plik, w odpowiadającej mu pozycji. Podana jest tam jego nazwa, rozmiar, tak zwane atrybuty i wreszcie informacja o numerze pierwszego klastra, od którego rozpoczyna się dany plik.
Przechowywanie podręczne • Operacja dostępu do danych w pliku wymaga ich sprowadzenia do pamięci operacyjnej, gdzie można je testować, zmieniać, po czym zażądać ponownego ich zapisania do systemu plików. • Czytanie i pisanie bezpośrednio z / na dysk podczas wszystkich operacji dostępu do plików, jest nieefektywne ze względu na czas reakcji dysku oraz relatywnie małą szybkość transmisji dyskowych. • Minimalizacja dostępów do dysku możliwa jest przez utrzymywanie puli wewnętrznych buforów, zwanych podręczną pamięcią buforową (ang. buffer cache), które zawierają dane z ostatnio używanych bloków dyskowych.
Zasady przechowywania podręcznego • Bloki dyskowe aktualnie wykorzystywane są i utrzymywane w pamięci buffer cache—dane w jednym buforze odpowiadają danym z jednego bloku dyskowego. • Obsługa żądania odczytu bloku polega najpierw na sprawdzeniu czy dany blok znajduje się w pamięci buffer cache. • Jeśli blok nie znajduje się w pamięci buffer cache jest czytany z dysku do tej pamięci, a następnie kopiowany w odpowiednie miejsce w przestrzeni adresowej procesu. • Dane zapisywane na dysk są również zapamiętywane w pamięci buforowej, by były tam dostępne dla ewentualnych kolejnych operacji odczytu.
Integralność systemu plików • W wyniku awarii systemu zawartość podręcznej pamięci buforowej może nie zostać zapisana na dysku lub może zostać zapisana tylko częściowo. • Skutkiem w/w awarii może być pozostawienie systemu plików w stanie niespójnym. • Większość systemów operacyjnych dostarcza odpowiednie narzędzie do sprawdzania integralności systemu plików, uruchamiane w ramach restartu systemu po awarii.
Przejawy braku integralności systemu plików • Brak bloku zarówno w wykazie bloków zaalokowanych jak i bloków wolnych • Obecność bloku zarówno w wykazie bloków zaalokowanych jak i bloków wolnych • Wielokrotne powtórzenie się bloku w wykazie bloków wolnych (duplikacja wolnego bloku) • Wielokrotne powtórzenie się bloku w wykazie bloków zaalokowanych (duplikacja zaalokowanego bloku) • Niespójność informacji we wpisach katalogowych (np. niezgodność licznika dowiązań w systemie UNIX).
Semantyka spójności • Semantyka spójności określa sposób postrzegania zmian zawartości pliku, dokonywanych przez współbieżnie działające (i korzystającego z danego pliku) procesy. • Przykłady semantyki spójności: • semantyka spójności systemu UNIX — wynik operacji zapisu jest natychmiast widoczny dla innych procesów, które otworzyły dany plik, • semantyka sesji — zmiany w pliku stają się widoczne tylko dla procesów, które ten plik otworzą po jego zamknięciu przez proces zapisujący, • semantyka stałych plików dzielonych — plik dzielony nie może podlegać modyfikacjom, czyli może być tylko czytany.
Zapis pliku przebiega następująco: • system operacyjny szuka na dysku pierwszego wolnego klastra i tam zaczyna zapisywać plik, • jednocześnie zapisując numer tego klastra do pozycji w katalogu, która odpowiada danemu plikowi. • Numer ten jest jednocześnie numerem pozycji w tablicy FAT odpowiadającej temu klastrowi. • Jeżeli plik zmieści się w jednym klastrze, to w pozycji tablicy FAT jemu odpowiadającej wpisywana jest sygnatura końca pliku oznaczana przez EOF (ang. End Of File), równa FFFFh.
Numery łańcucha klastrów, w których zapisany jest dany plik, można znaleźćw tablicy FAT, przy czym na kolejnych pozycjach odpowiadającym kolejnym klastrom, w których jest zapisany plik, zapisany zostaje numer następnego klastra. O ostatnim klastrze informuje sygnatura EOF.
Skasowanie pliku polega na zmianie pierwszej litery nazwy na symbol (kod E5h), oznaczający dla systemu plik skasowany oraz na wpisaniu zer w tablicy FAT na pozycjach odpowiadających klastrom, w których został zapisany dany plik. Stąd odzyskanie przypadkowo skasowanego, pojedynczego pliku nie nastręcza zwykle większych trudności pod warunkiem, że po tym fakcie nie dokonaliśmy na dysku żadnych zapisów (nie nadpisaliśmy plików w tych samych klastrach). Do tego celu możemy użyć specjalistycznego oprogramowania.
Wielkość klastra zależy od maksymalnego numeru klastra zależnego od wersji FAT, czyli 12, 16 albo 32, jednak wielkość ta nie określa bezpośrednio liczby dostępnych klastrów. Np. w FAT12 będzie ich mniej niż 4096, ponieważ niektóre z nich mają znaczenie wyłącznie systemowe i nie są dostępne dla użytkownika. Liczba dostępnych klastrów jest jednocześnie maksymalną liczbą możliwych do zapisania plików na partycji. FAT12 użyjemy dla dysku o pojemności 20MB – dysk ten ma 40960 sektorów, więc klaster musi zawierać 10 sektorów, co odpowiada 5KB.
Formatowanie dysku: • podzielenie fizycznego i logicznego obszaru dysku na sektory, • nadanie im odpowiednich oznaczeń, • utworzeniesystemu plików. • // Ponieważ formatowanie wiąże się zwykle z utratą wszystkich zapisanych wcześniej danych, często proces ten błędnie kojarzony jest z kasowaniem zawartości dysku.//