sysop, SOP1, Systemy operacyjne - Z. Królikowski - Inf., sem.2


Systemy plików

Zbyszko Królikowski - Instytut Informatyki PP

Literatura

  1. Tanenbaum A., Modern Operating Systems, Prentice-Hall Icor., 1992.

  2. Silberschatz, P.B. Galvin, Operating System Concepts, Addison-Wesley Pub. Comp., 1994.

  3. Tanenbaum A., Operating Systems: Design and Implementation, Prentice-Hall Intern. Editions, 1995.

  4. Silberschatz, J.L. Peterson, P.B. Galvin, Podstawy systemów operacyjnych, WNT, W-wa, 1993.

  5. Królikowski, M. Sajkowski, UNIX dla początkujących i zaawansowanych, Wyd. Nakom, 1995.

  6. Gościński, Distributed Operating Systems, Addison-Wesley Pub. Comp., 1992.

Systemy operacyjny - znaczenie tej problematyki

Praktyczne znaczenie wiedzy z zakresu systemów operacyjnych wynika z następujących spostrzeżeń:

  1. Wybór systemu operacyjnego jest jedną z najważniejszych decyzji przy wyborze całego systemu komputerowego

  2. Użytkownik w wielu przypadkach operuje bezpośrednio na funkcjach realizowanych przez systemy operacyjne

  3. Wiele koncepcji i technik wyrastających i związanych z systemami operacyjnymi ma znaczenie uniwersalne

Wybrane problemy organizacji systemów komputerowych

Systemy wielozadaniowe pracujące w trybie z podziałem czasu procesora

0x01 graphic
0x01 graphic

Struktura oprogramowania i jego związek ze sprzętem

0x01 graphic

System operacyjny - definicje

Przez system operacyjny rozumiemy oprogramowanie zarządzające zasobami sprzętowymi i programowymi systemu komputerowego, które pozwala użytkownikom na wspólne, wygodne i efektywne wykorzystywanie tych zasobów.

Funkcje systemu operacyjnego

Problem: W interesie każdego zadania przedłożonego do wykonania w systemie leży efektywność jego wykonania - w systemie wielo-zadaniowym powstaje więc problem zarządzania przydziałem zasobów do zadań,

1. zarządzanie (optymalizacja wykorzystania) zasobami, a tym samym optymalizacja działania całego systemu komputerowego,

2. rozwiązywanie konfliktów powstających podczas współubiegania się różnych zadań o zasoby systemu.

Są to właśnie podstawowe funkcje systemu operacyjnego.

Funkcje systemu operacyjnego - cd.

System operacyjny realizuje miedzy innymi następujące funkcje:

Pojęcia podstawowe

Zasoby

Zasoby komputerowe to obiekty dzielone (ang. shared) (współdzielone, współużywalne) przez użytkowników i system operacyjny.

Tradycyjnie wyróżnia się zasoby sprzętowe (procesory, urządzenia we/wy, pamięci) oraz programowe (pliki, programy i dane).

Zarządzanie zasobami w systemie wielozadaniowym polega na takim ich rozdzielaniu pomiędzy użytkowników, aby każdy z nich miał wrażenie, że pracuje na własnym komputerze.

Użytkownik, zadanie, proces

0x01 graphic

Pojęcia podstawowe - cd.

Przez użytkownika będziemy rozumieli ogólnie każdego, kto wymaga realizacji pewnych zadań przez system operacyjny.

Pracą (ang. job) jest zbiór akcji niezbędnych do realizacji określonego zadania - pracę tworzy przykładowo sekwencja: kompilacja, załadowanie i wykonanie.

Proces jest najmniejszą jednostką (?) aktywności, która może się ubiegać się o zasoby systemu komputerowego

Pojęcia podstawowe - cd.

Proces odpowiada programowi, ale jest obiektem aktywnym, któremu przydzielono zasoby komputerowe takie jak: pamięć operacyjna i procesor. System operacyjny przekształcając program w proces tworzy pewne pomocnicze struktury danych, wykorzystywane do zarządzania procesami (jak np. opis przydzielonych zasobów, stan procesu, itd.)

Pojęcia podstawowe - cd.

Przestrzeń adresowa i przestrzeń pamięci

Adresy, których używa programista w swoim programie nazywamy adresami wirtualnymi (logicznymi), a zbiór tych adresów przestrzenią adresową.

Adresy rzeczywistych komórek pamięci operacyjnej nazywamy adresami fizycznymi, a ich zbiór przestrzenią pamięci.

W systemach wyposażonych w mechanizm pamięci wirtualnej, przestrzeń adresowa jest większa niż przestrzeń pamięci.

Pojęcia podstawowe - cd.

W celu zagwarantowania ochrony dostępu do zasobów, system operacyjny korzysta z instrukcji dostępnych tylko dla niego, tj. instrukcji uprzywilejowanych. Specjalny sprzęt sprawdza każdorazowo czy instrukcja uprzywilejowana może być wykonana. W celu realizacji tego zadania wyróżnia się zazwyczaj dwa tryby pracy systemu komputerowego:

Instrukcje uprzywilejowane są wykonywane tylko gdy system (procesor) jest w trybie systemowym. Zmiana trybu pracy procesora z trybu „user” na tryb „system” może odbywać się jedynie za pośrednictwem systemu operacyjnego

Uproszczony model stanów procesu

0x01 graphic

Model stanów procesu

0x01 graphic

Model stanów procesu - cd.

Wprowadzenie (ang. hold) - praca użytkownika jest przetworzona do formatu stosowanego w danym systemie, ale żadne zasoby nie są jeszcze przydzielone, oprócz ewentualnie plików.

Stan gotowości (ang. ready) - procesowi skojarzonemu z pracą przydzielone są wszystkie zasoby systemu komputerowego z wyjątkiem procesora - proces czeka zatem na przydział ostatniego, istotnego zasobu.

Stan wykonywania (ang. run / execute) - w stanie tym proces ma przydzielony procesor i jest wykonywany.

Stan zawieszenia / oczekiwania (ang. suspend / wait) - w stanie tym proces oczekuje na zdarzenie (ang. event), np. zakończenie wcześniej zainicjowanej operacji wejścia / wyjścia lub na przydział dodatkowych zasobów.

Zakończenie - jest to stan, w którym proces zakończył definitywnie wykonywanie i wszystkie przydzielone mu zasoby zostały zwolnione.

Uproszczony model stanów procesu w systemie VAX / VMS

0x01 graphic

Systemy monolityczne

0x01 graphic

Systemy monolityczne ( tylko systemy czasu rzeczywistego )

Struktura wydzielona jądro

kernel call = funkcja systemowa

pułapka - przerwane programowe

tryb użytkownika - user mode

tryb systemowy - kernel mode

Funkcje jądra

Najważniejszą częścią systemu operacyjnego jest jądro, którego funkcjami między innymi są:

message passing - przekazywanie informacji między procesami

Systemy o strukturze wielopoziomowej (hierarchicznej)

Przykład: users (poziom 4) -> poz.3 -> poz.2 -> poz.1 -> sprzęt (poz.0)

Korzystanie z funkcji (usług) niższego poziomu: 2->1 3->2 ale nie 3->1 !

Standard OSI/ISO to 7 warstw.

Systemy o strukturze wielopoziomowej (hierarchicznej) - cd.

Struktura przykładowa:

Poziom 6: programy użytkowe

Poziom 5: interpreter poleceń systemowych (powłoka, shell)

Poziom 4: zarządzanie pamięcią wirtualną

Poziom 3: zarządzanie procesami i przydziałem procesora

Poziom 2: zarządzanie urządzeniami we / wy

Poziom 1: moduły obsługi urządzeń i procedury obsługi przerwań

Poziom 0: sprzęt Nie ma systemów o czystej postaci wielopoziomowej lub monopolitycznej.

Struktura wielopoziomowa MS - DOS

0x01 graphic

W MS-DOS brak utrzymania hierarchii.

Przykładowa struktura systemu UNIX

0x01 graphic

Metoda mieszana np. jądro systemowe - wiele modułów.

Dwa złącza - z użytkownikiem i funkcji systemowych.

Systemy o strukturze klient - serwer

0x01 graphic

System rozproszony - każdy ma kopię mikrojądra.

Systemy o strukturze klient - serwer - cd.

Przesunięcie oprogramowania na poziom wyżej, a jądro jest małe - mikrojądro. Proces klienta i serwera plików mają te same prawa. Komunikacja modułów przez mikrojądro.

Systemy plików

W systemie komputerowym informacja może być przechowywana w różnych postaciach fizycznych

obraz pamiętanej informacji - niezależną od właściwości fiz. urządzeń

pamięciowych jednostkę logiczną informacji - plik.

- zbiór faktycznych plików

Czym jest plik ?

Plik jest zbiorem powiązanych ze sobą informacji określonych przez jego twórcę. .

Plik jest ciągiem bitów, bajtów, wierszy lub rekordów, których znaczenie określa twórca pliku i jego użytkownik.

Najczęściej pliki reprezentują programy (zarówno w postaci źródłowej jak i wynikowej) oraz dane. Pliki danych mogą być liczbowe, literowe, alfanumeryczne lub binarne. Pliki mogą mieć format swobodny, jak np. pliki tekstowe, lub ściśle określony.

Pojęcie pliku jest zatem bardzo ogólne.

Plik ma nazwę, za której pomocą można się do niego odwoływać. Ma również inne atrybuty (cechy), jak typ, czas założenia, nazwę właściciela, rozmiar itp.

Plik = strumień, ciąg bajtów

Organizacje plików w systemach operacyjnych

0x01 graphic

Organizacje plików w systemach operacyjnych

Sekwencja (strumień) bajtów - UNIX (plik jest ciągiem znaków zakończonym znakiem EOF (ang. End-Of-File)

EOF = CTRL-D ( UNIX )

Sesja użytkownika = PLIK

Chcąc odczytać 16-ty bajt, trzeba wczytać całe 512B do pamięci oper.

Read(16) -> HDD -> 512B -> PAO

Organizacje plików - cd.

Sekwencja rekordów - rekord logiczny składa się z kilku lub kilkudziesięciu bajtów i może mieć stałą, ściśle określoną długość lub zmienną długość

Organizacja indeksowo - sekwencyjna (ISAM) - IBM

Bardzo często w systemach baz danych.

ISAM - pogrupowanie rekordów tematycznie w BLOKI.

SQL - 4GL - 4th generation language

blok dyskowy zawierający indeksy wtórne ( adresy bloków dyskowych )

jest tworzony na bazie tego klucza

Metody dostępu do plików

1. Dostęp sekwencyjny

(read next, write next)

0x01 graphic

Read( ,0,512)

pozycji w kierunku końca pliku.

- podobnie jest wykonywana write ( należy rozróżnić nadpisywanie danych i

zapis na końcu pliku ).

Metody dostępu do plików - cd.

2. Dostęp bezpośredni (swobodny)

(read n, write n)

gdzie n jest numerem rekordu logicznego

PLIK - ciąg ponumerowanych rekordów logicznych

n - numer rekordu

- nr. rekordu logicznego przekazywany przez użytkownika w poleceniu read/write

jest numerem względnym tego rekordu ( względem początku pliku ).

Metody dostępu do plików - cd.

3. Dostęp z wykorzystaniem indeksów

Założenia dostępu bezpośredniego oraz INDEKS PLIKU. Wskaźniki do konkretnych bloków dyskowych. Aby znaleźć konkretny blok, należy przeszukać INDEKS. Nazwisko -> nr bloku -> adres bloku dyskowego -> nr cylindra,ścieżki, talerza ...

- rozszerzenie metody dostępu bezpośredniego z wykorzystaniem dodatkowej

struktury danych -indeksów pliku

- indeks zawiera wskaźniki do odpowiednich bloków dyskowych .

0x01 graphic

Typy plików

  1. System operacyjny rozpoznaje typy plików -rozróżnianie typu pliku najczęściej polega na wprowadzeniu odpowiedniego rozszerzenia w nazwie pliku np. file.pas, file.obj, file.bin

Zalety:

programu wynikowego w postaci binarnej

aktualną wersję pliku wynikowego

Typy plików - cd

  1. System operacyjny rozpoznaje typy plików - cd.

Wady:

  1. W systemie operacyjnym nie wyróżnia się typów plików - w takim przypadku, każdy program użytkowy oraz funkcje systemowe muszą zawierać własny kod interpretujący plik wejściowy odpowiednio do jego struktury

Zmierzanie do tego: pliki | katalogi | pliki specjalne (~systemowe~)

JĄDRO nie rozróżnia, odpowiednie moduły MUSZĄ TO ROBIĆ.

Format pliku wykonywalnego w systemie UNIX

0x01 graphic

Program wykonywalny: |Tekst|Stos|-> szczelina <-|Dane|

Funkcje systemowe operujące na plikach

CREATE

W różnych systemach operacyjnych dostępne są różne operacje przeznaczone do przechowywania danych w plikach i do manipulowania tymi danymi. Poniżej przedstawiono zestaw najczęściej spotykanych operacji (funkcji systemowych) na plikach.

Funkcje systemowe operujące na plikach - cd.

CREATE -cd.

CREATE. Plik jest tworzony, lecz pozostaje pusty. Celem tej funkcji jest „zaanonsowanie”, że plik został utworzony i wstępne nadanie mu pewnych atrybutów. Do utworzenia pliku są niezbędne dwa kroki. Po pierwsze, na dysku musi zostać znalezione miejsce na plik. Po drugie, w katalogu należy utworzyć pozycję opisującą nowy plik.

Funkcje systemowe operujące na plikach - cd.

DELETE

DELETE. Jeśli plik nie jest już dalej potrzebny, należy go usunąć aby zwolnić miejsce na dysku. W celu usunięcia pliku odnajduje się jego nazwę w katalogu, zwalnia całą przestrzeń na dysku zajmowaną przez plik i likwiduje daną pozycję w katalogu.

OPEN

OPEN. Przed użyciem pliku proces musi ten plik otworzyć. Celem funkcji OPEN jest pozwolenie systemowi na odczytanie atrybutów pliku oraz listy adresowej jego bloków dyskowych. Informacje te są przepisywane do pamięci operacyjnej, aby przyśpieszyć wszystkie kolejne operacje wykonywane na tym pliku. Niektóre systemy niejawnie otwierają plik przy pierwszym do niego odwołaniu, jednak większość systemów wymaga jawnego otwierania plików przez programistę za pomocą funkcji OPEN, która powinna być wywołana przy pierwszym użyciu pliku. Operacja otwierania pliku pobiera nazwę pliku, przegląda katalog i kopiuje odpowiednią pozycję w katalogu do tablicy otwartych plików.

Funkcje systemowe operujące na plikach - cd.

OPEN - cd.

Natępnie do procesu jest przekazywany wskaźnik do pozycji opisującej plik w tablicy otwartych plików. Wszystkie następne operacje we / wy używają tego wskaźnika zamiast faktycznej nazwy pliku, dzięki czemu unika się dalszych przeszukiwań katalogu.

Funkcje systemowe operujące na plikach - cd.

CLOSE

CLOSE. Gdy wszystkie operacje na pliku zostaną zakończone, to jego atrybuty i adresy bloków dyskowych nie są już potrzebne, i plik powinien zostać zamknięty aby zwolnić obszar w odpowiednich tablicach systemowych. Gdy plik jest zamykany jego opisy w tablicy otwartych plików są usuwane.

Funkcje systemowe operujące na plikach - cd.

READ

READ. Funkcja ta realizuje operacje odczytu danych pamiętanych w pliku. Wykorzystywany jest przy tym wskaźnik bieżącej pozycji w pliku (ang. current file position). Zarówno operacje czytania, jak i pisania posługują się tym samym wskaźnikiem. Zazwyczaj czytane bajty pliku są wskazywane przez ten wskaźnik. Proces wywołujący tą funkcję musi musi podać specyfikację liczby bloków, które mają być odczytane, oraz zabezpieczyć bufor dla ich przechowywania.

Funkcje systemowe operujące na plikach - cd.

WRITE

WRITE. Funkcja ta realizuje operacje zapisu, zazwyczaj wykorzystując przy tym wskaźnik bieżącej pozycji w pliku. Jeśli wskaźnik ten znajduje sie na końcu pliku, to jego rozmiar rośnie. Jeśli wskaźnik znajduje się w środku pliku, to istniejące dane są nadpisywane.

Funkcje systemowe operujące na plikach - cd.

READ / WRITE

??????????????

APPEND. Jest to ograniczone postać funkcji WRITE. Funkcja ta może dopisywać dane tylko na końcu pliku. Systemy które zabezpieczają tylko minimalny zbiór funkcji systemowych, tej funkcji nie posiadają. Jednakże czynności realizowane przez tę funkcję mogą być wykonane w inny sposób.

Tablica struktury pliku - tworzona w programie (jednocześnie kilka procesów otwiera jeden plik)

ID_UŻYTKOWNIKA

ID_PROCESU

ID_bajtu_na_którym_operuje

...

A

120

...

B

0

...

...

...

Funkcje systemowe operujące na plikach - cd.

SEEK

SEEK. W celu umożliwienia bezpośredniego dostępu do pliku, konieczne jest jakaś metoda określania z jakiego miejsca pliku pobierać dane. Powszechnie stosowanym rozwiązaniem jest funkcja SEEK, która przesuwa wskaźnik bieżącej pozycji w pliku, wskazując to miejsce w pliku. Po wykonaniu tej funkcji dane można z tego miejsca odczytać lub zapisać.

GET ATTRIBUTES. Procesy często muszą odczytywać atrybuty pliku aby wykonać swoją „pracę”. Przykładem może być tutaj UNIX-owy program make, wykorzystywany do zarządzania wspólny projektami programistycznymi. Program make bada czas i datę modyfikacji plików źródłowych i wynikowych, i wykonuje rekompilację programów nieaktualnych.

Atrybuty plików

Field

Meaning

Protection

Who can access the file and in what way

Password

Password needed to access the file

Owner

Current owner

Read-only flag

0 for read/write, 1 for read only

Hidden flag

0 for normal, 1 for do not display in listings

System flag

0 for normal file, 1 for system file

Archive flag

0 has been backed up, 1 for needs to be backed up

ASCII/binary flag

0 for ASCII file, 1 for binary file

Random access flag

0 for sequential access only, 1 for random access

Atrybuty plików - cd.

Field

Meaning

Temporary flag

0 for normal, 1 for delete on process exit

Lock flag

0 for unlocked, nonzero for locked

Record length

Number of bytes in a record

Key length

Number of bytes in the key field

Creation time

Date and time file was created

Time of last access

Date and time file was last accessed

Time of last change

Date and time file was last changed

Current size

Number of bytes in the file

Maximum size

Maximum size file may grow to

Katalogi

katalogi utrzymuje się dla określenia sposobu dostępu do pliku,

w wielu systemach katalogi są same w sobie plikami,

katalog zawiera określoną liczbę pozycji - po jednej na plik,

Budowa katalogu w różnych systemach

0x01 graphic

rys1 - CP/M rys2 - MS-DOS rys3 - UNIX

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

Organizacje struktury katalogowej

0x01 graphic

Hierarchiczna struktura katalogów - UNIX

0x01 graphic

Organizacja struktury katalogowej - cd.

Ścieżki dostępu

../../teachers/krolikowski/prog_1

przy czym dwie kropki (..) wskazują katalog nadrzędny (tutaj powtórzone dwa razy wskazują na katalog usr) i z niego rozpocznie się poszukiwanie pliku prog_1 przez katalogi teachers i krolikowski.

Lokalizacja bloków dyskowych pliku w systemie UNIX

0x01 graphic

Parametr polecenia - ścieżka dostępu: /usr/students/student1/teksty/tekst_a

1 -> 2 -> 3 i-węzły (512B)

Katalogi o strukturze acyklicznego grafu skierowanego - pliki współdzielone

0x01 graphic

? - to nie są kopie tego samego pliku, to jest współdzielenie. Pliki takie są backup'owane 2 razy (rozróżnienie tylko przez nowe programy). Po odtworzeniu 2 osobne kopie pliku a nie 1 współdzielony. Graf skier. bez cykli!

Katalogi o strukturze acyklicznego grafu skierowanego - pliki współdzielone - cd.

UNIX: Link -opcja - tworzy nowy zapis w katalogu wykorzystując i-node istniejącego pliku,

rozwiązanie stosowane w systemach, w których katalog zawiera adresy bloków dyskowych pliku,

Pliki dzielone - dowiązywanie

0x01 graphic

Pliki dzielone - dowiązywanie - cd.

Problemy:

Właściciel pliku (C) usuwa plik. Co się może zdarzyć w systemie ?

count=2 więc 2 dowiązania. B dowiązał się. C (właściciel) chce usunąć plik. B w ogóle nie może usunąć (nie jest właścicielem). Jeśli (przy dowiązaniach twardych) COUNT>1 to NIE MOŻNA SKASOWAĆ - najpierw skasować dowiązanie !

Rozwiązanie:

?

Przy dowiązaniu miękkim katalog ma przynajmniej 2 odnośniki, plik przynajmniej 1.

Przy obu rodzajach dowiązań mogą pojawiać się problemy przy składowaniu systemu plików na taśmę i jego odtwarzaniu - tworzone są wielokrotne kopie plików a nie dowiązania

System plików - UNIX

0x01 graphic

Montowanie systemu plików

0x01 graphic

Budowa systemu plików - UNIX

Dany logiczny system plików jest ciągiem bloków ponumerowanych kolejno 0 ... n, przy czym kolejne bloki stanowią:

W bloku nadrzędnym zawarte są następujące informacje o systemie plików:

Tablice systemowe systemu plików - UNIX

0x01 graphic

Pliki specjalne systemu UNIX

Pliki specjalne reprezentujące urządzenia zgrupowane są w katalogu /dev. Wpisane są w nim pliki pseudourządzeń i urządzeń rzeczywistych. Do pseudourządzeń należą między innymi:

Urządzenia rzeczywiste to:

Standardowe katalogi - Unix

0x01 graphic

Zarządzanie przestrzenią na dysku - Budżet dyskowy użytkownika

0x01 graphic

Budżet dyskowy użytkownika

Mechanizm „dyscyplinowania” użytkowników przed nadmiernym wykorzystywaniem przestrzeni na dysku

Problem rozmiaru bloku dyskowego

Problem: Jaki rozmiar bloku dyskowego dobrać w danym systemie ?

Najczęściej stosowane obecnie rozmiary bloków:

512 B, 1kB, 4 kB

program_użytkownika -> (np. 4kB) -> ramki -> (swp) -> HDD

Wykorzystanie przestrzeni na dysku a szybkość dostępu i rozmiar bloku

0x08 graphic
0x01 graphic

Zarządzanie obszarami wolnymi na dysku Mapa bitowa

2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, 27.

0x01 graphic

Lista łączona bloków wolnych

0x01 graphic

Lista łączona bloków wolnych - cd.

Grupowanie ( obecnie nie stosowane )

Zliczanie ( stosowane najczęściej )

Metody alokacji plików na dysku

Problem:

Metody alokacji przestrzeni dyskowej:

Z reguły obecnie stosuje się kombinacje tych metod lub różne metody dla plików o różnych rozmiarach

Alokacja ciągła (ang. Contignous Allocation)

Założenie: Każdy plik zajmuje zbiór ciągły adresów na dysku

Zalety:

Wady:

Alokacja ciągła

Plik

Początek

Długość

count

0

2

tr

14

3

mail

19

6

list

28

4

f

6

2

0x01 graphic


0x08 graphic
Alokacja łączona (ang. Linked Allocation)

Alokacja łączona (ang. Linked Allocation)

Założenia:

Zalety:

Wady:

Alokacja łączona - Tablica FAT

0x01 graphic

0x08 graphic
Alokacja indeksowa (ang. Indexed Allocation)

Alokacja indeksowa (ang. Indexed Allocation)

Założenia:

Zalety:

Wady:

wewn. - w blokach związanych z plikiem powstają obszary niewykorzystane )

Jeśli nie starcza 1 blok - lista łączona bloków indeksowych ( dla dużych plików ) .

Dla plików o dużych rozmiarach najczęściej stosuje się alokację indeksową , dla

Plików o małych rozmiarach - alokację ciągłą .

Szeregowanie ruchu głowic

Problem: bardzo duża dysproporcja pomiędzy szybkością procesora a szybkością obsługi operacji dyskowych;

Rozwiązanie: dodanie nawet kilku tysięcy instrukcji do kodu systemu operacyjnego w celu zaoszczędzenia kilku ruchów głowic

Sumaryczny czas obsługi operacji dyskowych:


Szeregowanie ruchu głowic - budowa sterownika dysku :

0x08 graphic

Algorytm FCFS szeregowania ruchu głowic

0x01 graphic
First Come First Served (= FIFO) długi czas , nie ma faworyzacji

Algorytm „Najpierw najkrótszy skok” (ang.SSTF disk scheduling)

0x01 graphic
Shortest Seek Time First - rzadko stosowany

Algorytm SCAN - „windowy” (ang. SCAN disk scheduling)

0x01 graphic

wersja najprostsza najczęściej stosowany

Algorytm C-LOOK (w grupie algorytmów windowych)

Gdy głowica przesuwa się tylko w jedną stronę

0x01 graphic

.... - szybki „ruch jałowy”

obciążonych ( gdy jest dużo żądań dysku ) .

- wybór algorytmu zależy też od rodzaju alokacji - gdy stosowana jest
alokacja ciągła - nie ma aż takiego znaczenia

Wielopoziomowa struktura systemu plików

Application programs

Logical File System (logiczny system plików)- analiza nazwy ścieżkowej z wykorzystaniem struktury katalogowej

File Organization Module (moduł organizacji pliku)- dysponując informacją o metodzie alokacji plików, ich położeniu na dysku, oraz żądaniu użytkownika (read (n-ty bajt), generuje adresy bloków dyskowych

Basic File System (podstawowy system plików)- nadzoruje wykonywanie operacji dyskowych (zapis i odczyt)

I/O Control - sterowanie operacjami we/wy (procedury obsługi urządzeń, procedury obsługi przerwań)

Devices - obsługa urządzeń i sterowników

Niezawodność systemu plików

Zarządzanie blokami uszkodzonymi (ang. Bad Block Management)

Dwa rozwiązania problemu bloków uszkodzonych:

Obecnie - problem drugorzędny ze względu na jakość dysków .

Niezawodność systemu plików - Backups

System dysków „zwierciadlanego” odbicia (ang. Disk Mirroring System)

0x01 graphic

Niezawodność systemu plików - Backups -cd.

Problem: zniszczenie systemu plików stanowi często większą szkodę niż zniszczenie całego komputera

Rozwiązanie: składowanie systemu plików na taśmę.

Jak ?

1. Okresowe składowanie systemu plików (np. raz na 2 tygodnie)

Wady:

2. Składowanie okresowe (np. raz w miesiącu) oraz składowanie przyrostowe (ang. incremental dump)

Spójność systemu plików

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Stany systemu plików: (a) spójny (b) brakujące bloki (c) powtarzające się bloki na liście bloków wolnych (d) powtarzające się bloki danych

Sprawdzanie spójności systemu plików - UNIX

Po co ? Kiedy ?

Jak ?

Etapy pracy programu fsck obejmują sprawdzanie:

Sprawność systemu plików

Problem:

Operacja dostępu do danych w pliku wymaga ich sprowadzenia do pamięci operacyjnej, gdzie proces może je testować, zmieniać, po czym zażądać ponownego ich zapisania do systemu plików.

Czytanie i pisanie bezpośrednio z/na dysk podczas wszystkich operacji dostępu do plików jest niemożliwe ze wzgl. na to, że czas reakcji i przepustowość systemu byłyby bardzo niskie (mała szybkość transmisji dyskowych)

Rozwiązanie:

Minimalizacja dostępów do dysku przez utrzymywanie puli wewn. buforów zwanych podręczną pamięcią buforową (buffer cache) które zawierają dane z ostatnio używanych bloków dyskowych.

Uwaga ! Podręczna pamięć buforowa jest strukturą programową, której nie należy mylić ze sprzętowymi pamięciami podręcznymi (procesora i dysków), które przyśpieszają odwołania do pamięci.

Sprawność systemu plików - buforowanie

0x01 graphic

Zasady buforowania

Bloki dyskowe aktualnie wykorzystywane są utrzymywane w pamięci buffer cache - dane w jednym buforze odpowiadają danym z logicznego bloku dyskowego

Zasady buforowania

Wykonywanie operacji read i write

  1. Znajdź adres bloku dyskowego, który zawiera jednostkę X

  2. Przekopiuj zawartość tego bloku do bufora w pamięci głównej (jeśli blok się tam jeszcze nie znajduje)

  3. Przekopiuj jednostkę X z bufora do zmiennej programowej X

Zasady buforowania

Wykonywanie operacji read i write

  1. Znajdź adres bloku dysk. zawierającego jednostkę X

  2. Przekopiuj zawartość tego bloku do bufora w pamięci głównej (jeśli ten blok się tam jeszcze nie znajduje)

  3. Przepisz jednostkę X ze zmiennej programowej X do właściwej lokalizacji w buforze

  4. Zapisz na dysk uaktualniony blok z bufora (albo w trybie natychmiastowym, albo z opóźnieniem)

T1: read(X); T2: read(X);

X := X - N; X := X + M;

write(X); write(X);

read(y);

Y := Y + N;

write(Y);

Zasady buforowania - cd.

0x01 graphic

Obszar buforowy ma postać listy łączonej - do zarządzania wykorzystujemy same nagłówki

Zasady buforowania - cd.

Stan bufora jest kombinacją następujących warunków:

Algorytm zarządzania pulą buforów - LRU

Oznacza to, że po przydzieleniu bufora na potrzeby bloku dyskowego nie można użyć tego bufora do przechowywania innego bloku dopóty, dopóki wcześniej nie zostaną użyte wszystkie pozostałe bufory

Zasady buforowania - cd.

0x01 graphic

Algorytmy zapisu / odczytu

Moduły jądra przewidują zapotrzebowanie na kolejne bloki dyskowe, gdy proces czyta plik sekwencyjnie - jest to realizowane w następujących krokach:

Algorytmy zapisu / odczytu - cd.

Czytanie bloku z wyprzedzeniem (ang. block read-ahead) jest wykonywane w celu poprawy wydajności - blok, który może być za chwilę potrzebny będzie już w pamięci buforowej (! problem metody alokacji)

Czytanie bloku z wyprzedzeniem jest realizowane w trybie asynchronicznym, w następujących krokach:

Algorytmy zapisu / odczytu - cd.

Algorytm zapisu zawartości bufora do bloku dyskowego:

Algorytmy zapisu / odczytu - zapis opóźniony

Zapis opóźniony - sytuacja, kiedy jądro nie zapisuje danych na dysk natychmiast po ich modyfikacji

Sprawność systemu plików - cd.

1. Problem zapisu na dysk bloków ważnych z punktu widzenia spójności systemu plików:

________________________________________

2. Alokacja i - węzlów w systemie UNIX

Sprawność systemu plików - cd.

0x01 graphic

Dostęp do bloków pliku wymaga wykonania operacji dostępu do bloku i-węzła i następnie do bloków pliku. Można ten średni czas skrócić umiejscawiając i-węzły w połowie talerza dysku (rys (b)).

Powered by ZAK & his C64

mailto:zak@fanthom.math.put.poznan.pl

http://fanthom.math.put.poznan.pl/~zak

_______________________________________________________________________

Systemy plików Zbyszko Królikowski 31

_______________________________________________________________________

Systemy plików Zbyszko Królikowski 121

Struktura i - węzła

Rozmiar pliku

Typ pliku i prawa dostępu

Liczba łączników do pliku

Identyfikator właściciela

Identyfikator grupy

Data utworzenia pliku

...

Data ostat.operacji dostępu

10 bezpośrednich wskaźników bloków

danych

Data ostatniej modyfikacji

Wskaźnik adresowy

pojedynczy pośredni

Wskaźnik adresowy

podwójny pośredni

Wskaźnik adresowy

potrójny pośredni

niebezpieczne

2->1

0->1

missing block

OK

Liczniki poprawne gdy np. dla blok1 in use=1

free=0 lub odwrotnie



Wyszukiwarka