Transcript pobierz

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
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
Typy i struktury plików
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
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.
Pojęcie systemu plików
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
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.
Sektor
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
Klastry
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
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
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
• 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
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.
Efekt takiego procesu jest zilustrowany na rysunku poniżej:
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
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
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
Formatowanie dysku:
• podzielenie fizycznego i logicznego obszaru dysku
na sektory,
• nadanie im odpowiednich oznaczeń,
• utworzenie systemu 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. //