44) Przydział pamięci dyskowej: listowy i indeksowy
System plików pełni w systemie operacyjnym rol
ę
pami
ę
ci trwałej. Informacje
zapisane w pami
ę
ci trwałej nie s
ą
gubione mi
ę
dzy kolejnymi uruchomieniami
systemu. Informacje przechowywane w systemie plików s
ą
pogrupowane w pliki i
katalogi.
Metody przydziału miejsca na dysku
Przydział ci
ą
gły
Przydział ci
ą
gły to najprostsza, ale i najgorsza metoda przydziału miejsca na dysku.
Ka
ż
dy plik zajmuje na dysku spójny obszar zło
ż
ony z kolejnych bloków. Metoda ta
jest zła, gdy
ż
wielko
ść
pliku mo
ż
e si
ę
zmienia
ć
w czasie. Je
ż
eli nie b
ę
dziemy w
stanie wydłu
ż
y
ć
pliku, a na dysku b
ę
dzie wolne miejsce, to oznacza
ć
to b
ę
dzie
konieczno
ść
przemieszczenia plików na dysku. Jest to bardzo czasochłonne. Z
drugiej strony informacja o rozmieszczeniu pliku na dysku jest bardzo prosta:
wystarczy pami
ę
ta
ć
pocz
ą
tek i rozmiar pliku.
Przydział listowy i FAT
Przydział listowy polega na tym,
ż
e bloki tworz
ą
ce jeden plik s
ą
poł
ą
czone w list
ę
jednokierunkow
ą
. Ka
ż
dy z bloków zawiera numer nast
ę
pnego bloku tworz
ą
cego plik.
Dzi
ę
ki temu bloki pliku mog
ą
by
ć
rozmieszczone dowolnie. Plik jest identyfikowany
przez pierwszy swój blok. Wad
ą
takiego rozwi
ą
zania jest bardzo wolny dost
ę
p
swobodny do pliku. Zmiana pozycji w pliku mo
ż
e wymaga
ć
przejrzenia bloków
tworz
ą
cych plik od pocz
ą
tku pliku.
Pewnym usprawnieniem przydziału listowego jest zebranie wszystkich wska
ź
ników
tworz
ą
cych list
ę
razem, w jednej tablicy. Tablic
ę
tak
ą
nazywamy FAT (ang. file
allocation table). Co prawda nadal dost
ę
p do dowolnego miejsca w pliku mo
ż
e
wymaga
ć
liniowej liczby kroków, ale liczba bloków dyskowych, które nale
ż
y odczyta
ć
jest du
ż
o mniejsza (zwłaszcza, je
ś
li plik zajmuje kolejne bloki na dysku). W praktyce,
obszary tablicy FAT dotycz
ą
ce przetwarzanych wła
ś
nie plików s
ą
przechowywane w
buforze, co eliminuje operacje dyskowe zwi
ą
zane z dost
ę
pem swobodnym. Nadal
pozostaje jednak liniowy koszt odnalezienia szukanego elementu na li
ś
cie.
Przydział indeksowy
Przydział indeksowy polega na zebraniu numerów bloków tworz
ą
cych plik w jednym
bloku, tzw. bloku indeksowym. Plik na dysku jest reprezentowany przez numer bloku
indeksowego.
Przy zastosowaniu takiej strategii, dost
ę
p do dowolnego miejsca w pliku wymaga co
najwy
ż
ej dwóch operacji dyskowych. Jednak wielko
ść
pliku jest ograniczona.
Przykładowo, je
ż
eli bloki dyskowe maj
ą
po 4kB, a numer bloku zajmuje 32bity, to
maksymalna wielko
ść
pliku to 1024*4kB = 4MB.
Przydział indeksowo-listowy
Przydział indeksowo listowy to poł
ą
czenie podej
ś
cia listowego i indeksowego.
Numery kolejnych bloków dyskowych zawieraj
ą
cych tre
ść
pliku s
ą
zebrane w bloku
(lub blokach) indeksowych. Je
ż
eli numery bloków tworz
ą
cych plik nie mieszcz
ą
si
ę
w
jednym bloku indeksowym, to ostatni numer w tym bloku wskazuje na kolejny blok
indeksowy itd. Tak wi
ę
c bloki indeksowe tworz
ą
list
ę
jednokierunkow
ą
. Plik jest
identyfikowany przez numer pierwszego bloku indeksowego.
Przykładowo, je
ż
eli bloki dyskowe maj
ą
po 4kB, a numer bloku zajmuje 32bity, to
jeden blok indeksowy mo
ż
e zawiera
ć
do 1023 numerów bloków z tre
ś
ci
ą
pliku i jeden
numer kolejnego bloku indeksowego. Je
ż
eli mamy plik wielko
ś
ci 42MB, to b
ę
dziemy
mieli 11 bloków indeksowych. Dost
ę
p do ko
ń
cowych fragmentów pliku mo
ż
e
wymaga
ć
nawet 12 operacji dyskowych.
Takie podej
ś
cie w najgorszym przypadku b
ę
dzie działało tak samo jak FAT. Je
ś
li
jednak plik nie jest zapisany w kolejnych blokach dyskowych, to numery bloków
tworz
ą
cych plik b
ę
d
ą
zebrane razem w blokach indeksowych, a w tablicy FAT ich
numery b
ę
d
ą
rozsiane.
Przydział indeksowy wielopoziomowy
Wielopoziomowy przydział indeksowy polega na tym,
ż
e bloki indeksowe wraz z
blokami dyskowymi zawieraj
ą
cymi tre
ść
pliku tworz
ą
drzewo o okre
ś
lonej wysoko
ś
ci.
Na przykład, przy indeksowaniu dwupoziomowym, główny blok indeksowy
(pierwszego poziomu) zawiera numery bloków indeksowych drugiego poziomu, które
z kolei zawieraj
ą
numery bloków tworz
ą
cych tre
ść
pliku. Je
ż
eli bloki dyskowe maj
ą
po 4kB, a numer bloku zajmuje 32 bity, to stosuj
ą
c indeksowanie dwupoziomowe
wielko
ść
plików jest ograniczona przez 4GB, a przy indeksowaniu trójpoziomowym
przez 4TB.
Liczba odwoła
ń
do dysku potrzebnych do dostania si
ę
do dowolnego miejsca na
dysku jest równa liczbie poziomów indeksowania plus jeden.
45) Cechy tradycyjnego systemu unixowego
•
wielodost
ę
pny pozwala na logowanie si
ę
do systemu kilku u
ż
ytkowników w
tym samym czasie, a ka
ż
dy u
ż
ytkownik współdziała z systemem poprzez swój
własny terminal
•
wielozadaniowy pozwala na wykonywanie kilku zada
ń
w tym samym czasie -
gdy jedno zadanie jest wykonywane, mo
ż
na pracowa
ć
nad nast
ę
pnym
•
główne cz
ęś
ci: j
ą
dro, powłoka, system plików i programy u
ż
ytkowe. J
ą
dro
jest programem, który uruchamia inne programy i zarz
ą
dza urz
ą
dzeniami,
takimi jak dyski czy drukarki.
Powłoka jest interfejsem u
ż
ytkownika. Odbiera polecenia wydawane przez
u
ż
ytkownika i wysyła je do j
ą
dra w celu wykonania. System plików okre
ś
la
porz
ą
dek, w jakim pliki s
ą
zachowane na urz
ą
dzeniu takim jak dysk. Pliki s
ą
umieszczone w katalogach. Ka
ż
dy katalog mo
ż
e zawiera
ć
dowoln
ą
liczb
ę
podkatalogów, w których przechowywane s
ą
pliki. J
ą
dro, powłoka i system plików
stanowi
ą
razem podstawow
ą
struktur
ę
systemu operacyjnego. Dzi
ę
ki tym trzem
elementom mo
ż
na uruchamia
ć
programy, zarz
ą
dza
ć
plikami i współdziała
ć
z
systemem
•
przydział pami
ę
ci fizycznej (pami
ęć
fizyczna – faktyczny adres komórki w
pami
ę
ci) poszczególnym procesom,
•
odwzorowanie logicznej przestrzeni adresowej procesu na fizyczn
ą
przestrze
ń
adresow
ą
pami
ę
ci (adres logiczny - adres wytworzony przez procesor w
wyniku wykonania rozkazu programu nosi nazw
ę
),
•
ochrona zawarto
ś
ci pami
ę
ci,
•
współdzielenie obszarów pami
ę
ci przez ró
ż
ne procesy.
•
j
ą
dra systemów Unix s
ą
monolityczne. Chocia
ż
mo
ż
na w nich wyró
ż
ni
ć
funkcjonalne cz
ęś
ci składowe, to stanowi
ą
one jeden program i korzystaj
ą
ze
wspólnych struktur danych. Takie rozwi
ą
zanie zapewnia najwi
ę
ksz
ą
efektywno
ść
systemu. Do podstawowych zada
ń
j
ą
dra nale
ż
y
•
zarz
ą
dzanie procesami,
•
zarz
ą
dzanie pami
ę
ci
ą
,
•
zarz
ą
dzanie plikami,
•
zarz
ą
dzanie urz
ą
dzeniami wej
ś
cia-wyj
ś
cia.
•
obsługa ró
ż
nych typów systemów plików,
•
obsługa ró
ż
nych protokołów sieciowych,
•
obsługa ró
ż
nych formatów plików wykonywalnych,
•
wykorzystanie współdzielonych bibliotek.
46) Wsparcie sprzętowe dla wielozadaniowych
systemów operacyjnych.
Wielozadaniowo
ść
to organizacja systemu operacyjnego pozwalaj
ą
ca na
kooperatywne
lub
konkurencyjne
wykonywanie
wielu
zada
ń
.
Systemy
wielozadaniowe posiadaj
ą
wbudowane mechanizmy kontroluj
ą
ce aktywne zadania -
mog
ą
przypisywa
ć
im poziomy wa
ż
no
ś
ci i uzale
ż
nia
ć
od nich wielko
ść
mocy
procesora, jaka po
ś
wi
ę
cana jest poszczególnym zadaniom. Wielozadaniowo
ść
nie
byłaby wr
ę
cz niemo
ż
liwa do realizacji gdyby nie wbudowane mechanizmy wsparcia
sprz
ę
towego.
Jedynym dodatkowym urz
ą
dzeniem koniecznym do uruchomienia wielozadaniowego
systemu operacyjnego jest licznik zliczaj
ą
cy interwały czasowe. Ka
ż
dy nawet
najprostszy system operacyjny musi by
ć
taktowany, aby mógł odlicza
ć
czas
pozostały do zako
ń
czenia jednego a rozpocz
ę
cia innego zadania. Moduły te s
ą
wbudowane w ka
ż
dy nowoczesny procesor.
Jednak w celu uzyskania systemu komputerowego o du
ż
ym stopniu niezawodno
ś
ci
nowoczesne procesory posiadaj
ą
inne cechy wspieraj
ą
ce implementacje i działanie
systemów operacyjnych. S
ą
to:
a) tryby pracy:
o
uprzywilejowany (kernel/supervisor mode),
o
chroniony (protected mode), w chronionym trybie pracy niektóre
potencjalnie niebezpieczne instrukcje procesora s
ą
niedost
ę
pne, a
próba wywołania ich spowoduje wyst
ą
pienie przerwania
(obsługiwanego dalej przez system). Nawi
ą
zuj
ą
c do budowy systemu
operacyjnego, wszelka aktywno
ść
zada
ń
(aplikacji) u
ż
ytkownika oraz
powłoki odbywa si
ę
w chronionym trybie pracy (protected mode). J
ą
dro
systemu operacyjnego pracuje w trybie uprzywilejowanym (kernel
mode).
b) jednostki zarz
ą
dzania i ochrony pami
ę
ci
Działanie tych mechanizmów opiera si
ę
na wsparciu sprz
ę
towym
dostarczanym przez kontrolery pami
ę
ci wbudowane w procesor (lub
chipset).
Ogólna zasada polega na wydzielaniu poszczególnym procesom
obszarów pami
ę
ci do wył
ą
cznego u
ż
ytku. Oznacza to,
ż
e tylko dany
proces mo
ż
e pisa
ć
lub czyta
ć
tylko do/z danego obszaru. Próba zapisu
odczytu z nieprzydzielonego procesowi obszaru ko
ń
czy si
ę
wywołaniem przerwania przerywaj
ą
cego wykonywanie zadania.
Technicznie ochrona realizowana jest poprzez podział obszaru pami
ę
ci
na segmenty i strony. Zadanie u
ż
ytkownika, które jest aktywowane w
danej chwili przywraca swój kontekst poprzez ustawienie odpowiednich
rejestrów CPU jak i równie
ż
rejestrów kontrolnych jednostki
zarz
ą
dzania pami
ę
ci
ą
.
Dzi
ę
ki ochronie pami
ę
ci awaria jednego zadania i próba bł
ę
dnego
nadpisana przestrzeni adresowej innych zada
ń
jest niemo
ż
liwa. W ten
sposób s
ą
równie
ż
chronione dane potrzebne systemowi operacyjnemu
do działania, przez co mo
ż
na zatrzyma
ć
uszkodzone zadanie.
Aktywno
ść
systemu operacyjnego jak i elementów typu sterowniki
sprz
ę
towe odbywa si
ę
w trybie kernel w którym ochrona pami
ę
ci nie
działa lub jest mocno ograniczona (zale
ż
nie od rodzaju CPU). Wobec
tego jest mo
ż
liwe awaryjne zatrzymanie systemu na skutek bł
ę
dnego
działania kodu systemu operacyjnego lub sterowników sprz
ę
towych.
c) kontrolery przerwa
ń
, gdy licznik taktuj
ą
cy system operacyjny wyliczy
żą
dany
interwał czasowy informacja o tym zdarzeniu przekazywana jest do procesora przy
pomocy przerwania. Podobnie informacje na temat innych zdarze
ń
przekazywane s
ą
do procesora a w ten sposób do systemu operacyjnego przy pomocy mechanizmu
przerwa
ń
.
d) specjalistyczne akceleratory sprz
ę
towe słu
żą
ce do przy
ś
pieszania pewnych
typowych czynno
ś
ci wykonywanych przez systemy operacyjne. Ta funkcjonalno
ść
jest rzadko spotykana i zazwyczaj spotyka si
ę
j
ą
we wbudowanych systemach RTOS