Systemy operacyjne System plików Dr inż. Dariusz Caban mailto:dariusz.caban@pwr.wroc.pl tel.: (071)320-2823 Pamięci o bezpośrednim dostępie powierzchnia/głowica sektor cylinder/ścieżka Przykłady: HDD, FD, CD, PenDrive Zapis/odczyt pełnymi rekordami Adresacja (sektor,cylinder,powierzchnia) 1
Pliki Zbiór powiązanych ze sobą danych na dysku Atrybuty pliku Nazwa i rozszerzenie (jednoznaczne) Data utworzenia, dostępu, modyfikacji Wielkość i położenie na dysku Atrybuty własności i prawa dostępu Format zawartości Pliki tekstowe Pliki binarne (np. programy, obrazy) Pliki z rekordami stałej wielkości Pliki z rekordami zmiennej długości Metody dostępu do plików Odczyt / zapis / dopisywanie oraz mieszany odczyt/zapis Dostęp sekwencyjny Zapis i odczyt w ustalonej kolejności Licznik sekwencyjny wskazuje pozycję w pliku Dostęp do rekordu wymaga odczytania wszystkich rekordów poprzedzających W praktyce najczęściej stosowana metoda dostępu Dostęp bezpośredni (swobodny) Rekordy czytane/zapisywane w dowolnej kolejności Pliki mogą zawierać dziury, tzn. obszary nie zapisane i często nie przydzielone Typowo stosowany w bazach danych 2
Katalogi Katalog - spis plików w systemie plików (wszystkich lub wybranej grupy) Pliki ukryte - występują w katalogu, ale ich obecność nie jest ujawniana standardowymi komendami Pozycja katalogowa Opis położenia pliku na dysku Zawiera wartości atrybutów lub wskazania na nie Rekord stałej wielkości Katalog główny Nie ma nazwy Ma wydzielone miejsce na dysku Normalnie stałej wielkości Jednopoziomowa struktura katalogów Po jednym katalogu na partycję dysku (system plików) Hierarchiczna struktura katalogów Dwupoziomowa struktura katalogów Zachowany 1 katalog o stałym położeniu na dysku Komenda listująca pokazuje tylko pliki aktualnego użytkownika Wyróżniony identyfikator plików wspólnych Struktura hierarchiczna Jeden katalog główny (bez nazwy, stałej wielkości) Podkatalogi Pliki z rekordami stałej długości Rekord = pozycja katalogowa Muszą występować w innym katalogu Katalog nadrzędny 3
Przykład plików i katalogów Katalog główny Plik normalny Podkatalog Podkatalog Plik normalny Plik normalny Ścieżka dostępu Człony ścieżki od / do / Każdy określa podkatalog kolejnego poziomu Ścieżka bezwzględna Rozpoczyna się od katalogu głównego Pierwszy znak / lub \ /home/students/aktos Ścieżka względna Rozpoczyna się od katalogu bieżącego (roboczego). Pierwszy znak inny niż / lub \ Może wymagać wskazań na katalog nadrzędny Pozycja..../../home/students/aktos Ścieżka bezwzględna jednoznaczna 4
Ogólna struktura katalogów Nazwa 1 Podkat. Nazwa 1 Plik Nazwa 3 Dow. symboliczne Nazwa 2 Dowiązanie symboliczne (skrót) Pozycja zawiera ścieżkę do pliku Dowiązanie twarde Wskazuje na zawartość pliku Kasowanie pliku nie usuwa zawartości Dowiązania do katalogów niebezpieczne Bloki alokacji Linearyzacja przestrzeni adresowej (sektor, cylinder, powierzchnia) numer kolejne rekordy muszą być położone blisko numer = sektor + Lsekt (powierzchnia + Lpow cylinder) przeplot sektorów Jednostka przydziału miejsca na dysku Podstawowa jednostka przydziału pamięci - blok alokacji Typowo wielokrotność rekordu fizycznego Ograniczenie długości numeru (np. 16 bitów) 5
Wielkość bloku alokacji Wielkość systemu plików (dysku) wielkość SP wielkość 2długość numerów Ograniczenie wielkości przez podział dysku na dyski logiczne (partycje, systemy plików) Fragmentacja wewnętrzna straty będące konsekwencją przydziału miejsca porcjami stałej wielkości (blokami alokacji) 0,5 wielkość liczba plików, gdy pliki > nawet 90% dysku, gdy dużo małych plików Przykład fragmentacji wewnętrznej Przykładowy system plików = 256 MB Numeracja bloków 16-to bitowa Minimalna wielkość = 256 220 216 bajtów = 4 kb Przykładowo pliki: 1 kb, 6 kb, 5 kb 3 kb 2 kb 3 kb 6
Przydział ciągły miejsca na dysku Pliki zajmują zawsze kolejne bloki alokacji Położenie opisuje para <nr 1-go bloku, długość> Problem wyboru obszaru Pierwszy pasujący Najlepiej pasujący Najgorzej pasujący Fragmentacja zewnętrzna Problem predykcji wielkości pliku Fragmentacja zewnetrzna Plik 1 Plik 2 Plik 3 Plik 4 Plik 5... Kasowanie 2 i 4 Plik 1 Plik 3 Plik 5... Zapis nowego pliku k Plik 1 Plik k Plik 3 Plik 5... Zapis nowego pliku m Plik 1 Plik k Plik 3 Plik m Plik 5... Fragmentacja Plik 1 Plik k Plik 3 Plik m Plik 5... 7
Przydział listowy Obszary rozłączne, zaopatrzone w nagłówki Nagłówek obszaru zawiera długość i wskazanie następnego Eliminuje problem predykcji długości i ogranicza fragmentację zewnętrzną (eliminowałby, gdyby segmenty dowolnie małe) Plik opisany parą <adres 1-go obszaru, liczba bloków> Początek pliku segment 1 s. 2 s. 3 Przydział indeksowy Przydział indeksowy Plik opisany tablicą kolejnych przydzielonych Przydział z pośrednim indeksowaniem Mniejsza tablica indeksowa Dodatkowe operacje odczytu Indeks 1... Indeks k... Pośredni 1 Indeks p... k p 8
Informacja o wolnych blokach Mapa zajętości tworzona w RAM analiza położenia wszystkich plików w systemie operacja przyłączenia/otwarcia systemu plików brak operacji zamknięcia (odporność na upadek systemu) Mapa zajętości dysku (wydzielony obszar dysku) mapa wczytywana do RAM przy otwieraniu systemu plików i składowana przy zamykaniu odrębny obszar stałej wielkości na dysku, może być duży system plików może utracić spójność Plik wolnych bloków Lista wolnych bloków Prosta lista powiązana Lista grupowana 3 Lista zliczana * * 9
Buforowanie operacji dyskowych Uniezależnienie od wielkości rekordów Odczyt Rekord fizyczny Pojedyncze bajty Buforowanie operacji dyskowych Uniezależnienie od wielkości rekordów Zapis Rekord fizyczny Pojedyncze bajty 10
Buforowanie zrównoleglenie i minimalizacja operacji dyskowych Asynchroniczny odczyt/zapis bufora Minimalizacja liczby operacji Zwiększenie liczby buforów Opóźnienie operacji zapisu na dysk Powstaje pula buforów wolnych zajętych przez określone rekordy fizyczne zawierających jedyną aktualną wartość rekordu, jeszcze nie zapisaną na dysk Problem odłączania systemu plików Buforowanie planowanie operacji dyskowych Kolejkowanie zleceń operacji dyskowych - możliwe dzięki modularności zleceń System zmienia kolejność realizacji dostępów minimalizuje ruch głowic dopuszczalne granice odsuwania operacji w czasie Możliwość implementacji wielowątkowych sterowników szczególnie z dyskami SCSI Matryce dyskowe RAID 11
Operacje w systemie plików Sekwencja otwarcia, we/wy, zamknięcia handle = open(ścieżka, tryb, uprawnienia) handle = creat(ścieżka, uprawnienia) licz_bajtów = read/write(handle, adres, l_bajtów) close(handle) Dostęp bezpośredni lseek(handle, offset, odkąd) Buforowanie w programie funkcje strumieniowe fopen, fclose, fread, fwrite Przykłady czytania sekwencyjnego int hd; M_TP buf[200]; hd = open( nazwa, O_RDONLY); if(hd<0) error(); read(hd, buf, sizeof(buf)); close(hd); int hd, n; M_TP buf[200]; hd = open( nazwa, O_RDONLY); if(hd<0) error(); for(n=0; n<200; n++) if(read(hd, &buf(n), sizeof(m_tp))<=0) break; close(hd); 12
Przełączanie strumieni standardowych Każdy proces ma 3 strumienie standardowe otwarte od chwili utworzenia procesu stdin, stdout, stderr Przełączanie w linii komendy: komenda <plik_we >plik_wy Przetwarzanie potokowe komend wyjście stdout komendy pierwszej przesyłane na wejście stdin do drugiej komendy pośredni plik roboczy komenda_1 komenda_2 Przetwarzanie potokowe procesy współbieżne Komendy uruchomione współbieżnie Plik specjalny - kolejka FIFO (pipe) Plik o ograniczonej długości Dostęp przez 2 liczniki sekwencyjne: odczytu i zapisu liczniki działają cyklicznie po dojściu do końca pliku są automatycznie zerowane Synchronizowany dostęp próba zapisu, gdy licznik zapisu dogoni licznik odczytu, zawiesza proces zapisujący próba odczytu, gdy licznik odczytu dogania licznik zapisu, zawiesza proces czytający Buforowanie plików Kolejka nie zapisywana na dysk 13
Model ochrony plików FAT system plików bez ochrony Atrybuty READ-ONLY, SYSTEM, HIDDEN UNIX, MINIX, EXT? Właściciele plików: użytkownik, grupa Atrybuty Odczyt (r), zapis (w), wykonanie (x) Zakres stosowania Właściciel, Grupa, Inni Użytkownik root nieograniczony dostęp Mechanizm tymczasowego nadawania uprawnień» Atrybut SUID Model ochrony z listami ACL Atrybutem pliku/katalogu lista ACL Dowolnej długości lista rekordów ACE Rekord ACE AccessDenied lub AccessAllowed Identyfikator użytkownika lub grupy Rodzaj dostępu odczyt zapis wykonanie (lub dostęp do katalogu) kasowanie zmiana praw przejęcia własności Obiekty kontenerowe obiekty w nich mogą dziedziczyć ACL Właściciel pliku może zmienić ACL 14