Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie komputerowym, widoczną dla użytkownika. Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym w pamięci pomocniczej. (3) Plan wykładu Zadania systemu operacyjnego Pojęcie u Typy i struktury ów Metody dostępu do ów Interfejs dostępu do ów w systemach uniksopodobnych Organizacja logiczna systemu ów strefy katalogi Logiczna struktura katalogów Zadaniem systemu operacyjnego w odniesieniu do ów jest zapewnienie odwzorowania pomiędzy abstrakcyjnym obrazem informacji a jego reprezentacją na urządzeniu fizycznym. Wyszczególnienie zadań: identyfikacja u (hierarchiczna struktura katalogów), udostępnienie interfejsu operacji owych (API), realizacja operacji dostępu do ów i katalogów z zapewnieniem bezpieczeństwa (synchronizacja i autoryzacja dostępu), spójności i efektywności. (2) (4) 1
Atrybuty u Struktura u Nazwa ciąg znaków służących użytkownikowi do identyfikacji u Typ informacja służąca do rozpoznania rodzaju zawartości u i tym samym sposobu interpretacji Lokalizacja informacja służąca do odnalezienia u w systemie komputerowym (urządzenie i położenie u w tym urządzeniu) Rozmiar bieżący rozmiar u w ustalonych jednostkach (bajtach, słowach, blokach itp.) Ochrona informacje umożliwiające kontrolę dostępu Czasy dostępów daty i czasy wykonywania pewnych operacji na u, typu odczyt, modyfikacja, utworzenie Struktura logiczna określa organizację informacji wewnątrz u może być definiowana i rozpoznawana na poziomie jądra systemu operacyjnego lub na poziomie aacji Struktura fizyczna określa sposób przechowywania informacji narzucana jest przez urządzanie, na którym jest składowany (5) (7) Typy ów Odwzorowanie obrazu logicznego w fizyczny Typ u określa rodzaj informacji przechowywanej w u i tym samym sposób interpretacji jego zawartości, np. program binarny, wynik kompilacji, kod źródłowy, makrodefinicja ( wsadowy, skrypt powłoki itp.), tekst, biblioteka programisty, grafika, dane aacji. Informacja o typie u może być przechowywana w strukturach wewnętrznych systemu ów, w zawartości samego u, w katalogach lub w nazwie u. Typ u może być rozpoznawany przez system operacyjny, ale może to być również tylko informacja interpretowana przez użytkownika lub aację. rekord logiczny nośnik fizyczny (dysk) rekord logiczny rekord logiczny obszar niewykorzystany (6) (8) 2
Metody dostępu do ów Przykład u indeksowego Metody dostępu określają sposób identyfikacji odczytywanego lub zapisywanego fragmentu u. Użycie określonej metody wynika z charakteru przetwarzania oraz struktury u. Dostępność określonej metody może być ograniczona ze względu na własności urządzenia oraz sposób organizacji lub implementacji systemu ów (zwłaszcza atrybutu lokalizacja). Brzeziński Kobusińska klucz Ania Kobusińska, mgr Darek Wawrzyniak, dr Wawrzyniak Jerzy Brzeziński, prof. indeksowy stowarzyszony (9) (11) Wyszczególnienie metod dostępu Podstawowe operacje na ach (1) Dostęp sekwencyjny (ang. sequential access) informacje w u przetwarzane są rekord po rekordzie, tzn. po wykonaniu operacji na określonym rekordzie system przygotowuje się do wykonania operacji na kolejnym rekordzie w u. Dostęp bezpośredni (swobodny, ang. direct access) lokalizacja rekordu do przetwarzania podawana jest jako parametr odpowiedniej operacji. Dostęp indeksowy rekord, na którym ma być wykonana operacja identyfikowany jest przez klucz, odwzorowywany na konkretny rekord w u stowarzyszonym poprzez indeksowy. Tworzenie u konieczne jest określenie podstawowych atrybutów u, znalezienie miejsca na ten w systemie komputerowym oraz jego zaewidencjonowanie (utworzenie wpisu katalogowego) Zapis do u konieczne jest określenie, co ma być zapisane i gdzie ma być zapisane (w którym u i w jakim miejscu tego, zależnie od sposobu dostępu) Odczyt z u konieczne jest określenie, co ma być odczytane (z którego u i z jakiego miejsca tego, zależnie od sposobu dostępu) i gdzie mają być umieszczone odczytane dane (10) (12) 3
Podstawowe operacje na ach (2) System uniksopodobny tworzenie u Usuwanie informacji z u należy określić jaki fragment u (i którego u) ma być usunięty. Najczęściej możliwe jest tylko skracanie u, czyli usuwanie jego końcowej zawartości lub całej jego zawartości. Usuwanie u należy określić do usunięcia. Usuwana jest zawartość oraz wpis ewidencyjny u. Dodatkowe operacje na ach, wykonywane w celu uzyskania dostępu do zawartości u: otwieranie, zamykanie, przesuwanie wskaźnika bieżącej pozycji. Funkcja systemowa: creat nazwa u (ścieżka) prawa dostępu Wartość zwrotna: deskryptor u lub -1 w przypadku błędu. Uwaga: funkcja tworzy i otwiera go do zapisu. (13) (15) Interfejs dostępu do u w systemie uniksopodobnym System uniksopodobny otwieranie u Tworzenie u funkcja creat Usuwanie dowiązania do u funkcja unlink Odczyt z u funkcja read Zapis do u funkcja write Skracanie u (usuwanie końcowej zawartości, Obcinanie) funkcja truncate Przesunięcie wskaźnika bieżącej pozycji funkcja lseek Otwieranie u funkcja open Zamykanie otwartego u funkcja close Funkcja systemowa: open nazwa u (ścieżka) tryb otwarcia (do zapisu, do odczytu itp.) Wartość zwrotna: deskryptor u lub -1 w przypadku błędu. Wersja 3-argumentowa funkcji umożliwia również tworzenie u. (14) (16) 4
System uniksopodobny zamykanie deskryptora u System uniksopodobny skracanie u Funkcja systemowa: close deskryptor Wartość zwrotna: 0 w przypadku poprawnego zakończenia lub -1 w przypadku błędu. Funkcja systemowa: truncate nazwa u (ścieżka) lub deskryptor wielkość w bajtach do jakiej ma nastąpić skrócenie (docelowa wielkość u) Wartość zwrotna: 0 w przypadku poprawnego zakończenia lub -1 w przypadku błędu. (17) (19) System uniksopodobny usuwanie dowiązania do u System uniksopodobny odczyt zawartości u Funkcja systemowa: unlink nazwa u (ścieżka) Wartość zwrotna: 0 w przypadku poprawnego zakończenia lub -1 w przypadku błędu. Funkcja systemowa: read deskryptor u adres w pamięci, pod którym zostaną zapisane dane odczytane z u liczba odczytywanych bajtów Wartość zwrotna: liczba rzeczywiście odczytanych bajtów lub -1 w przypadku błędu. (18) (20) 5
System uniksopodobny zapis zawartości u Przykład realizacji operacji zapisu w systemie uniksopodobnym Funkcja systemowa: write deskryptor u adres w pamięci, spod którego zostaną pobrane dane do zapisu liczba zapisywanych bajtów Wartość zwrotna: liczba rzeczywiście zapisanych bajtów lub -1 w przypadku błędu. write(d, buf, 6) write(d, buf, 9) write(d, buf, 5) bufor w pamięci (21) (23) Przykład realizacji operacji odczytu w systemie uniksopodobnym System uniksopodobny zmiana wskazania bieżącej pozycji bufor w pamięci read(d, buf, 6) read(d, buf, 9) read(d, buf, 5) (22) Funkcja systemowa: lseek deskryptor u wielkość przesunięcia w bajtach punkt odniesienia (początek u, bieżąca pozycja, lub koniec u) Wartość zwrotna: położenie wskaźnika po przesunięciu lub -1 w przypadku błędu. (24) 6
Zmiana wskazania bieżącej pozycji (1) Organizacja logiczna systemu ów (1) bufor w pamięci read(d, buf, 6) lseek(d, 9, SEEK_CUR) read(d, buf, 5) Podział na strefy (wolumeny, woluminy, tomy, partycje) strefa obejmuje część dysku, jeden lub kilka dysków, strefa zawiera i i katalogi. Organizacja katalogów: katalog jest tablicą kojarzącą nazwy ów z wpisami katalogowymi, obejmującymi inne atrybuty ów, katalogi mogą być jedno- lub wielopoziomowe, katalogi wielopoziomowe zorganizowane mogą być w różne struktury logiczne (drzewo, graf acykliczny, dowolny graf). Pliki identyfikowane są przez nazwy, znajdujące się w katalogach. (25) (27) Zmiana wskazania bieżącej pozycji (2) Organizacja logiczna systemu ów (2) write(d, buf, 6) katalog katalog lseek(d, 9, SEEK_CUR) katalog strefa/partycja/wolumen write(d, buf, 5) bufor w pamięci strefa/partycja/wolumen (26) (28) 7
Podział na strefy Struktura logiczna katalogów strefa A strefa B katalog urządzenia i katalog urządzenia i dysk strefa katalog urządzenia i dysk 1 dysk 2 Struktura jednopoziomowa wpisy katalogowe poszczególnych ów znajdują się w tym samym katalogu (na tym samym poziomie). Struktura dwupoziomowa wpisy katalogowe ów znajdują się w różnych katalogach, ale katalogi nie mogą zawierać innych katalogów. Struktura drzewiasta w katalogach można tworzyć podkatalogi oraz i. Graf acykliczny podkatalog (lub ) może być umieszczony w wielu katalogach. Graf ogólny dopuszcza się cykl w powiązaniach pomiędzy katalogami (29) (31) Operacje na katalogu Struktura jednopoziomowa Tworzenie katalogu Usuwanie katalogu Tworzenie wpisu katalogowego gdy tworzony jest, jego nazwa alternatywna, podkatalog itp. Usuwanie wpisu katalogowego Przemianowanie u (zmiana nazwy) Odnajdowanie wpisu katalogowego Tworzenie wykazu wpisów katalogowych (listing zawartości) pr1.c art.txt pr2.c def.h (30) (32) 8
Struktura dwupoziomowa Graf acykliczny darek jacek darek jacek pr.c art.txt pr.c def.h teksty programy do_czyt art.txt pr1.c pr2.c def.h (33) (35) Struktura drzewiasta Graf ogólny darek jacek teksty listy czyt.txt programy teksty programy doc.txt prywatne służbowe pr1.c pr2.c art.txt pr2.c def.h art.txt list1.txt (34) (36) 9