temat012

Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ...


Zobacz tez:

Spis tresci tematu 1 - Jadro - wprowadzenie

System plikow - wprowadzenie




Struktura
systemu plików na dysku;
blok systemowy i identyfikacyjny;

lista i-wezlów,
blok
danych.





Spis rzeczy:




Wprowadzenie
Wiadomosci ogólne.

Struktura systemu plikow na dysku;
blok systemowy i identyfikacyjny;
blok danych.
i-wezly; lista i-wezlow;

Rozne dodatki

Slowniczek raczkujacego informatyka
porownanie systemow plikow roznych systemow
unixowych.

Bibliografia
Pytania i odpowiedzi



Wprowadzenie.


Plik z punktu widzenia uzytkownika to strumien bajtow, do ktorego mozna sie
dostac otwierajac plik, a nastepnie cos do niego zapisac, odczytac, zamknac,
skasowac. Dostep do takiego pliku okresla jego nazwa. Lecz wiadomo, ze takie
podejscie ze strony systemu jest nierealne. Nazwa pliku to tylko interfejs,
umozliwiajacy prace z plikami. My podajemy nazwe, otrzymujemy numerek i na tym
numerku operujemy, a system wykonuje za nas czarna robote, tzn. np. sprawdza,
czy mamy dostep do tego pliku, itd.







Wiadomosci ogólne.


Dane na dysku fizycznie sa pamietane w blokach o dlugosci z reguly 512
B, 1KB, 2KB, 4KB (wielokrotnosc 512 bajtow - dlugosci sektora na twardym
dysku).


W systemie UNIX na dysku znajduja sie tylko pliki. Katalog tez jest
plikiem, ale specjalnym. Urzadzenia (drivery) tez sa plikami specjalnymi.
Kazdy taki plik ma swoj typ, ktory ogranicza dostep do takiego pliku (np.
nie mozna skopiowac pliku katalogu).Tak wiec mowiac "plik" - mam na mysli
katalog, plik specjalny, lacze itp.


Jadro komunikuje sie z systemem plikow (a nie z fizycznym urzadzeniem) przez
program obslugi urzadzenia (driver). Dostep do
poszczegolnych urzadzen odbywa sie poprzez numer urzadzenia
(traktowanego jako urzadzenie logiczne) dla kazdego unikalny. Takie
rozwiazanie pozwala na ujednolicony dostep do systemow plikow zapisanych na
roznych urzadzeniach blokowych (twarde dyski, CD-romy i in.) i jest stosowane
we wlasciwie wszystkich dzisiejszych systemach operacyjnych.









Struktura systemu plików na dysku.

DYSK




Boot block (blok systemowy)
Super block (blok identyfikacyjny)
tablica i-wezlow
bloki danych







Na dysku mozna znalezc (w kolejnosci rosnacych blokow)




blok systemowy (boot block)
blok identyfikacyjny (super block)
lista i-wezlow
bloki danych


Struktury utrzymujace dane o pliku.
Jadro systemu utrzymuje globalna tablice
plikow
, globalna tablice i-wezlow oraz kazdy proces
dostaje swoja wlasna tablice deskryptorow plikow uzytkownika.


1 plik (i zwiazany z nim i-wezel), moze miec kilka nazw; jedna otrzymuje przy
tworzeniu, reszta nazw to tzw. linki.








Blok systemowy i identyfikacyjny.

Blok systemowy (boot block) jest polozony na poczatku systemu plikow, zawiera
dane o dysku oraz tzw. boot-strap code, czyli program ladujacy,
lub jest pusty.




Blok identyfikacyjny (super block) dane co do rozmiaru systemu plikow
(ilosc blokow), podzial na partycje, w niektorych systemach bitmape
zajetosci blokow na dysku, lub gdzie jej szukac, itp.



Rozmiar bloku systemowego oraz identyfikacyjnego jest staly. (patrz
porownanie systemow plikow)


Blok danych.

Bloki danych to pozostale bloki (nie uzywane przez system w celach
zarzadzania systemem plikow) sluzace do bezposredniego trzymania danych.
Jeden blok moze nalezec tylko do jednego pliku, lub byc wolny. Informacja
o zajetosci bloku jest zakodowana w specjalnej liscie, lub w FAT (File
Allocation Table).W linuxie jest to lista wolnych blokow (utrzymywana na
dysku>. Poniewaz piszac do pliku (tylko wtedy chcemy miec nowy wolny blok)
jadro wybiera pierwszy wolny blok na dysku, to taka struktura danych jest wydajna
czasowo. Po zapisie lista jest uaktualniana.






I-wezly; lista i-wezlow.

Kazdemu plikowi na dysku odpowiada i-wezel (wezel indeksu). I-wezly
trzymane sa na dysku zaraz za boot-block'iem - blokiem systemowym, blokiem
identyfikacyjnym, a przed blokami danych w tablicy i-wezlow (w
Linuxie tablica ta ma dlugosc 3071 blokow, przy czym na 1 bloku znajduje
sie wiele i-wezlow - zalezy to od rozmiaru bloku).W Linuxie 2.0 i-wezel glownego katalogu ("/") ma numer 2.

W innych systemach i-wezly moga byc trzymane w specjalnych
listach lub drzewach. (oczywiscie tez na dysku). Wtedy ilosc zajmowana przez i-wezly zalezy tylko od
ilosci plikow na dysku, spowalnia jednak (bez zastosowania specjalnych
struktur danych) przeszukiwanie takiego systemu.


Zarzadzanie i-wezlami.


Utworzenie nowego pliku tworzy nowy i-wezel. Gdy plik
jest otwarty, jego i-wezel jest przechowywany w pamieci operacyjnej. Przy
zamykaniu pliku jego i-wezel jest zapisywany na dysk.




Jadro identyfikuje pliki poprzez indeks w tablicy deskryptorow plikow
uzytkownika. Indeks ten nazywamy deskryptorem pliku. Pliki o
derskryptorach 0 i 1 zwiazane sa z tzw. standardowym wejsciem - wyjsciem.
Poniewaz pliki trzymane sa w tablicy plikow, istnieje maksymalna liczba
otwartych plikow: w Linuxie 2.0 - 255


Sposob dostepu do plikow przez system:



nazwa pliku -> open() -> deskryptor pliku
|
|
|
v
----------------------------------------------------------------
| Schemat dostepu do i-wezlow |
| |
| --- --- --- |
| | . |-------- | | | | |
| |---| | |---| |---| |
| | . |---------======>| . |--------------->| . | |
| |---| |---| |---| |
| | . |--------------->| . |-------- | | |
| |---| |---| | | | |
| | | | | | |---| |
| | | | | ------>| . | |
| | | | | |---| |
| | | | | | | |
| --- --- --- |
| |
| Tablica Tablica plikow tablica i-wezlow |
| deskryptorow |
| plikow |
| uzytkownika |
----------------------------------------------------------------
|
|
v
.-------------.
| i-wezel pliku |
'-------------'



Rozmiar listy
i-wezlow jest okreslony przy instalowaniu systemu plikow.









Bibliografia

l Maurice J. Bach "Budowa systemu operacyjnego UNIX"
l niektore pliki zrodlowe
l wlasna wiedza na temat innych systemow operacyjnych (Amiga Kickstart
3.0)






Poczatek |
Wprowadzenie |
Struktura systemu plikow |
blok systemowy i identyfikacyjny |
i-wezly |
blok danych. | slowniczek









Rozne dodatki.



Slowniczek raczkujacego informatyka.



blok - kilka sektorow (na ogol 1-16) polaczonych razem, w celu
zmniejszenia ilosci zlecen operacji na urzadzeniach blokowych.

deskryptor pliku - liczba calkowita
okreslajaca plik, na ktorym dzialamy. Dokladniej okresla indeks polozenia
w tablicy deskryptorow plikow uzytkownika.

i-wezel - struktura utrzymujaca wszelkie
dane o polozeniu pliku na dysku (sama tez jest zapisana na dysku w
tablicy i-wezlow), a wiec:

typ pliku
rozmiar w bajtach (< 4GB w Linuxie 2.0), ilosc blokow dyskowych zajmowanych przez
plik
czasy: utworzenia, ostatniego dostepu i skasowania
prawa dostepu do pliku
informacje, gdzie na dysku leza bloki reprezentujace plik (zawartosc
pliku>.


link - pomocnicza, dodatkowa nazwa pliku pozwalajaca na szybkie
dotarcie do pliku, ktory jest w innym kaatalogu lub na innym dysku (na
innym komputerze). Moze byc dowolna - przy robieniu linka (linki?)
okreslamy nazwe i plik docelowy.

plik - strumien bajtow mozliwych do czytania
jeden po drugim (lub pisania). ma swoja dlugosc i atrybuty, np. plik tylko
do czytania; atrybuty te sa oddzielne dla wlasciciela pliku, jego grupy,
wszystkich uzytkownikow. (to znaczy, ze kazda grupa moze mniec rozne prawa
do tego samego pliku). System operacyjny udaje taki model na urzadzeniach
blokowych.

sektor - najmniejsza jednostka zapisu na dysku mieszczaca z reguly 512
bajtow.

tablica deskryptorów plików
uzytkownika - tablica lokalna dla kazdego procesu. W niej dla
kazdego otwartego pliku system trzyma wskazniki do odpowiednich wpisow w
tablicy plikow.

tablica plikow - struktura globalna
utrzymywana przez jadro. ZXawiera dane o otwartych plikach. W niej znajduja sie dane m.
in. gdzie w tablicy i-wezlow szukac iwezla przynaleznego do danego pliku, a takze informacje o miejscu, od ktorego rozpoczac
czytanie lub pisanie. Jadro wpisuje w te tablice towy wpis podczas
otwierania pliku.

urzadzenie blokowe - urzadzenie, z ktorego mozemy odczytywac i
zabisywac bloki jako najmniejsza niepodzielna porcje danych - sa to dyski
twarde, stacje dyskow elastycznych (ale nie drukarki, terminale, z ktorych
mozemy odczytywac lub zapisywac bajt po bajcie).





Pytania i odpowiedzi

lJak dziala MMU (Memory Management Unit - Jednostka zarzadzania
pamiecia), jak sprzetowo jest generowane przerwanie zmiany kontekstu (i
jak system ustawia czas nastepnego przerwania)?


Odp. na pyt. 1: NIe jestem inzynierem, ale z tego co wiem MMU daje m. in. mozliwosc
"przemapowania" adresow i generowanie przerwan, jesli adres nie istnieje. W
ten sposob mozna emulowac tzw. maszyne wirtualna, tzn. kazdy uzytkownik ma
wlasna kopie komputera, na ktorym pracuje, i ma wrazenie, ze jest sam, bo
ma do dyspozycji caly komputer (pozornie), a nie tylko moze zobie zdalnie
uruchamiac procesy.
Odwolanie sie do nieistniejacego adresu powoduje
wystapienie bledu przekroczenia dostepnych segmentow pamieci.


Odp. na pyt. 2: J. w., ale z tego co wiem, kazdy hardware ma mozliwosc
generowania przerwan poprzez wyzerowanie sie odp. licznika. Ustawiamy
licznik na okreslona wartosc, puszczamy go i czekamy na przerwanie (oczywiscie musi byc ustalona
procedura obslugi przerwania).lCo to znaczy, ze proces spi z flaga TASK_INTERRUPTIBLE i TASK
UNINTERRUPTIBLE?


Odp.:

TASK_INTERRUPTIBLE - z chwila nadejscia sygnalu do spiacego
procesu, proces jest budzony (aby ustawic kontekst dla tego procesu),
obslugiwany jest sygnal.


TASK_UNINTERRUPTIBLE - proces nie jest budzony przy nadejsciu sygnalu.











Porownanie przykladowych
systemow plikow: Minix FS (1992), Xenix FS (1992), SystemV
FS(1993), Coherent FS(1993).


Cechy wspólne:




    jeden blok systemowy (boot block);


    jeden blok indentyfikacyjny (super block);
    oddzielne obszary fizyczne na dysku wydzielone dla i-wezlow oraz
    dla katalogow i danych;






    MinixXenixSystemVCoherent
    wielkosc bloku 10241024 (512) 1024 (512)512
    zapis slowa "short"0 10 10 10 1
    zapis slowa "long"0 1 2 30 1 2 30 1 2 32 3 0 1
    numeracja i-wezlashortshortshortshort
    i-wezel nie istniejacy0000
    i-wezel korzenia12 22
    max twardych dowiazan250????>=10000
    zarzadzanie i-wezlamibitmap zaj.pamiec podreczna wolnych i-wezlow


    zarzadzanie blokami bitmap zaj."lista" wolnych blokow

    polozenie bloku
    inentyfikacyjnegoblok 1
    (1024..2047)
    blok 1
    (1024..2047)blok 1
    (512..1023)blok
    1
    (512..2047)
    rozmiar i-wezla(/blok)32(32)64(16)64(16) 64(8)
    rozmiar katalogu(/b)16/32 (64/32) 16 (64) 16 (64)16 (32)




    Poczatek |
    Wprowadzenie |
    Struktura systemu plikow |
    blok systemowy i identyfikacyjny |
    i-wezly |
    blok danych. |
    slowniczek



    Opracowal
    Jakub Husak

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • strefamiszcza.htw.pl
Copyright (c) 2009 Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ... | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.