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

Podobne dokumenty