1
Systemy plików
Systemy operacyjne -
wykład 8
2
Zarządzanie plikami
Plik jest zbiorem powiązanych ze sobą
informacji. Najczęściej pliki reprezentują
programy (w postaci źródłowej i wynikowej) oraz
dane. Plik jest ciągiem bitów, bajtów, wierszy i
rekordów, których znaczenie określa twórca
pliku i jego użytkownik.
Plik ma określoną strukturę, stosownie do
swojego typu. W jednych S.O. istnieje duża
liczba typów plików w innych rezygnowano z
typów plików (Unix).
Pliki są przechowywane na dyskach. W
systemach dyskowych jest określona długość
bloku (rekord fizyczny), wynikająca z długości
sektora. Rekordy logiczne natomiast mogą mieć
różne długości, niezgodne z długością bloku.
3
• W Unixie, gdzie wszystkie pliki są zdefiniowane
jako zwyczajne ciągi bajtów, każdy bajt jest z
osobna adresowany przez podanie odległości od
początku (lub końca) pliku. W tym przypadku
rekordem logicznym jest 1 bajt. System plików
automatycznie pakuje i rozpakowuje bajty z
fizycznych bloków dyskowych (np. 512 bajtów na
blok).
• Przy podziale na bloki występuje fragmentacja
wewnętrzna pamięci, ponieważ bajty są
marnowane z powodu przydziału w jednostkach
blokowych a nie bajtach.
• Pliki w systemie komputerowym są
reprezentowane za pomocą pozycji w katalogu
urządzenia (device directory). Katalog
przechowuje informacje o cechach fizycznych
(nazwa, położenie, rozmiar, typ) dla wszystkich
plików na danym urządzeniu.
4
Struktura katalogowa
Kolejnym elementem jest struktura katalogowa plików
(logiczna). Wiele S.O. utrzymuje dwie oddzielne struktury
katalogowe: katalog urządzenia i katalog plików. Każda
pozycja w katalogu może zawierać następujące informacje:
• nazwa pliku,
• typ pliku,
• lokalizacja,
• rozmiar,
• bieżące położenie,
• ochrona,
• czas, data.
System katalogowy można uważać za tablicę symboli
przekładającą nazwy plików na ich pozycje w katalogu.
5
Operacje plikowe
S.O. zawiera funkcje systemowe do
wykonywania następujących
operacji:
• tworzenie pliku
• pisanie do pliku,
• czytanie pliku,
• ustawianie pliku w stan początkowy,
• usuwanie pliku.
6
Operacje plikowe cd.
•Większość S.O. używa wskaźnika bieżącej
pozycji w pliku. Wszystkie operacje wymagają
odszukania w katalogu pozycji
odpowiadającej nazwie pliku.
•S.O. może otworzyć plik wtedy, gdy jest on
używany po raz pierwszy, a potem, gdy
przestaje być aktualnie użytkowany - zamyka.
•Większość systemów wymaga jawnego
otwierania plików przez programistę za
pomocą funkcji systemowej (otwórz),
wywoływanej przed pierwszym użyciem pliku.
7
Metody dostępu
Metody dostępu do informacji zawartej w pliku:
-
dostęp sekwencyjny
- zawartość pliku jest przetwarzana po
kolei rekord po rekordzie. Obecnie najpowszechniejszy.
Operacja czytania czyta następną porcję pliku i
automatycznie przesuwa wskaźnik pozycji w pliku do przodu.
Operacja pisania umieszcza dane na końcu pliku i ustawia
wskaźnik za nowo zapisanymi danymi (nowy koniec pliku).
Program może się przemieszczać w przód lub wstecz o n
rekordów. Ten dostęp oparty na taśmowym modelu pliku.
-
dostęp bezpośredni (swobodny)
- plik traktuje się jak ciąg
ponumerowanych bloków lub rekordów. Plik pozwala na
czytanie lub zapisywanie dowolnych bloków. Nie ma żadnych
ograniczeń odnośnie kolejności operacji czytania lub pisania.
Oparty na dyskowym modelu pliku.
- inne metody dostępu- uzupełnienie metody dostępu
bezpośredniego indeksem pliku.
8
Jednoczesny dostęp do pliku
dzielonego przez wielu
użytkowników
• Należy określić warunki, przy których zmiany
danych wykonywane przez jednego użytkownika są
obserwowane przez innych użytkowników.
• W systemie Unix wynik operacji pisania wykonanej
przez użytkownika otwartego pliku jest natychmiast
widoczny dla innych użytkowników, którzy mają
równocześnie otwarty ten sam plik. Użytkownicy
dzielą wskaźnik do bieżącej pozycji w pliku. Zatem
przesunięcie wskaźnika przez jednego użytkownika
oddziałuje na wszystkie operacje wykonywane
przez innych.
9
Organizacja struktury
katalogowej
Katalog jest tablicą symboli. S.O. odnajduje
plik za pośrednictwem jego symbolicznej
nazwy.
Operacje wykonywane na katalogach:
- przeszukiwanie katalogu,
- tworzenie pliku - dołączanie do katalogu,
- usuwanie pliku - usunięcie z katalogu,
- wyprowadzanie zawartości katalogu,
- automatyczne tworzenie kopii zapasowych.
10
Organizacja struktury
katalogowej cd.
Schematy definiowania logicznej struktury systemu
katalogów:
• katalog jednopoziomowy (np.katalog urządzenia, a w
nim wszystkie pliki),
• katalog dwupoziomowy (dodatkowo katalogi
użytkowników),
• katalogi o strukturach drzewiastych
(dowolna liczba
poziomów),
• grafy katalogów bez cykli
(podkatalogi i pliki mogą być
umieszczane w katalogach dzielonych; ten sam plik lub
podkatalog może występować w dwu różnych
katalogach),
• graf ogólny katalogów
(całkowita dostępność w dzieleniu
plików i podkatalogów, problemy z odzyskiwaniem
nieużywanego miejsca na dysku).
11
Graf ogólny katalogu
12
Ochrona plików
Ochrona plików jest jednym z podstawowych
zagadnień związanych z przechowywaniem
informacji w systemie komputerowym i polega na
ochronie przed fizycznym uszkodzeniem
(niezawodność) i przed niewłaściwym dostępem.
Niezawodność osiąga się głównie przez wykonywanie
wiernych kopii plików. Ochrona przed niewłaściwym
dostępem - dostęp kontrolowany polega na
stosowaniu uprawnień dostępu do plików (np.
operacje takie jak czytanie, pisanie, wykonywanie,
usuwanie). Ochrona może być związana z samym
plikiem, albo ze ścieżką używaną do określenia
pliku. Częściej spotyka się ochronę ścieżki. W
systemach, w których pliki mogą mieć liczne nazwy
ścieżek (np.z grafami bez cykli czy ogólnymi) dany
użytkownik może mieć różne prawa dostępu do
pliku - zależnie od użytej nazwy ścieżki
.
13
Inne sposoby ochrony
Inne sposoby ochrony:
• ukrywanie
przed użytkownikiem
nazw plików
, do których nie
powinien mieć dostępu,
• hasła
nadawane każdemu plikowi (wada - duża ilość haseł do
zapamiętania przez użytkownika),
• wykazy dostępów
. Dla każdego pliku lub katalogu określa się
wykaz dostępów, zawierający nazwę każdego użytkownika i typy
udzielonych mu praw dostępu,
• dostępy grupowe
- j.w. dodatkowo wprowadza się trzy klasy
użytkowników skojarzone z każdym plikiem:
- właściciel (ten, kto utworzył),
-
grupa (wspólnie korzystają z pliku i potrzebują podobnego
dostępu),
-
wszechświat (wszyscy inni użytkownicy).
Np.w Unixie zdefiniowano trzy pola 3 bitowe: r- (prawo czytania), w-
(zapisu), x- (wykonania).