Systemy operacyjne Pamięci o bezpośrednim dostępie
Transkrypt
Systemy operacyjne Pamięci o bezpośrednim dostępie
Systemy operacyjne System plików Dr inż. Dariusz Caban mailto:[email protected] tel.: (071)320-2823 Pamięci o bezpośrednim dostępie powierzchnia/głowica cylinder/ścieżka sektor • 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) – • 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 – – – • Pliki ukryte - występują w katalogu, ale ich obecność nie jest ujawniana standardowymi komendami 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 Plik normalny … Podkatalog 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ść BA × 2długość numerów BA • 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ść BA × liczba plików, gdy pliki > BA 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ść BA = 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 Kasowanie 2 i 4 Plik 1 Zapis nowego pliku k Plik 1 Plik k Zapis nowego pliku m Plik 1 Plik k Fragmentacja Plik 1 Plik k Plik 3 Plik 4 Plik 5 ... Plik 3 Plik 5 ... Plik 3 Plik 5 ... Plik 3 Plik m Plik 5 ... 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 BA • Przydział z pośrednim indeksowaniem – – Mniejsza tablica indeksowa Dodatkowe operacje odczytu Indeks 1 BA 1 BA k BA p ..... Indeks k ..... Pośredni Indeks 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 BA BA BA BA BA • Lista grupowana BA 3 × BA BA • Lista zliczana BA* BA BA BA BA* 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