T.F. WYKŁAD 7 Modele optymalizacji wykorzystania pamięci przez

Transkrypt

T.F. WYKŁAD 7 Modele optymalizacji wykorzystania pamięci przez
T.F.
WYKŁAD 7
Modele optymalizacji wykorzystania pami ci przez procesy:
(1)
Ładowanie dynamiczne (ładowanie podprogramu na danie) – proces składa si z zestawu
podprogramów i z głównej cz ci steruj cej. Ka dy podprogram jest wprowadzany do pami ci jedynie
wtedy gdy nast piło do niego odwołanie. Przy wprowadzaniu podprogramu do pami ci musz by
odpowiednio zwi zane adresy (z programem głównym). Zastosowanie ładowania dynamicznego ma sens
gdy program nie potrzebuje całego kodu do normalnej pracy (powinien on by podzielony na funkcje które
mog by ładowane po pierwszym odwołaniu do nich). Dzi ki niemu oszcz dza si pami gdy nie ma w
niej f-cji które nie były nigdy u yte.
(2)
Ł czenie dynamiczne – kod wspólny dla wielu procesów umieszcza si w osobnym pliku w pami ci
masowej. U ywanie tego kodu jest mo liwe po załadowaniu biblioteki do pami ci. Czyni si to
jednokrotnie poniewa inny proces daj cy f-cji z tej biblioteki wykorzystuje wcze niej załadowany kod
(np.: w Windows z załadowan bibliotek skojarzony jest licznik procesów które z niego korzystaj gdy
dochodzi nowy to licznik++, gdy przestaje licznik - - gdy licznik==0 to biblioteka mo e by usuni ta z
pami ci).
zalety:
programy ładuj si szybciej, zabieraj mnie miejsca na dysku (kod wspólny jest raz) maleje ilo
potrzebnej pami ci operacyjnej.
wady:
Biblioteki takie powinny znajdowa si we wspólnym katalogu, inaczej inne programy nie b d wiedziały
gdzie si te pliki znajduj i dlatego b d je instalowa samemu. Porozumiewanie z bibliotek DLL
odbywa si za pomoc nazw bibliotek które s zamieniane przez system na nazw pliku, programy
odwołuj si do funkcji jawnie przez ich nazwy mimo, e biblioteki te s ju skompilowane. Bł dy
bibliotek DLL wyst puj gdy programy odwołuj si do funkcji których nie ma lub maj inna składni .
Musz one by zgodne ze swoimi wcze niejszymi wersjami inaczej programy dostosowane do starych
wersji wykładaj si .
(3)
Nakładkowanie – kod procesu dzieli si na cz
stale obecn w pami ci i zbiór cz ci wymienialnych
(nakładek). Proces zajmuje w pami ci obszar potrzebny do działania cz ci stałej oraz najwi kszej z
nakładek. Do tego drugiego obszaru ładowane s wymienne cz ci kodu w zale no ci która z nich jest
aktualnie potrzebna. Sposób ten sprawdza si gdy program wykonuje tylko kilka niezale nych f-cji.
U ywa si go w systemach z ograniczon pami ci operacyjn . Przy konstrukcji takiego programu f-cja
cz sto u ywana nie powinna by w cz ci głównej, inaczej nakładka zawieraj ca t f-cj b dzie zbyt cz sto
ładowana. O zastosowaniu tej metody ładowania decyduje programista, a system operacyjny mo e tylko to
wspiera .
(4)
wymiana – proces który nie jest w sanie aktywnym mo e zosta przy braku pami ci operacyjnej
zeskładowany tymczasowo w pami ci masowej. Zwolnione przez niego miejsce mo e by wykorzystane
przez inne programy. Problem pojawia si gdy program si uaktywni bo musi by ma by wróci do
pami ci operacyjnej. Gdy stare miejsce jest zaj te musi by umieszczony gdzie indziej st d musi pozwala
na dynamiczne wi zanie adresów. Wymian jako ostatni stosował Win 3.11 (bez biblioteki Win32 ).
Strategie przydziału pami ci.
(1)
(2)
(3)
First fit –wybiera si pierwsz wystarczaj co du dziur i zajmuje si jej obszar od pocz tku lub od
ko ca.
Best fit – wybiera si najmniejsz z wystarczaj co du ych dziur( nie analizuje całej pami ci wi c jest
gorszy ale szybszy).
worst fit – wybiera najwi ksz pasuj c dziur . (1) i (2) zastawiaj ogryzki pami ci a to co zostawi te n
mo e si jeszcze gdzie przyda . Jest on rzadko stosowany.
Wszystkie te sposoby cechuj si zewn trzn fragmentacj pami ci na skutek powstawania dziur których nie da
si ju wykorzysta . W przypadku skrajnym suma wolnych obszarów pami ci wystarczyłaby ale nie mo e on
by załadowany bo nie ma 1-go wolnego bloku który by go pomie cił.
19
T.F.
Innym problemem jest fragmentacja wewn trzna. Zapami tuj c blok pami ci 1-go bajta traci si wi cej na
przechowywanie jego adresu i tego czym si je wi e (np.: bloki mog tworzy list czyli ma wska nik na
nast pny). Zajmuje to kilkana cie bajtów dlatego nie opłaca si robi małych bloków gdy zmniejsza si straty
na alokacj .
Na fragmentacj wewn trzn nie ma rady, system operacyjny mo e tylko przydziela pami w wi kszych
blokach (np.: DOS 16- bajtowe (tzw.: paragrafy) dzi ki temu gdy jest tracona pami to na program, a nie na
adres).
Wszystkie te sposoby przydzielaj pami
pami na 2 modele:
1. pami fizyczna;
2. pami logiczna.
w spójnych blokach. Usuwa si to przez stronicowanie. Dzieli ono
Stronicowane powoduje, e programy widz swoj pami jako spójn mimo e s rozsiane w ró nych
miejscach pami ci. Mo e to by tylko realizowane sprz towo bo inaczej ka dy program musiałby tłumaczy
swoje adresy logiczne na fizyczne.
Wsparcie sprz towe stronicowania:
Pami fizyczna podzielona jest na bloki o stałej długo ci zwane stronami (ramkami). Adres ka dego bajta
fizycznej pami ci jest wyra ony przez numer strony i przesuni cie na stronie. Programy widz pami
operacyjn (logiczn ) w ten sam sposób, przy czym numer strony jest poddawany sprz towej translacji na numer
strony fizycznej. Tablica translacji stron(TTS) jest unikalna dla ka dego procesu pracuj cego w systemie.
Bez stronicowania numer strony fizycznej jest taki sam jak numer strony logicznej, a z jego zastosowaniem z
ka dym procesem musi by skojarzona TTS .
Gdy program zaczyna u ywa tej tablicy to TTS jest modyfikowana w sposób przejrzysty dla programu, a wi c
widzi on pami jako spójn , gdy sterowanie dostaje inny proces to aktywuje si jego TTS. Mimo e procesy te
zajmuj te same strony logiczne ( numeracja obu mo e zacz si od 0 bo adres i tak jest tłumaczony) to ich
strony fizyczne s ró ne. Problem z wi zaniem adresów znika (mog by umieszczane od 0 (w pami ci
logicznej) wi c kompilator mo e to miejsce ustali ). Przydział pami ci nast puje dowolnie nie trzeba szacowa
rozmiaru dziur, ani sprawdza czy program si do niej zmie ci Wybiera si tylko n pierwszych wolnych stron i
przydziela je programowi.
Dzi ki temu nie ma fragmentacji zewn trznej, jest natomiast fragmentacja wewn trzna gdy dzieli si pami na
bloki o okre lonym rozmiarze (np.: na procesorze Intel strony maja 4 KB ). Operuje si zawsze na całych
stronach (np.: przesyła je całe mimo e potrzebny jest tylko fragment), mo na zmniejsza strony ale przez to
trzeba wykona wi cej oblicze podczas translacji adresu.
Dodatkowe korzy ci stronicowania:
Mo liwo u ycia stron dzielonych przez ró ne programy. Mo na tego dokona dzi ki tłumaczeniu adresów
logicznych 2 programów ba te same strony fizyczne.
Gdy w programie da si jasno odgraniczy kod programu od danych u ytkownika (np.: UNIX) mo na przy
uruchamianiu kopii programu podczepi si do kodu b d cego w pami ci. Jest to rozwidlanie procesu (tworzy
wykonuj c si współbie nie kopi procesu który go za dał).
Tak samo mo na wykorzystywa załadowane biblioteki DLL modyfikuj c TTS.
Mo liwo u ycia mechanizmu ochrony pami ci (wymaga to wsparcia sprz towego).
Gdy pami jest w blokach łatwo zmieni dost p do strony na jeden ze sposobów r , w, r+w . Skoro robi si
translacj mo na od razu sprawdzi poprawno odwołania. Dzi ki temu programy nie b d mogły robi nic
poza swoj przestrzeni adresow (nie b d mogły innym zmienia danych czy kodu).
Segmentacja jest alternatyw dla stronicowania, ale nie ma takiej pozycji na rynku. Była ona u ywana w
systemach OS/2 procesora 80286 od 80386 jest pełne wsparcie dla stronicowania ze strony procesora.
W Windows był zastosowany po raz pierwszy w wersji 3.11 z bibliotek Win32 S, równolegle był
wprowadzony w NT.
20
T.F.
WYKŁAD 8
Pami wirtualna to koncepcja wykorzystania pami ci wi kszej ni pami operacyjna za pomoc
przezroczystej dla u ytkownika wymiany danych z pami ci masow .
Obecnie pami wirtualna działa dzi ki stronicowaniu na danie.
Przyczyny wykorzystania pami ci wirtualnej:
1. programy zawieraj du y procent kodu i danych nigdy nie wykorzystywany.
2. programy przydzielaj sobie obszary danych wi ksze ni rzeczywi cie potrzebuj (niech programistów
do stosowania dynamicznych struktur danych).
3. kod procesu lub jego dane mog by wi ksze ni pami operacyjna.
Zasada działania stronicowania na danie:
ka da strona jest wyposa ona w bitowy znacznik obecno ci w pami ci operacyjnej. Znacznik zgaszony oznacza,
e strona jest dost pna po załadowaniu z pami ci masowej (obszaru wymiany).
Odwołanie do strony ze zgaszonym znacznikiem wywołuje przerwanie bł du strony. Przerwanie to jest
obsługiwane przez cz
S.O. zwan zarz dc strony. Zarz dca wprowadza zamawian stron do pami ci
operacyjnej i ustawia znacznik jej obecno ci. Nast pnie wznawia przerwany program. Gdy pami jest zaj ta to
trzeba z niej co wywali aby wprowadzi potrzebn stron . Oznacza to, e stronicowanie na danie wykona
jedno z poni szych:
- odczyt;
- zapis i odczyt.
Załó my, e system ma 5 stron pami ci operacyjnej i 3 strony na dysku. Gdy proces chce 4 strony otrzymuje je.
Inny proces chce 3 strony. Otrzymuje 1 z pami ci operacyjnej i 2 z dysku (np.: strony 5 i 6). Nie mo e on
pracowa na tych 2 stronach gdy nie znajduj si one w pami ci operacyjnej. Gdy nast pi odwołanie do której
z nich to wyst puje przerwanie wskazuj ce na system wymiany stron. Tu stwierdza si , e bł d był
spowodowany odwołaniem do strony z pami ci wirtualnej. System wymiany stron znajduje teraz proces który
wywołał przerwanie i i musi wczyta stron do pami ci operacyjnej. Ale pami jest zaj ta (ł cznie 5 stron p1
ma 4 strony p2 ma 1) wi c wywala co na dysk (jest to zrzut) a w tablicy translacji stron zmienia jej znacznik.
wtedy sterowanie wraca do p2 który kontynuuje wykonanie kodu (bo potrzebna strona jest ju w pami ci). aden
z procesów (ani ten co stracił, ani ten co zyskał stron ) nie wie, e co si stało gdy przerwanie odizolowało je
od rzeczywisto ci. Przy braku innej strony post powanie jest analogiczne.
Aby system ten funkcjonował blok wymiany na dysku musi mie zawsze co najmniej 1 wolne miejsce (aby było
gdzie przesła stron z pami ci operacyjnej).
Stronicowanie na danie wymaga wsparcia sprz towego (procesor musi odró nia strony obecne w pami ci od
nieobecnych i w razie potrzeby wywoływa przerwanie. Zostało to wprowadzone w procesorze Inte l80386).
Algorytmy zast powania stron.
Przy wyborze algorytmu wyboru strony do usuni ci na dysk stosuje si 2 kryteria:
1. Prostoty (łatwo wyboru);
2. jak najmniejsza liczba bł dów strony.
algorytm FIFO
do zast pienia wybiera si stron najdłu ej b d c w pami ci
7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
7
7
7
2
2
2
2
4
4
4
0
0
0
1
1
0
0
0
0
3
3
3
2
2
2
3
3
3
3
1
1
1
1
0
0
0
3
3
4
2
2
2
B
B
B
B
B
B
B
B
B
B
0
1
7
0
1
itd...
B
proces ten potrzebuje 7 stron pami ma 3 strony 1 wiersz to numer potrzebnej strony B oznacza e nast pił
bł d strony.
Ł cznie w tym przykładzie wyst piło 15 bł dów strony na 20 odwoła .
zalety algorytmu:
- nieskomplikowany;
- nie wymaga dodatkowego wsparcia sprz towego.
21
T.F.
Wady:
- du a liczba bł dów strony;
- anomalia Belady’ego.
Anomalia Belad’ego wyst puje gdy zapotrzebowanie na pami jest niewiele wi ksze ni dost pna pami .
Polega na zwi kszeniu liczby bł dów strony po zwi kszeniu pami ci operacyjnej.
Przykład:
proces potrzebuje 5 stron w systemie s 2
1
2
3
4
1
2
5
1
2
3
4
5
1
1
1
4
4
4
5
5
5
5
5
5
2
2
2
1
1
1
1
1
3
3
3
3
3
3
2
2
2
2
2
4
4
B
B
B
B
B
B
B
B
B
9 bł dów na 12 mo liwych
i to samo po dodaniu jednej strony:
1
1
2
1
2
B
B
3
1
2
3
B
4
1
2
3
B
1
1
2
3
2
1
2
3
5
5
2
3
B
1
5
1
3
B
2
5
1
2
B
3
5
1
2
B
4
4
1
2
B
5
4
5
2
B
10 Bł dów strony na 12 mo liwych.
algorytm optymalny
Zast puje t stron która najdłu ej nie b dzie u ywana. Do wykonania trzeba zanalizowa przyszły ci g
odwoła . Jest to nieekonomiczne.(gdy mamy stron zast pi to szukamy w ci gu odwoła (nagłówki tablicy) i
wybieramy t do której odwołanie b dzie najpó niej)
7
0
1
2
0
3
0
4
2
3
7
7
7
2
2
2
2
2
2
2
0
0
0
0
0
0
4
4
1
1
1
3
3
3
3
B
B
B
B
B
0
3
2
1
2
0
1
7
0
1
B
9 bł dów na 20
Aby unikn rozpatrywania przyszło ci stosuje si algorytm LRU (least – recently – used). Algorytm ten
zakłada, e najdawniej u ywane strony nie b d ju potrzebne.
7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
7
7
7
2
2
2
2
4
4
4
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
3
3
3
3
3
0
0
0
0
0
0
1
1
1
3
3
3
2
2
2
2
2
2
22
2
2
7
7
7
B
B
B
B
B
B
B
B
B
B
B
B
Algorytm ten nie ma wady Belady’ego i nie wymaga rozpatrywania przyszłych odwoła .
wada:
Algorytm FIFO musi mie rejestr wprowadze do pami ci, wprowadzanie do pami ci trwa długo wi c zmiana w
tym rejestrze nie wydłu a czasu działania.
W tym algorytmie zmiana w rejestrze musi nast powa po ka dym odwołaniu dlatego trwa to długo dlatego
algorytm LRU nie jest stosowany.
22
T.F.
Algorytm wykorzystuj cy bity u ycia:
bity u ycia (odniesienia) – ka da strona jest wyposa ona w bitowy znacznik u ycia, który mo na programowo
zerowa . Bit u ycia zapala si gdy nast pi odwołanie doi strony. Co jaki czas S.O. zbiera bity u ycia i
zapami tuje je, a nast pnie zeruje je. Dzi ki temu ma statystyk u ycia poszczególnych stron. Na ogół u ywa si
rejestrów przesuwnych.
7012 u ywane strony
0304
2303
2120
0
000
100
110
111
1
000
100
010
001
2
000
100
010
101
3
000
000
100
110
4
000
000
100
010
5
000
000
000
000
6
000
000
000
000
7
000
100
010
001
przy ka dym zapami taniu bitów u ycia s one przesuwane o 1 prawo a ostatnia jest usuwany. Najwy sza liczba
wskazuje na stron najcz ciej u ywan (tu strona 0 . Na 2 miejscu jest strona 3 (bo 2 ma w 2 miejscu 0)).
Strona z najmniejsz liczb to kandydat do spadku.
WYKŁAD 9
Zarz dzanie pami ci masow
W systemie musi by prowadzona ewidencja obszarów zaj tych i wolnych, inczej nie byłoby wiaadomo gdzie
zapisa nowe dane .
Sposoby realizacji tego:
mapa bitowa – na dysku zapami tywany jest jego obraz (miniatura) osi ga si to przez:
1. podział dysku na bloki o tej samej wielko ci;
2. zorganizowanie struktury w której 1-mu blokowi odpowiada 1 bit zapami tywany na tym samym dysku;
3. bit zapalony oznacza, e blok jest zaj ty.
Rozmiar mapy bitowej zale y od tego jak bardzo podzielimy dysk np.: gdy ma on 10 GB i bloki 1 KB to
powstanie 10 Mbit bloków dyskowych (1,25 MB). Aby nie trzeba było si ci gle czyta tego obrazu z dysku
powinien on by silnie buforowany.
Na dyskietce 1,44 MB nie da si zapisa tyle małych plików. Maksymalnie mo na zapisa 2880 plików o
rozmiarze 1 bajt ka dy gdy blok dyskowy na dyskietce ma 512 KB, tracony jest wi c obszar bloku w którym
nie ma danych pliku(fragmentacja wewn trzna).
zalety:
- łatwo zbierania statystyki dysku (wystarczy policzy zapalone bity)
- łatwo odró ni wolny obszar od zaj tego
wszystkie systemy (jawnie lub nie wykorzystuj mapy bitowe)
metoda list poł czonych - próbuje usun fragmentacj wewn trzn
Zapami tywany jest tylko adres pierwszego wolnego bloku i jego wielko . Na ko cu tego ( ka dego innego
wolnego bloku ) jest wska nik do nast pnego(adres i rozmiar). Wolne bloki tworz wi c list jednokierunkow .
Wska niki nie zajmuj potrzebnego miejsca gdy znajduj si w blokach nie u ywanych.
zalety:
system pami ta tylko adres jednego bloku
przy zapisywaniu bloku trzeba go tylko usun z listy wolnych bloków
brak fragmentacji wewn trznej(przynajmniej teoretycznie)
wady:
- zastosowanie tego sposoby mogłoby doprowadzi do zapisu pliku do wielu ró nych obszarów, wi c system
działałby wolno
23
T.F.
- nie da si go zastosowa bo nie mo na oszacowa jak szybko b dzie pracował (patrz powy ej)
Przydział miejsca dla plików na dysku
1. Przydział ci gły
Dla ka dego pliku na dysku system musi pami ta miejsce jego pocz tku i rozmiar. Cała informacja zawarta w
pliku jest zgromadzona w spójnej p-ni dyskowej.
wady i zalety:
- szybki dost p do pliku (łatwiej czyta spójny plik ni rozrzucony po całym dysku
- nie ma strat miejsca zwi zanego z obsług wielu fragmentów pliku (nie trzeba pami ta gdzie s )
- nie mo na sensownie okre li miejsca dla nowego pliku(np.: gdyby plik B zapisa za plikiem A to w
przypadku rozrostu pliku A musiałby on by na nowo zapisany cały (aby był spójny, bo bezpo rednio za nim jest
plik B wi c tu nie mo na go zapisa , inaczej mo na zapisa przez bisekcj , (podział wolnego obszaru na pół i 1
połowa na stary plik druga na nowy plik).
System ten jest stosowany na płytach CD-ROM bo zapisu dokonuje si tylko raz (przed nagraniem system
układa pliki aby były spójne). Gdyby płyty nie były zapisywane w sposób ci gły to opó nienia czasowe
uniemo liwiałyby odczyt. Dzi ki oszcz dno ci miejsca na płycie CD mo na zapisa du o wi cej ni na dysku
twardym bez przydziału ci głego. Rozmiar bloku na CD - 2 KB. Obszar zapami tywania poło enia mniejszy bo
pami ta si tylko pocz tek i rozmiar.
2. Przydział listowy
Pami masowa jest podzielona na bloki, ka dy z nich składa si z 2 cz ci:
- zawieraj c dane pliku
- wska nik do nast pnego bloku pliku.
System zapami tuje jedynie koordynaty pliku i jego długo . Mimo i system dysponuje tylko adresem 1-go
bloku to po li ci trafi do reszty.
(Jest to najstarsza wersja tego systemu)
Wada:
aby dosta si na koniec pliku trzeba go przeczyta w cało ci(bo lista). Aby usun plik tak e trzeba usuwa
kolejno wszystkie bloki.
Aby tego unikn adresy bloków pliku wyodr bniono i zapisano w osobne miejsce na dysku. Adresy te mówi
jak poł czone s bloki dysku. Ten obszar to File Allocation Table (FAT).
Pobierany jest on do pami ci, tam operuje si na nim. Pó niej jest on znów zapisywany. FAT jest
wykorzystywany w Windows NT itd. W FAT mo e by adres bloku (blok zaj ty i jest kontynuacja), EOF (zaj ty
bez kontynuacji), inny znak( wolny).
W DOS EOF=-1, wolny blok = 0.
Mapa bitowa nie jest tu potrzebna bo jej f-cje pełni FAT.
bł dy plików FAT:
bł d skrzy owanych plików – w FAT ró ne pliki wskazuj na te same obszary pami ci. Zmieniaj c 1 plik
zmieniamy drugi, usuwaj c pierwszy zwalniamy te bloki 2-go (wtedy gdy inny plik dostanie to miejsce to
wskazuje na nie wraz z plikiem 2 wi c jest to dziedziczone). Mo na je rozdzieli kopiuj c wspólny fragment i
przydzielaj c ka demu osobny. Łagodniejsz wersj skrzy owania plików jest skrzy owanie z samym sob
(dalszy blok wskazuje na poprzedni) wówczas w mo na wstawi EOF na tam gdzie si odwołuje do
wcze niejszych bloków i ustawi długo .
Bł d nieprawidłowego odniesienia – nast puje odwołanie do adresu spoza FAT(np. po podziale dysku bez
przenoszenia plików).Mo na tu postawi EOF.
nie ma w katalogu wpisu pliku, ale jest układ bloków w FAT przypominaj cy plik(bloki s uwa ane za zaj te,
ale nie mo na ich usun bo nie ma ich w katalogu). Obszary FAT zbieramy tworzymy z nich ła cuch i
zapisujemy jako plik.
Plik jest dłu szy ni wskazuje na to zapis w katalogu, lub odwrotnie. Naprawia si to bior c FAT za wiarygodny.
24
T.F.
3. Przydział indeksowy:
S.O zapami tuje wszystkie adresy bloków dyskowych pliku. Pliki mog mie ró n długo dlatego
zapami tywane adresy mog mie ró ne długo ci, dlatego mo na traktowa je jak pliki i tak samo zapisywa
itd. Jest to system charakterystyczny dla UNIX.
4. Model z systemu BSD(UNIX):
Wyró nia si struktur :
i-w zeł – struktura o stałej wielko ci maj ca wszystkie dane o pliku oprócz jego nazwy.
Nazwa pliku jest zapisana w katalogu (plikach zawieraj cych i-w zeł i nazw )
W i-w le s :
prawa dost pu, wła ciciel, grupa wła cicielska, daty, 15 adresów bloków dyskowych.
12 pierwszych adresów to adresy bezpo rednie (pokazuj 12 pierwszych bloków pliku ) mie ci si w granicy
4 KB
Gdy plik jest <=4KB to w 13- tym i-w le zapisuje si adres bloku pojedynczo po redniego (adres bloku który
zawiera adresy bloków pliku). Dzi ki temu mo emy zaadresowa nast pne 1024 bloki
gdy plik <=48KB+4MB 14 blok ma adres bloku podwójnie po redniego zawiera on adres bloku zawieraj cego
adresy bloków zawieraj cych adresy pliku, daje to 48KB+4MB+4GB
gdy to za mało to 15 blok potrójnie po redni (analogicznie jak poprzednie).
Wada:
adresy s zapisane tam gdzie dane. Gdy wyst puje jaki bł d na dysku to dotyka wi kszego obszaru ni w
przydziałach listowych. Znikaj tu oprócz danych adresy plików i ła cuch si przerywa.
Odzyskanie skasowanych plików jest niemo liwe gdy s one wi ksze ni 48KB (traci si bo obszar adresów
mo e by zamazany).
WYKŁAD 10
Pliki i ochrona danych
plik – tablica bajtów zapisana w pami ci masowej dost pna do u ytku w sposób strumieniowy.
Sesja plikowa składa si z operacji:
- open(nazwa pliku, tryb otwarcia);
nazwa np. c:\windows\dane /etc/passwd
tryby otwarcia:
0=std. wej cie (sk d ma pobiera )
1=std. wyj cie (gdzie przekazywa )
2=std. wyj cie diagnostyczne(wyj cie dla bł dów mo na je przekierowa program > plik)
- read(deskryptor, bufor, rozmiar bufora)
write(deskryptor, bufor, rozmiar bufora)
read zwraca liczb przeczytanych bajtów.
F-cja odczytuj ca zawarto pliku powinna działa na buforze (a nie ładowa cały plik)
for(;;)
{
n=read(deskryptor, bufor, rozmiar porcji);
if(n<=0)
break;
else
/*przeczytanie n bajtów danych*/
} (strumieniowe przetwarzanie informacji )
Dost p sekwencyjny jest zły bo aby dosta si danych na ko cu pliku trzeba czyta wszystko co jest przed nimi.
Dlatego S.O. wyposa ono w f-cj
seek(deskryptor, pozycja); (znajduje miejsce pozycja w pliku)
Niektóre systemy maj osobne wska niki miejsca do odczytu i zapisu, ale w wi kszo ci jest jeden wspólny(gdy
odczyta z miejsca x to nast pna operacja wykonana b dzie na miejscu x+1(niezale nie czy read czy write)
S.O. mo e by wyposa ony w f-cj
25
T.F.
frune(deskryptor); (usuwa cz
pliku od pewnego miejsca jest to zale ne od S.O. aby uniezale ni si od niego
mo na zapisa jeszcze raz bez ko ca pliku
close(deskryptor); (opró nia bufory dyskowe)
Operacje na pliku z poziomu zamkni tego (bez otwierania)
unlink (nazwa); (usuwanie pliku);
rename(nowa nazwa, stara nazwa); (zmiana nazwy)
chmod, chown, chgrp – zmieniaj atrybuty plików
(Operacja na katalogach s zale ne od systemu. )
Operacje na plikach s limitowane.(???)
Zakazy i dopuszczenia s widoczne na poziomie open(tu deklarujemy co chcemy robi nie mo emy czytza z
pliku otwartego do odczytu i odwrotnie).
W systemach operacyjnych nie ma standardu ochrony plików, i praw dost pu.
System praw dost pu z systemu Netware.
Zało enia tego systemu:
1. prawa u ytkownika do dowolnego elementu systemu plików s logiczn sum praw wynikaj c z
nast puj cych :
(i) z faktu bycia danym u ytkownikiem;
(ii) z faktu bycia członkiem grupy u ytkowników;
(iii) z faktu posiadania uprawnie równowa nych danemu u ytkownikowi.
przykład:
u ytkownik: Jele , członek grupy personel
plik siano prawa: odczyt Jele , zapis personel)
Z (1) Jele ma prawa r + w (suma praw z ró nych ródeł), gdy dodam grupie jakie inne prawo do pliku to Jele
te je dostanie.
Zbiór praw w Netware:
s – supervisory (prawo nadzoru) daje wszystkie inne prawa;
r – odczyt, daje mo liwo czytania pliku lub wy wietlania katalogu;
w – zapis, modyfikacja zawarto ci pliku, dla katalogu prawo zmiany nazwy;
c – tworzenie – (tylko dla katalogów) tworzenie plików, gdy samo prawo c to mo na stworzy co , ale po
zamkni ci tracimy do tego dost p (poczta tak działa);
e – kasowanie pliku, katalogu;
m – modyfikacja atrybutów – dla katalogów i plików;
f – przeszukiwanie – ograniczenie mo liwo ci wy wietlania listy katalogowej (pozwala korzysta z plików ale
bez mo liwo ci wy wietlania plików;
a – prawo do dysponowania prawami – nadawanie nowych praw do danego elementu struktury katalogowej.
Z ka dym plikiem wi e si tablica praw. W Unix i-w zeł pliku zawiera prawa dost pu pliku
1 zestaw praw
mo e by nadany do pliku. Tutaj z plikiem jest zwi zana lista dynamiczna praw.
Systemy maj ce dynamiczn list praw to systemy typu Access Control List Element, element takiej listy to
ACC (Access List Entry)..
2. Je eli u ytkownik nie ma nadanych praw do elementu systemu plików to jego prawa dost pu s dziedziczone
po katalogu, który ten plik zawiera. Gdy ten katalog nie ma odpowiednich praw to s one brane z katalogu wy ej
w hierarchii. Jest to prawo dziedziczenia.
VOL1
dane
tajne [rf] dla Muldera
archiwum
plik x
Skinner[--] dla Muldera
Mulder donosy
26
T.F.
gdy chcemy aby u ytkownik miał prawo do pliku x to musimy mu da prawa do katalogu który go zawiera, czyli
dajemy mu prawo do całej struktury poni ej tego katalogu. Trzeba wi c gdy chcemy eby nie miał praw do
Skinner to odbieramy mu prawa do tego katalogu (st d [--]).
Aby okre li prawa do danego pliku trzeba przej cał jego cie k katalogow . W Windows 2000
zoptymalizowano przekazywanie praw. Automatycznie s one przekazywane jako dziedziczone.
Na ka dym elemencie systemu plików mo na ustawi mask praw dziedziczonych (inherited rights masks).
Zamiast dawa Skinnerowi [--] mo na było zało y tam mask praw dziedziczonych np.:
XIRM[-r--] – mo na plik otworzy je li si zna jego nazw .
Cz sto zdarza si gubienie praw (awaria praw). W Unix traci si dost p do plików, tu mo emy zyska prawa do
nie naszych rzecz.
27

Podobne dokumenty