System plików. Implementacja systemu plików. I. Interfejs systemu plików.



Podobne dokumenty
ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

I. Interfejs systemu plików. Implementacja systemu plików.

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

System plików warstwa logiczna

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

1. Pliki i ich organizacja

SYSTEMY OPERACYJNE WYKLAD 5 - zarządzanie pamięcią pomocniczą

System plików. Warstwowy model systemu plików

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

System plików przykłady. implementacji

Działanie systemu operacyjnego

System plików przykłady implementacji

dr inż. Jarosław Forenc

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Zarządzanie pamięcią operacyjną

System plików. - warstwa logiczna. - warstwa fizyczna. - przykłady implementacji. Systemy operacyjne Wykład 6 1

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Działanie systemu operacyjnego

Podstawowe wiadomości o systemach plików.

Pliki. Operacje na plikach w Pascalu

Architektura systemu komputerowego

System plików. System plików. Operacje plikowe. Inne operacje. Typy plików. Typy dostępu do plików

Sektor. Systemy Operacyjne

System plików. Definicje:

System plików warstwa fizyczna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

System plików. Atrybuty pliku. Typy plików. Pojęcie pliku (ang. file) Zadania systemu operacyjnego. Struktura pliku. Dariusz Wawrzyniak 1

System plików. Systemy operacyjne System plików 1. Pojęcie pliku (ang. file)

System plików Linuksa

UNIX SYSTEM PLIKÓW. UNIX System plików

PAMIĘĆ OPERACYJNA...107

Zarządzanie pamięcią w systemie operacyjnym

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Od programu źródłowego do procesu

Budowa systemów komputerowych

Systemy operacyjne System plików

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

16MB - 2GB 2MB - 128MB

Celem wykładu jest prezentacja różnych podejść do implementacji systemu plików. Podejścia opierają się na założeniu, że urządzeniem składowania

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Zarządzanie pamięcią operacyjną

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

Programowanie współbieżne Wykład 2. Iwona Kochańska

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Informatyka. informatyka i nauki komputerowe (computer science)

Systemy plików FAT, FAT32, NTFS

Wykład PASCAL - Pliki tekstowe

Struktura dysku. Dyski podstawowe i dynamiczne

Sposoby zwiększania efektywności systemu Windows

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Wprowadzenie do systemów operacyjnych

Memeo Instant Backup Podręcznik Szybkiego Startu

System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

Zaawansowane funkcje systemów plików. Ewa Przybyłowicz

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Podstawy programowania skrót z wykładów:

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

sprowadza się od razu kilka stron!

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Tworzenie partycji i dysków logicznych

LEKCJA TEMAT: Zasada działania komputera.

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Architektura komputerów

1. Podstawy...P Polecenia podstawowe...p... 18

1 Instalowanie i uaktualnianie serwera SQL Server

Mikroprocesor Operacje wejścia / wyjścia

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

dr inż. Jarosław Forenc

Technologia informacyjna. Urządzenia techniki komputerowej

Komputer i urządzenia z nim współpracujące.

MANAGER 2010 PROFESSIONALP VS. VIRTUALIZATION WIRTUALIZACJA OBSŁUGIWANE ANAGER 2010 C MANAGER 2010 CORPORATE: Funkcja. Korzyści.

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Struktura systemów komputerowych

Warstwy systemu Windows 2000


wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

System plików warstwa logiczna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

ZADANIE nr 4 Sprawdzian z informatyki

Schematy zarzadzania pamięcia

KOMPONENTY SYSTEMÓW OPERACYJNYCH

Przykładowe zagadnienia na sprawdzian z wiedzy ogólnej. Linux to nazwa: A. Programu biurowego. B. Systemu operacyjnego. C. Przeglądarki internetowej.

Wykład 7. Zarządzanie pamięcią

Administracja systemem Linux

ARCHITEKTURA PROCESORA,

Algorytm. a programowanie -

Struktury systemów operacyjnych

Zarządzanie wolną przestrzenią

HARD DISK MANAGER PORÓWNANIE EDYCJI

SPIS TREŚCI: KARTY GRAFICZNE... 15

Architektura komputerów

Spis treści. Podstawy posługiwania się komputerem

System komputerowy. System komputerowy

Transkrypt:

Wiesław Płaczek Systemy Operacyjne: Wykład 8 1 System plików I. Interfejs systemu plików. Pojęcie pliku. Metody dostępu. Struktura katalogowa. Montowanie systemu plików. Dzielenie plików. Ochrona. II. Implementacja systemu plików. Budowa systemu plików. Implementacja systemu plików. Implementacja katalogu. Metody przydziału miejsca na dysku. Zarządzanie wolną przestrzenią. Efektywność i wydajność. Rekonstrukcja. System plików ze strukturą dziennika.

Pojęcie pliku Plik (file) jest logiczną jednostką magazynowania informacji w pamięci pomocniczej (magnetyczne dyski i taśmy, dyski optyczne). Plik jest ciągiem bitów, bajtów, wierszy lub rekordów, których znaczenie określa twórca pliku i jego użytkownik. W pliku można przechowywać różnego rodzaju informacje: programy źródłowe, programy wynikowe, programy wykonywalne, dane liczbowe, teksty, listy płac, obrazy grafiki komputerowej, nagrania dźwiękowe itd. Za pomocą systemu operacyjnego pliki odwzorowywane są na fizycznych urządzeniach pamięci, które charakteryzują się nieulotnością (nonvolatile devices). System plików składa się z dwu lub trzech części: Zbiór plików; Struktura katalogów do organizowania i udostępniania informacji o wszystkich plikach w systemie; W niektórych systemach występują ponadto partycje (strefy) (partitions), służące do wyodrębniania fizycznie lub logicznie wielkich zbiorów katalogów. Wiesław Płaczek Systemy Operacyjne: Wykład 8 2

Wiesław Płaczek Systemy Operacyjne: Wykład 8 3 Atrybuty pliku Nazwa symboliczna nazwa pliku jest jedyną informacją przechowywaną w postaci czytelnej dla człowieka (niektóre systemy rozróżniają wielkie i małe litery, inne zaś nie). Identyfikator pole o niepowtarzalnej wartości, zwykle liczbowej; wyodrębnia plik w całym systemie (jest to nazwa pliku w postaci nieczytelnej dla człowieka). Typ informacja potrzebna w systemach, w których rozróżnia się typy plików. Lokacja wskaźnik do urządzenia i położenia pliku na tym urządzeniu. Rozmiar atrybut zawierający bieżący rozmiar pliku (w bajtach, słowach lub blokach); może też zawierać maksymalny dopuszczalny rozmiar pliku. Ochrona informacje kontroli dostępu, służące do sprawdzania, kto może plik czytać, zapisywać, wykonywać itd. Czas, data i identyfikator użytkownika dane o czasie utworzenia pliku, ostatniej modyfikacji, ostatnim użyciu itp. Informacje o wszystkich plikach są przechowywane w strukturze katalogowej, która również rezyduje w pamięci pomocniczej.

Operacje plikowe Tworzenie pliku (create) niezbędne dwa kroki: (1) znalezienie miejsca na plik oraz (2) utworzenie wpisu pliku w katalogu (nazwa pliku i informacja o jego położeniu w systemie plików). Zapisywanie pliku (write) wywołanie odpowiedniej funkcji systemowej i podanie jej nazwy pliku oraz informacji, która ma być zapisana; system musi przechowywać wskaźnik pisania określający miejsce pliku, do którego będzie się odnosić kolejna operacja pisania (musi być uaktualniany podczas każdego pisania). Czytanie pliku (read) wywołanie funkcji systemowej, której podaje się nazwę pliku oraz miejsce (w pamięci operacyjnej), gdzie należy umieścić następny blok pliku; potrzebny jest wskaźnik czytania. Niektóre systemy utrzymują tylko jeden wskaźnik bieżącego położenia w pliku (current-file-position) używany zarówno do czytania, jak i pisania (oszczędność miejsca, uproszczenie systemu). Zmiana pozycji w pliku (repositioning) lub przemieszczenie w pliku (seek) nadanie określonej wartości wskaźnikowi bieżącego położenia w pliku. Usuwanie pliku (deleting) zwolnienie całej przestrzeni zajmowanej przez plik i likwidacja danego wpisu katalogowego. Skracanie pliku (truncating) ponowne ustalenie zerowej długości pliku przy niezmienionych pozostałych atrybutach. Mogą też istnieć inne operacje, jak: dopisywanie (appending) na końcu pliku, przemianowywanie (renaming) istniejącego pliku itd. Wiesław Płaczek Systemy Operacyjne: Wykład 8 4

Tablica otwartych plików Większość operacji plikowych zawiera przeszukiwanie katalogu. Aby uniknąć ciągłego przeszukiwania, wiele systemów otwiera (open) plik przy pierwszym jego użyciu oraz przechowuje tablicę otwartych plików, zawierającą informację o wszystkich otwartych plikach; przy operacjach plikowych używa się indeksu tej tablicy (nie trzeba przeszukiwać). Kiedy plik przestaje być potrzebny, zostaje przez proces zamknięty (close), a system operacyjny usuwa jego wpis z tablicy otwartych plików. W systemach wielodostępnych (np. UNIX) istnieją na ogół dwa poziomy tablic: Procesowa tablica otwartych plików dane o plikach danego procesu. Ogólnosystemowa tablica otwartych plików dane o wszystkich otwartych plikach w systemie: położenie pliku na dysku, daty dostępu, rozmiar pliku, licznik otwarć (open count) pokazujący w ilu procesach plik został otwarty. Każdy wpis w tablicy procesowej wskazuje na tablicę ogólnosystemową. Niektóre systemy umożliwiają ponadto: Blokowanie (locking) części otwartego pliku umożliwia współużytkowanie fragmentów pliku przez kilka procesów (np. funkcje fcntl i lockf w systemie UNIX). Odwzorowywanie pliku w pamięci (memory mapping) logiczne przyporządkowanie części wirtualnej przestrzeni adresowej do danej sekcji pliku (np. funkcja mmap w systemie UNIX). Wiesław Płaczek Systemy Operacyjne: Wykład 8 5

Wiesław Płaczek Systemy Operacyjne: Wykład 8 6 Elementy związane z otwartym plikiem Wskaźnik plikowy wskaźnik bieżącej pozycji w pliku (inny dla każdego procesu działającego na pliku); utrzymywany w systemach, w których funkcje czytania i pisania plikowego nie zawierają informacji o odległości w pliku. Licznik otwarć pliku służy do nadzorowania liczby otwarć i zamknięć pliku; staje się równy zeru po ostatnim zamknięciu pliku, wtedy system może usunąć jego wpis w tablicy otwartych plików. Położenie (lokacja) plik na dysku informacje potrzebne do zlokalizowania pliku na dysku; przechowywane w pamięci operacyjnej w celu unikania konieczności wczytywania ich z dysku podczas każdej operacji plikowej. Prawa dostępu informacja o trybie dostępu, w którym proces otworzył plik; przechowywana w tablicy procesowej, dzięki czemu system operacyjny może zezwolić lub nie na następne operacje wejścia-wyjścia na pliku.

Typ pliku Wykonywalny Wynikowy Kod źródłowy Wsadowy obj, o Typy plików Rozszerzenie exe, com, bin, x lub brak rozszerzenia c, c++, cpp, cxx, java, pas, f, asm, a bat, sh, csh Funkcja Gotowy do wykonania program w języku maszynowym Plik skompilowany, w języku maszynowym, bez konsolidacji Kod źródłowy wyrażony w różnych językach Polecenie dla interpretera poleceń Tekstowy Plik edytora tekstu Biblioteka Druk lub obraz Archiwalny Multimedialny txt, doc doc, rtf, wp, tex lib, a, so dvi, ps, pdf, gif, jpeg a, arc, zip, tar mpeg, mov, rm Dane i dokumenty tekstowe Formaty plików edytorów tekstu Biblioteki podprogramów Plik binarny lub ASCII w formacie do drukowania lub oglądania Archiwum plików Plik binarny zawierający informację audio lub audio-wideo Wiesław Płaczek Systemy Operacyjne: Wykład 8 7

Struktura pliku Minimalna struktura: plik jako ciąg bajtów lub słów (np. UNIX, MS-DOS); każdy program użytkowy musi posiadać własny kod interpretujący plik wejściowy jako odpowiednią strukturę. Każdy system operacyjny musi realizować przynajmniej jedną struktur: plik wykonywalny w celu ładowania i wykonywania programów. Niektóre systemy realizują pewien zbiór struktur plików zaopatrzonych w zestawy specjalnych operacji do manipulowania takimi plikami (np. DEC VMS, Macintosh OS). Wewnętrzna struktura pliku: Blok (rekord fizyczny) jednostka fizycznej pamięci dyskowej; wszystkie bloki są tego samego rozmiaru. Rekord logiczny logiczna jednostka informacji; rekordy logiczne mogą być różnej długości. Często stosuje się upakowywanie (packing) pewnej liczby rekordów logicznych w fizycznych blokach, np. UNIX: rekord logiczny ma długość 1B, a blok fizyczny zwykle 512B. Przydział przestrzeni dyskowej w postaci bloków prowadzi do fragmentacji wewnętrznej. Wiesław Płaczek Systemy Operacyjne: Wykład 8 8

Metody dostępu Dostęp sekwencyjny (sequential access) informacje w pliku są przetwarzane sekwencyjnie, jeden rekord za drugim; najpowszechniejszy rodzaj dostępu (np. edytory, kompilatory). Początek Pozycja bieżąca Koniec Przewiń Czytaj lub pisz Dostęp bezpośredni (direct access) plik składa się z rekordów logicznych o stałej długości, które mogą być przetwarzane bez jakiegokolwiek porządku (tzn. bezpośrednio): Operacje czytania i pisania typu: czytaj n; pisz n; gdzie n jest numerem bloku zwykle tzw. numerem względnym bloku (relative block number), tzn. indeksem względem początku pliku. Przy pomocy dostępu bezpośredniego można łatwo symulować dostęp sekwencyjny; symulacja w drugą stronę jest bardzo nieefektywna. Dostęp indeksowy (indexed access) z plikiem związany jest indeks zawierający wskaźniki do bloków pliku; dla dużych plików wprowadza się podwójne indeksowanie, tzn. pierwotny indeks zawiera wskaźniki do wtórnego indeksu. Wiesław Płaczek Systemy Operacyjne: Wykład 8 9

Struktura katalogowa Struktura katalogowa Duże zasoby dyskowe często dzieli się na partycje (strefy) (partition), w niektórych systemach zwane minidyskami lub wolumenami (volumes). Jeden dysk może być podzielony na kilka partycji, ale też kilka dysków może tworzyć jedną partycję. Katalog urządzenia (device directory) zawiera informacje o plikach w danej partycji: nazwy, położenia, rozmiary, typy. Katalog można uważać za tablicę symboli tłumaczącą nazwy plików na ich wpisy katalogowe. Operacje na katalogu: Odnajdywanie pliku znajdowanie plików według ich nazw. Tworzenie pliku tworzenie plików i dołączanie ich do katalogu. Usuwanie pliku usuwanie plików z katalogu. Wyprowadzanie katalogu sporządzanie wykazu plików w katalogu. Przemianowywanie pliku zmiana nazwy pliku lub jego miejsca w strukturze katalogowej. Obchód systemu plików uzyskiwanie dostępu do każdego pliku i katalogu w obrębie struktury katalogowej, regularne zapamiętywanie zawartości i struktury całego systemu plików (kopie zapasowe). Wiesław Płaczek Systemy Operacyjne: Wykład 8 10

Wiesław Płaczek Systemy Operacyjne: Wykład 8 11 Katalogi jedno- i dwupoziomowe Katalog jednopoziomowy jeden katalog dla wszystkich plików. Katalog kat dok a dane test poczta hex inne Pliki Katalog dwupoziomowy oddzielny katalog dla każdego użytkownika. Główny katalog plików Katalog plików użytkownika Użytkownik 1 Użytkownik 2 Użytkownik 3 Użytkownik 4 kat dok a test a dane a test x dane a Możliwe te same nazwy plików dla różnych użytkowników. Nazwa użytkownika i nazwa pliku definiuje nazwę ścieżki (path name). Brak możliwości grupowania plików, użytkowników itd. Master file directory MFD User file directory UFD

Wiesław Płaczek Systemy Operacyjne: Wykład 8 12 Katalogi o strukturach drzewiastych Korzeń teksty binaria programy start poczta spec klucz rachunki wykazy zmiany p e poczta prog kopie druki eksport zmiany listy klucz wykazy rachunki listy wyniki teksty wszystko pierwszy ostatni

Własności katalogów drzewiastych Katalog zawiera zbiór plików lub podkatalogów. Jeden bit w każdym wpisie katalogowym określa, czy wpis dotyczy pliku (0), czy podkatalogu (1). Do tworzenia, usuwania, kopiowania, przenoszenia, zmiany katalogów służą specjalne funkcje systemowe. Podczas normalnej pracy każdy użytkownik ma do dyspozycji katalog bieżący (current directory). Nazwy ścieżek mogą być: Bezwzględne biegnie od korzenia aż do danego pliku (podkatalogu). Względne od bieżącego (lub domowego) katalogu do pliku (podkatalogu). Użytkownik ma możliwość tworzenia własnych podkatalogów, a tym samym kształtowania struktury własnych plików. Niektóre systemy pozwalają usuwać tylko puste katalogi (np. MS- DOS), a inne również katalogi z zawartością (np. UNIX: rm). Użytkownicy mogą mieć dostęp do plików innych użytkowników. Niektóre systemy pozwalają użytkownikom definiować własne ścieżki przeszukiwań (np. UNIX: zmienna $PATH). Wiesław Płaczek Systemy Operacyjne: Wykład 8 13

Wiesław Płaczek Systemy Operacyjne: Wykład 8 14 Acykliczne grafy katalogów Korzeń słownik wymowa listy wszystko w licznik licznik wyrazy listy listy inne w7 Graf acykliczny (acyclic graph) umożliwia dzielenie plików i katalogów. Do dzielonych plików czy katalogów mogą odnosić się z różnych miejsc różne nazwy (aliasy). Powszechną metodą implementacji dzielenia plików/katalogów są tzw. dowiązania (links), np. dowiązania symboliczne (symbolic links) w systemie UNIX. Problem: Jak pogodzić istnienie dowiązań z usuwaniem plików? UNIX: Dowiązania symboliczne pozostają po usunięciu pliku, ale nie mają żadnego efektu; użytkownik musi sam je usuwać. Można wprowadzić licznik dowiązań do pliku plik zostaje usunięty, gdy licznik dowiązań wyniesie zero, np. twarde dowiązania (hard links) w systemie UNIX.

Wiesław Płaczek Systemy Operacyjne: Wykład 8 15 Graf ogólny katalogów Korzeń rachunki ala ala tc jan książka poczta pisma książka poczta rachunki inne inne wykazy dane Dodanie dowiązań do struktury drzewiastej katalogu przekształca ją w ogólną strukturę grafu. W strukturze mogą pojawiać się cykle niebezpieczeństwo nieskończonych pętli przeszukiwania katalogów! Potrzebne staje się odśmiecanie (garbage collection), tzn. usuwanie cykli oderwanych od reszty struktury katalogów kosztowny proces! Można użyć algorytmu wykrywania cykli w grafach i nie pozwalać na tworzenie dowiązań prowadzących do takich cykli wymaga to jednak sporych nakładów obliczeniowych! Drzewiaste struktury katalogów są powszechniej stosowane.

Montowanie systemu plików Zanim system plików stanie się dostępny dla procesów musi zostać zamontowany (mounted). Procedura montażu: Systemowi operacyjnemu podaje się nazwę urządzenia oraz punkt montażu (mount point), tzn. miejsce w strukturze plików, do którego należy przyłączyć system plików; na ogół jest to pusty katalog. System operacyjny sprawdza, czy urządzenie zawiera właściwy system plików (przy pomocy modułu obsługi urządzenia). Na koniec system operacyjny zaznacza w swojej strukturze katalogowej zamontowanie pliku w określonym punkcie montażu. Przykłady: Komputery Macintosh system operacyjny automatycznie poszukuje systemu plików na dołączonym urządzeniu i w przypadku znalezienia takowego wykonuje automatyczne montowanie, umieszczając na ekranie odpowiednią ikonę. Microsoft Windows 95/98/NT/2000/XP dwupoziomowa struktura katalogów: urządzenia i partycje mają przydzielone oznaczenia literowe, tzw. literę napędu (drive letter) ścieżka: litera-napędu:\ścieżka\do\pliku; podczas rozruchu automatycznie wykrywane są wszystkie urządzenia i montowane są zlokalizowane na nich systemy plików (również przy podłączaniu urządzeń podczas działania SO). System UNIX polecenia montowania są jawne; plik konfiguracji systemu (fstab) zawiera wykaz urządzeń i punktów montażu do automatycznego montowania przy rozruchu, ale można też wykonywać ręczne inne montowania. Wiesław Płaczek Systemy Operacyjne: Wykład 8 16

Dzielenie plików W systemach umożliwiających użytkownikom wspólne korzystanie z plików konieczne jest kontrolowanie dostępu i ochrona system operacyjny musi pośredniczyć w dzieleniu plików. W większości systemów przyjęto koncepcję właściciela (użytkownika) i grupy pliku lub katalogu. Właścicielem jest użytkownik, który może zmienić atrybuty, zezwalać na dostęp i ma największą kontrolę nad plikiem lub katalogiem. Grupowy atrybut pliku służy do definiowania podzbioru użytkowników, którzy mogą dzielić dostęp do pliku. Atrybuty właściciela realizowane są przez zarządzanie wykazem nazw użytkowników i przynależnych im identyfikatorów użytkowników (user identifiers, UIDs) są one niepowtarzalne dla każdego użytkownika. Atrybuty grupowe realizuje się przy pomocy identyfikatorów grup (group identifiers, GIDs); użytkownik może należeć do jednej lub więcej grup. Identyfikatory użytkownika i jego grup są dołączane do wszystkich wątków i procesów użytkownika kiedy proces lub wątek zamawia operację na pliku, wtedy system operacyjny porównuje odpowiednie identyfikatory i związane z nimi prawa dostępu do pliku, zezwalając na daną operację lub nie. Wraz z rozwojem sieci komputerowych problem dzielenia plików stał się bardziej złożony! (Zagadnienia te będą omawiane na wykładzie nt. sieci komputerowych.) Wiesław Płaczek Systemy Operacyjne: Wykład 8 17

Semantyka spójności Semantyka spójności (consistency semantics) właściwość systemu określająca semantykę jednoczesnego dostępu do pliku dzielonego przez wielu użytkowników. Semantyka spójności systemu UNIX: Wynik operacji pisania wykonanej przez jednego użytkownika na otwartym pliku jest natychmiast widoczny przez innych użytkowników, którzy mają otwarty ten plik. Istnieje tryb dzielenia, w którym użytkownicy wspólnie korzystają ze wskaźnika bieżącego położenia w pliku przesuwanie wskaźnika przez dowolnego użytkownika jest odbierane przez pozostałych użytkowników. Dostęp do pliku dzielonego odbywa się na zasadzie wyłączności. Semantyka sesji (np. rozproszony system plików Andrew, tzw. AFS): Wynik operacji pisania wykonanej przez dowolnego użytkownika na otwartym pliku nie jest natychmiast widoczny dla innych użytkowników, którzy mają otwarty równocześnie ten plik. Zmiany wprowadzone do pliku będą widoczne po jego zamknięciu dopiero w następnych sesjach. Semantyka stałych plików dzielonych (immutable shared files): Z chwilą gdy twórca pliku zadeklaruje go jako dzielony, nie wolno go modyfikować (dopuszcza się tylko czytanie) stosowana w systemach rozproszonych. Wiesław Płaczek Systemy Operacyjne: Wykład 8 18

Ochrona Ochrona (protection) systemu plików przed niewłaściwym dostępem jest jednym z podstawowych zagadnień związanych z przechowywaniem informacji w systemie komputerowym. Kontroli mogą podlegać następujące operacje: Czytanie czytanie z pliku. Pisanie pisanie do pliku lub zapisywanie go na nowo. Wykonywanie załadowanie pliku do pamięci i wykonanie go. Dopisywanie zapisywanie danych na końcu pliku. Usuwanie usuwanie pliku i zwalnianie jego obszaru dyskowego. Opisywanie wyprowadzenie nazwy i atrybutów pliku. Ochronę innych operacji (wyższego poziomu) można zaimplementować za pośrednictwem powyższych operacji. Kontrolowanie dostępu: Najogólniejsza metoda skojarzenie z każdym plikiem i katalogiem listy kontroli dostępów (ACL) zawierającego nazwy użytkowników i dozwolone dla nich rodzaje dostępu. Wysokie koszty utrzymywania i uaktualniania. Efektywniejsza metoda skojarzenie z każdym plikiem trzech klas użytkowników: właściciel, grupa, wszeświat i przypisywanie praw dostępu (np. czytania, pisania, wykonywania) do każdej z klas (np. system UNIX). Wiesław Płaczek Systemy Operacyjne: Wykład 8 19

Budowa systemu plików Dyski (disks) stanowią podstawową część pamięci pomocniczej, w której utrzymywany jest system plików (file system). System plików ma na ogół strukturę warstwową każda warstwa korzysta z własności niższych warstw do tworzenia nowych właściwości, używanych przez warstwy wyższe. Warstwa najniższa: sterowanie wejściem-wyjściem (I/O control) moduły obsługi urządzeń i procedur przerwań związanych z przesyłaniem informacji między pamięcią operacyjną a systemem dyskowym. Podstawowy system plików (basic file system) wydaje ogólne instrukcje odpowiedniemu modułowi obsługi urządzenia w celu czytania i pisania poszczególnych bloków na dysku (każdy blok ma swój adres liczbowy). Moduł organizacji pliku (file-organization module) w oparciu o zastosowany rodzaj przydziału miejsca dla pliku i położenia pliku, tłumaczy adresy logiczne bloków na adresy bloków fizycznych do przesłania przez podstawowy system plików; zawiera również zarządcę wolnych obszarów Logiczny system plików (logical file system) używa struktury katalogowej, aby w oparciu o symboliczną nazwę pliku dostarczać informacji potrzebnych modułowi organizacji pliku; odpowiada także za ochronę i bezpieczeństwo. Wiesław Płaczek Systemy Operacyjne: Wykład 8 20

Warstwowy system plików Aby utworzyć nowy plik, program użytkowy Programy użytkowe Logiczny system plików Moduł organizacji pliku Podstawowy system plików Sterowanie wejściem-wyjściem Urządzenia wywołuje logiczny system plików. Logiczny system plików czyta do pamięci odpowiedni katalog, uaktualnia go dodając nowy wpis i zapisuje ponownie na dysku (niektóre systemy, np. UNIX, traktują katalogi tak samo jak pliki, inne, jak np. Windows XP, jako odrębne jednostki). Aby udostępnić plik operacjom WE/WY należy go otworzyć. Informacje o otwartych plikach są przechowywane w tablicy otwartych plików, rezydującej w pamięci operacyjnej. Do programu użytkownika przekazuje się indeks tej tablicy, zwany deskryptorem pliku (UNIX), uchwytem plikowym (file handle) (Windows XP) lub blokiem kontrolnym pliku (file control block FCB). Wszystkie dalsze odwołania do pliku odbywają się za pomocą tego indeksu, a nie nazwy symbolicznej. Po zamknięciu pliku przez wszystkich korzystających z niego użytkowników uaktualnione informacje o nim są z powrotem kopiowane do dyskowej struktury katalogowej. Wiesław Płaczek Systemy Operacyjne: Wykład 8 21

Implementacja systemu plików Implementacja systemu plików Do realizacji systemu plików używanych jest kilka struktur, które przechowywane są w pamięci dyskowej i operacyjnej. Struktury utrzymywane na dysku: Blok sterujący rozruchem (boot control block) zawiera informacje potrzebne do rozruchu systemu operacyjnego z danej partycji. Blok sterujący partycji (partition control block) zawiera szczegóły dotyczące partycji: liczba i rozmiar bloków, wskaźniki do bloków FCB itd. Struktura katalogowa używana do organizowania plików. Blok kontrolny pliku zawiera szczegóły dotyczące pliku; w systemie UNIX nazywany jest i-węzłem (inode). Struktury przechowywane w pamięci operacyjnej (podręcznej): Tablica partycji zawiera informacje o zamontowanych partycjach. Struktura katalogowa zawierająca informacje odnoszące się do ostatnio odwiedzanych katalogów. Ogólnosystemowa tablica otwartych plików zawiera kopię bloku FCB dla każdego otwartego pliku i inne informacje. Procesowa tablica otwartych plików zawiera wskaźnik do odpowiedniego wpisu w ogólnosystemowej tablicy otwartych plików i inne informacje. Wiesław Płaczek Systemy Operacyjne: Wykład 8 22

Wirtualny system plików (Virtual File System) Interfejs systemu plików (open, read, write, close) Interfejs wirtualnego systemu systemu plików (VFS) Lokalny system plików typu 1 Lokalny system plików typu 2 Zdalny system plików typu 1 Dysk Dysk Sieć Interfejs wirtualnego systemu plików (VFS) oddziela ogólne operacje plikowe od ich implementacji (może współistnieć kilka implementacji interfejsu VFS). VFS opiera się na strukturze reprezentacji pliku zwanej v-węzłem (vnode), zawierającej liczbowy oznacznik pliku, jednoznaczny w całej sieci. Wiesław Płaczek Systemy Operacyjne: Wykład 8 23

Implementacja katalogu Wybór algorytmów przydzielania miejsca dla katalogu i zarządzania katalogiem ma istotny wpływ na wydajność, działanie i niezawodność systemu plików. Lista liniowa: Liniowa lista nazw plików ze wskaźnikami do bloków danych. W celu znalezienia konkretnej pozycji na liście wpisów katalogowych stosuje się przeszukiwanie liniowe. Metoda łatwa do zaprogramowania. Liniowe przeszukiwanie jest zbyt wolne! Zwykle stosuje się pamięć podręczną do przechowywania ostatnio używanych katalogów; czasem stosuje się listę uporządkowaną i przeszukiwanie binarne lub struktury drzewiaste. Tablica z haszowaniem (hash table): Wpisy katalogowe przechowuje się na liście liniowej, ale stosuje się haszowaną strukturę danych. Wartość obliczona na podstawie nazwy pliku jest odnoszona do tablicy haszowanej, z której pobiera się wskaźnik do nazwy pliku na liście liniowej. Mniejszy czas przeszukiwania katalogu, proste wstawianie i usuwanie wpisu. Stały rozmiar tablicy z haszowaniem oraz problem sytuacji kolizyjnych. Wiesław Płaczek Systemy Operacyjne: Wykład 8 24

Metody przydziału miejsca na dysku Podstawowa kwestia: Dysk powinien być zagospodarowany efektywnie, a dostęp do plików powinien być szybki. Główne metody przydziału: ciągła, listowa i indeksowa. Przydział ciągły (contiguous allocation) Każdy plik musi zajmować ciąg kolejnych bloków na dysku. Wpis katalogowy pliku zawiera adres bloku początkowego i długość obszaru przydzielonego danemu plikowi. Dostęp do pliku jest łatwy; możliwy dostęp sekwencyjny jak i bezpośredni (adres bloku i w pliku o bloku początkowym b: b + i). Minimalny ruch głowicy dysku w obrębie danego pliku. Problem przydziału miejsca dla nowego pliku dynamiczny przydział pamięci (jak dla pamięci operacyjnej): najpowszechniej stosowane strategie pierwszego lub najlepszego dopasowania. Występuje fragmentacja zewnętrzna. Plik nie może rosnąć albo trzeba z góry określić jego maksymalny rozmiar (na ogół trudne!) fragmentacja wewnętrzna. Wiesław Płaczek Systemy Operacyjne: Wykład 8 25

Wiesław Płaczek Systemy Operacyjne: Wykład 8 26 Ciągły przydział miejsca na dysku licznik 0 1 2 3 f 4 5 6 7 8 9 10 11 tr 12 13 14 15 16 17 18 19 poczta 20 21 22 23 Plik Katalog Początek Długość licznik 0 2 tr 14 3 poczta 19 6 lista 28 4 f 6 2 24 25 26 27 lista 28 29 30 31

Przydział listowy W przydziale listowym (linked allocation) każdy plik jest listą powiązanych ze sobą bloków dyskowych; bloki te mogą znajdować się gdziekolwiek na dysku. Katalog zawiera wskaźnik do pierwszego i ostatniego bloku pliku. Każdy blok zawiera wskaźnik do następnego bloku. Łatwy i efektywny dostęp sekwencyjny do pliku (np. przy pisaniu znajduje się kolejne wolne bloki i tworzy odpowiednie dowiązania). Brak fragmentacji zewnętrznej nie ma potrzeby upakowywania. Plik może rosnąć dopóki są wolne bloki nie trzeba deklarować rozmiaru pliku. Realizacja dostępu bezpośredniego jest niewydajna (dostęp do bloku i wymaga przeszukiwania listy od początku pliku). Wskaźniki pochłaniają część przestrzeni dyskowej: W celu zaoszczędzenia miejsca czasami bloki łączy się po kilka w tzw. klastry zwiększa to jednak fragmentację wewnętrzną. Gorsza niezawodność zagubienie lub uszkodzenie wskaźnika w którymś bloku może spowodować utratę fragmentu pliku. Wiesław Płaczek Systemy Operacyjne: Wykład 8 27

Wiesław Płaczek Systemy Operacyjne: Wykład 8 28 Listowy przydział miejsca na dysku 0 1 10 2 3 4 5 6 7 8 9 16 10 25 11 Katalog Plik Początek Koniec test.c 9 25 12 13 14 15 16 1 17 18 19 20 21 22 23 24 25 1 26 27 28 29 30 31

Tablica przydziału plików Odmianą przydziału listowego jest użycie tablicy przydziału (alokacji) plików (file allocation table FAT), np. w systemach MS-DOS i OS/2. Początkowa część każdej partycji dysku jest zarezerwowana na tablicę FAT. Wpis katalogowy zawiera numer pierwszego bloku pliku. Tablica FAT ma po jednej pozycji na każdy blok dyskowy, jest indeksowana numerami bloków i zawiera numer następnego bloku w pliku; wolne bloki oznaczone są zerem. Może powodować znaczny ruch głowic dyskowych (między FATem a blokami). Wpis katalogowy test.c... 217 Nazwa Blok początkowy 0 217 618 339 Koniec pliku 618 339 Numery bloków dyskowych 1 Tablica FAT Wiesław Płaczek Systemy Operacyjne: Wykład 8 29

Przydział indeksowy W przydziale indeksowym (indexed allocation) każdy plik ma własny blok indeksowy, będący tablicą adresów bloków dyskowych. Pozycja o numerze i w bloku indeksowym wskazuje na blok i pliku. Katalog zawiera adres bloku indeksowego. Umożliwia dostęp bezpośredni (bez fragmentacji zewnętrznej). Marnowanie przestrzeni dyskowej na bloki indeksowe, szczególnie dla małych plików (potrzebny dodatkowy blok dyskowy na indeks). Ogólna struktura bloków indeksowych (dla dużych plików): Schemat listowy: Bloki dyskowe zawierające indeksy połączone w listę, tzn. ostatnia pozycja bloku zawiera wskaźnik do kolejnego bloku z indeksami itd. Indeks wielopoziomowy: Blok indeksowy pierwszego poziomu zawiera wskaźniki do zbioru bloków indeksowych drugiego poziomu itd., a dopiero zbiór bloków ostatniego poziomu zawiera wskaźniki do bloków plików. Schemat kombinowany np. UNIX BSD: 15 wskaźników bloku indeksowego przechowywane w i-węźle (inode) pliku, z czego pierwszych 12 wskazuje na bloki bezpośrednie (tzn. bloki z danymi pliku), 13-ty jest adresem bloku jednopośredniego zawierającego adresy bloków z danymi, 14-ty bloku dwupośredniego, a 15-ty bloku trójpośredniego. Wiesław Płaczek Systemy Operacyjne: Wykład 8 30

Wiesław Płaczek Systemy Operacyjne: Wykład 8 31 Indeksowy przydział miejsca na dysku 0 1 2 3 4 5 6 7 Katalog Plik Blok indeksowy test.c 19 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 19 9 16 1 10 25 1 1

Zarządzanie wolną przestrzenią Obszar dysku jest ograniczony, zatem należy dbać o zagospodarowywanie dla nowych plików przestrzeni po plikach usuniętych. System utrzymuje listę wolnych obszarów (free-space list), na której odnotowane są wszystkie wolne bloki dyskowe. Wektor bitowy (bit vector): Każdy blok jest reprezentowany przez 1 bit: blok wolny bit ma wartość 1, blok zajęty bit = 0. Umożliwia proste i wydajne odnajdywanie wolnych bloków na dysku; często wspierane sprzętowo, np. procesory Intel od 80386 i Motorola od 68020 dysponują rozkazami przekazującymi pozycję pierwszego bitu o wartości 1. Mało wydajne dla dużych dysków, kiedy nie można przechowywać całego wektora bitowego w pamięci operacyjnej (czasem bloki łączy się wklastry). Lista powiązana: Powiązanie ze sobą wszystkich wolnych bloków (jak w przydziale listowym miejsca na dysku dla pliku) i przechowywanie wskaźnika do pierwszego wolnego bloku w specjalnym miejscu na dysku oraz podręcznie w pamięci. Mało wydajna aby przejrzeć listę trzeba odczytać każdy blok. Grupowanie: Powiązana lista bloków pierwszy zawiera n adresów bloków, z których n 1 bloków jest wolnych, a n-ty zawiera kolejnych n adresów bloków w tym samym schemacie. Zliczanie: Dla przylegających n wolnych bloków przechowuje się adres pierwszego wolnego bloku i liczbę n wolnych bloków następujących po sobie. Wiesław Płaczek Systemy Operacyjne: Wykład 8 32

Efektywność i wydajność Dyski są najwolniejszymi spośród podstawowych elementów komputera, dlatego bywają główną przeszkodą jego sprawnego działania. Efektywność (efficiency) zależy od: Algorytmów przydziału miejsca na dysku i algorytmów obsługiwania katalogów, np. w systemie UNIX bloki danych umieszcza się blisko bloku z i-węzłem, a bloki łączy się w klastry, co zwiększa szybkość dostępu. Typów danych przechowywanych we wpisie katalogowym pliku im więcej informacji o pliku znajduje się w takim wpisie i im częściej wymaga ona aktualizacji (jak np. data ostatniego dostępu), tym wolniejszy system; przy większym rozmiarze wskaźników do danych zwiększa się maksymalna długość pliku (np. dla adresu 32 bajtowego jest to 4 GB), ale potrzeba więcej przestrzeni dyskowej na przechowywanie wskaźników. Metody poprawiania wydajności (performance) systemu plików: Pamięć podręczna bloków dyskowych (disk cache) specjalne miejsce w pamięci operacyjnej do przechowywania często używanych bloków. Wczesne zwalnianie (free-behind) i czytanie z wyprzedzeniem (readahead) techniki do optymalizacji dostępu sekwencyjnego. Dyski wirtualne (RAM-dyski) część pamięci operacyjnej, na której wykonuje się operacje dyskowe (stosowane w komputerach PC). Wiesław Płaczek Systemy Operacyjne: Wykład 8 33

Różne lokalizacje dyskowej pamięci podręcznej RAM-dysk Bufor ścieżek Procesor Sterownik dysku Dysk Tablica otwartych plików Bufor bloków Pamięć operacyjna RAM-dysk jest w całości pod nadzorem użytkownika. Pamięć podręczna bloków dyskowych jest pod kontrolą systemu operacyjnego. Wiesław Płaczek Systemy Operacyjne: Wykład 8 34

Wiesław Płaczek Systemy Operacyjne: Wykład 8 35 Rekonstrukcja Ponieważ pliki i katalogi są przechowywane zarówno na dysku jak i w pamięci operacyjnej, należy zadbać o to by awaria systemu nie doprowadziła do utraty danych, czy ich niespójności. Sprawdzanie spójności: Informacje w dyskowej pamięci podręcznej są na ogół nowsze niż odpowiadające im informacje na dysku (dane na dysku zapisuje się zwykle z pewnym opóźnieniem). Awaria komputera może pozostawić system plików w stanie niespójnym bieżący stan niektórych plików będzie niezgodny z widniejącym w strukturze katalogowej. Program sprawdzania niespójności (consistency checker) porównuje dane w strukturze katalogowej z blokami na dysku i próbuje usunąć napotkane niezgodności. Składowanie (backup) i odtwarzanie (restoring): Aby nie utracić danych na skutek awarii dysku magnetycznego, można stosować systemowe programy do składowania informacji na innych urządzeniach, jak dyski elastyczne, taśmy magnetyczne lub dyski optyczne. Aby zminimalizować niezbędne kopiowanie, często tylko pierwszego dnia wykonuje się pełne składowanie (full backup), a w kolejnych dniach tzw. składowanie przyrostowe (incremental backup), tzn. kopiowanie tylko zmienionych plików. W celu zrekonstruowania utraconego pliku lub całego dysku można zastosować odtworzenie danych na podstawie danych zawartych w kopii zapasowej.

Systemy plików ze strukturą dziennika Dyskowe struktury danych (struktury katalogowe, wskaźniki wolnych bloków danych, wskaźniki wolnych bloków FCB itp.) mogą utracić spójność wskutek załamania systemu (np. awaria). Rozwiązanie tego problemu polega na uaktualnianiu metadanych systemu plików za pomocą technik odtwarzania opartych na dzienniku transakcyjne systemy plików ze strukturą dziennika (log-based transaction-oriented file systems), zwane też systemami plików z kronikowaniem (journaling file systems). Wszystkie zmiany metadanych zapisuje się po kolei w dzienniku (bufor cykliczny) każdy zestaw operacji jest transakcją. Z chwilą zapisania zmian do dziennika uważa się je za zatwierdzone i może nastąpić powrót z wywołania systemowego do procesu użytkownika. Tymczasem zarejestrowane wpisy są odtwarzane w rzeczywistych strukturach systemu. Po zakończeniu zmian uaktualniany jest wskaźnik pokazujący, które działania zostały zakończone, a które są jeszcze niekompletne. Po zakończeniu całej zatwierdzonej transakcji usuwa się ją z dziennika. Przykłady: Windows XP system NTFS, Linux system ext3fs (dziennikowe rozszerzenie systemu ext2fs), Veritas File System. Wiesław Płaczek Systemy Operacyjne: Wykład 8 36