background image

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

ę

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

Ŝ

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.  

 

background image

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

Ŝ

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.  

 

background image

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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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

ą

dropowłokasystem 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 

background image

wspólnych  struktur  danych.  Takie  rozwi

ą

zanie  zapewnia  najwi

ę

ksz

ą

 

efektywno

ść

 systemu. Do podstawowych zada

ń

 j

ą

dra nale

Ŝ

  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.

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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 

background image

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