Vezbe 10 Fajl Sistemi i Sistem Zastite

27
VEŽBE 10 FAJL SISTEM Svakom programu je potrebna mogućnost da sačuva neke informacije – neke podatke procesi mogu čuvati unutar svog adresnog prostora (promenljive, konstante). Za neke procese to je dovoljno, za neke je potrebno neko drugo rešenje. Nedostaci čuvanja podataka u internoj memoriji: mali kapacitet kada proces završi sa radom, podaci se gube računar se blokira ili nestane struja – podaci se gube često je potrebno da istim podacima istovremeno pristupi više procesa Zbog ovih nedostataka, postoji potreba da se neki podaci čuvaju odvojeno od adresnog prostora u eksternoj memoriji u obliku fajlova. Kriterijumi za dugoročno čuvanje podataka: veći kapacitet podaci moraju biti sačuvani i nakon što proces završi sa radom, i nakon što se računar isključi mogućnost istovremenog pristupa više procesa Deo operativnog sistema koji je zadužen za rad sa fajlovima zove se fajl sistem (file system). Vodi računa o strukturi, načinu imenovanja, načinu korišćenja, o zaštiti i o implementaciji čitavog fajl sistema. Često se pod pojmom fajl sistem podrazumeva struktura direktorijuma i fajlova. Tipovi sistema datoteka Pojam tipa fajla: OS može, ali ne mora da poznaje koncept tipa fajla; ako ga poznaje, može da kontroliše upotrebu fajla Način smeštanja informacije o tipu: u ekstenziji imena fajla (Windows) kao poseban atribut fajla (postavlja se prilikom kreiranja; Mac OS) 1

description

k

Transcript of Vezbe 10 Fajl Sistemi i Sistem Zastite

Zadatak 1:Napisati program koji uitava ceo broj a ispisuje njegovu zadnju cifru

VEBE 10

FAJL SISTEM

Svakom programu je potrebna mogunost da sauva neke informacije neke podatke procesi mogu uvati unutar svog adresnog prostora (promenljive, konstante). Za neke procese to je dovoljno, za neke je potrebno neko drugo reenje. Nedostaci uvanja podataka u internoj memoriji:

mali kapacitet kada proces zavri sa radom, podaci se gube

raunar se blokira ili nestane struja podaci se gube

esto je potrebno da istim podacima istovremeno pristupi vie procesa

Zbog ovih nedostataka, postoji potreba da se neki podaci uvaju odvojeno od adresnog prostora u eksternoj memoriji u obliku fajlova. Kriterijumi za dugorono uvanje podataka:

vei kapacitet

podaci moraju biti sauvani i nakon to proces zavri sa radom, i nakon to se raunar iskljui

mogunost istovremenog pristupa vie procesa

Deo operativnog sistema koji je zaduen za rad sa fajlovima zove se fajl sistem (file system). Vodi rauna o strukturi, nainu imenovanja, nainu korienja, o zatiti i o implementaciji itavog fajl sistema. esto se pod pojmom fajl sistem podrazumeva struktura direktorijuma i fajlova.

Tipovi sistema datoteka

Pojam tipa fajla: OS moe, ali ne mora da poznaje koncept tipa fajla; ako ga poznaje, moe da kontrolie upotrebu fajla

Nain smetanja informacije o tipu: u ekstenziji imena fajla (Windows) kao poseban atribut fajla (postavlja se prilikom kreiranja; Mac OS) u samom sadraju fajla (UNIX: opcioni magic number na poetku fajla)Interno strukturiranje fajla: smetanje informacija na disku je uvek u jedinicama fiksne veliine blokovima (veliine zavisne od veliine sektora) => interna fragmentacija logiki, fajl se moe posmatrati kao: nestrukturiran: sekvenca bajtova sa mogunosu direktnog pristupa svakom bajtu strukturiran u logike zapise fiksne ili promenljive veliine Neophodno preslikavanje u blokove jednostavan problem za OS

Razne varijante UNIX sistema i distribucija Linux sistema podravaju razliite domae (native) i strane (foreign) sisteme datoteka. Najpoznatiji domai sistemi datoteka su navedeni i mogu se aktivirati na veini UNIX sistema.

minix - najstariji, i verovatno najpouzdaniji domai UNIX sistem datoteka. Maksimalna veliina minix sistema datoteka je 64 MB, a imena datoteka ne mogu

biti dua od 30 karaktera;

xia - modifikovana varijanta minixa, ukida limite na veliinu sistema datoteka i broj karaktera u imenu datoteke, ali ne donosi nove mogunosti. Retko se koristi, ali se smatra da je pouzdan;

ext2 - Linux second extended, jako popularan sistem datoteka visokih performansi. Ovaj sistem datoteka je nekoliko godina predstavljao "Linux default";

ext3 - moe se posmatrati kao "ext2 + journaling". Potpuno je kompatibilan sa prethodnom verzijom (ext2), tako da se nadogradnja ostvaruje jednostavnim kreiranjem dnevnika. Za funkcionisanje ext3 sistema datoteka neophodna je podrka na nivou kernela. Ext3 podrava tri reima voenja dnevnika - journal, ordered I writeback, koji na razliite naine utiu na pouzdanost i performanse sistema;

ReiserFS - journaling sistem datoteka solidnih performansi. U odnosu na ext3 ima vee premaenje, bri je pri radu sa malim datotekama, ali je relativno nestabilan pri radu sa velikim datotekama. Dodatno, na UNIX-u postoji podrka za nekoliko tipova stranih sistema datoteka ime je omoguena relativno laka razmena datoteka sa drugim operativnim sistemima. Strani sistemi datoteka ponaaju se slino domaim ali ne moraju imati sve funkcije domaih sistema datoteka (npr. hard linkove) i mogu imati ogranienja koja na domaim sistemima datoteka ne postoje (npr. stara verzija FAT sistema datoteka iz DOS-a ima ogranienje na duinu imena datoteke na 8+3 karaktera).

msdos - omoguava razmenu datoteka sa DOS i OS/2 FAT sistemom datoteka. Moe se aktivirati za itanje i pisanje (read-write).

umsdos - proirenje msdos sistema datoteka pod Linux-om. Dodata je podrka za duga imena datoteka, vlasnitvo, pristupna prava, linkove i specijalne datoteke. Moe se koristiti kao Linux native sistem datoteka, a neke distribucije Linux sistema dozvoljavaju instalaciju operativnog sistema na njemu. Ovo oslobaa administratora sistema potrebe za kreiranjem posebnih Linux native particija, ukoliko se Linux instalira na DOS/Windows sistemu. Npr, Slackware Linux nudi korisniku instalaciju operativnog sistema na FAT sistemu datoteka u direktorijumu \Linux. Prilikom podizanja sistema, sa kernelom se u RAM uitava umsdos drajver i sistem dalje koristi direktorijum \Linux kao root sistem datoteka. Pri tome, LILO (Linux LOader) ne moe da pokrene operativni sistem sa umsdos sistema datoteka, pa je potrebno koristi alternativni DOS/Windows program loadlin. Direktorijum \Linux je vidljiv iz DOS ili Windows sistema i zbog velikog broja malih datoteka moe poveati slack.

vfat - proirenje FAT sistema datoteka sa veim kapacitetom poznato pod imenom FAT32. Veina Windows 9x/ME sistema koristi FAT32.

iso9660 - standard za CD-ROM sisteme datoteka. Moe se koristiti sa Rock Ridge proirenjem koje dozvoljava dua imena datoteka i simbolike linkove.

hpfs - OS/2 High Performance File System.

ntfs - Windows NT sistem datoteka. Karakterie ga postojanje dugih imena datoteka, simbolikih linkova (shortcuts), vlasnitva, pristupnih prava, dnevnika transakcija, mount-point direktorijuma i kripto-zatite. Linux sa kernelom 2.4.x dozvoljava da se ntfs aktivira u reimu itanja (read-only) - kompajliranjem kernela mogue ga je aktivirati u reimu itanja i pisanja (read-write), ali se to ne preporuuje. Stabilna podrka za pisanje na NTFS sistemu datoteka dodata je u verzije Linux kernela 2.6.x, koje dozvoljavaju aktiviranje NTFS sistema datoteka u reimu itanja I pisanja (read-write) bez ikakve prethodne intervencije. Programi za particionisanje diskova u nekim distribucijama (SuSE Linux Proffesional 9) mogu ak menjati veliine NTFS particija bez opasnosti od gubitka podataka.

nfs - UNIX mreni sistem datoteka koji omoguava deljenje lokalnog sistema datoteka izmeu veeg broja umreenih raunara i brz pristup udaljenim datotekama.

smbfs - mreni sistem datoteka koji omoguava deljenje lokalnog sistema datoteka sa umreenim raunarima koji rade pod Windows operativnim sistemom. Koristi Windows protokol za deljenje datoteka.

Sistemi datoteka sa dnevnikom transakcija (Journaling)

Prilikom podizanja operativnog sistema proverava se integritet sistema datoteka. Gubitak integriteta najee se javlja kao posledica nasilnog zaustavljanja sistema, odnosno promena u objektima sistema datoteka koje nisu blagovremeno aurirane u tabeli indeksnih vorova, i moe za posledicu imati gubitak podataka. Opasnost od gubitka podataka umanjuje se uvoenjem dnevnika transakcija koji prati aktivnosti vezane za promenu metadata oblasti, odnosno i-node tabele, i objekata sistema datoteka. Dnevnik (journal, log) se aurira pre promene sadraja objekata i prati relativne promene u sistemu datoteka u odnosu na poslednje stabilno stanje. Transakcija se zatvara po obavljenom upisu i moe biti ili u potpunosti prihvaena ili odbijena. U sluaju oteenja, izazvanog npr. nepravilnim gaenjem raunara, sistem datoteka se moe lako rekonstruisati povratkom na stanje poslednje prihvaene transakcije.Novije verzije Linux kernela ukljuuju podrku za rad sa visokoperformansnim journaling sistemima datoteka, poput ext3, ReiserFS, XFS i JFS sistema datoteka.

Ext3 sistem datoteka i reimi voenja dnevnika transakcija

Sistem datoteka ext3 predstavlja ext2 sistem datoteka nadograen podrkom za journaling. Jedan od osnovnih koncepata u dizajnu je potpuna kompatibilnost sa prethodnom verzijom. Prelazak sa ext2 na ext3 ostvaruje se jednostavnim kreiranjem dnevnika, koji vodi evidenciju o izvrenim transakcijama, ime se umanjuje opasnost od gubitka podataka. Dnevnik transakcija umanjuje performanse sistema, pri emu je pad performansi pri praenju celokupne aktivnosti u sistemu datoteka znatno vei od pada performansi pri praenju aktivnosti meta-data oblasti. Ext3 se moe koristiti ukoliko je kernel preveden sa podrkom za ext3, to je podrazumevano u veini novijih distribucija Linuxa: Red Hat 7.2 i novije, SuSE 7.3 i novije. Tvorac ext3 sistema datoteka je Dr Stephen Tweedie. U ext3 sistemu datoteka prisutna su tri reima voenja dnevnika transakcija: journal, ordered i writeback.

Journal je reim praenja svih promena u sistemu datoteka, kako u meta-data oblasti tako i u objektima-datotekama, ime se pouzdanost sistema datoteka znatno uveava na raun performansi. Redundansa koju ovaj reim rada unosi je velika, ali svakako na raun performansi.

Ordered je reim praenja promena u meta-data oblasti, pri emu se promene u objektima sistema datoteka upisuju pre auriranja i-node tabele. Ovo je podrazumevani reim rada dnevnika, koji garantuje potpunu sinhronizaciju objekata sistema datoteka i meta-data oblasti. U odnosu na journal, ovaj reim karakterie manja redundansa i vea brzina rada.

Writeback je reim praenja promena u meta-data oblasti, pri emu se i-node tabela moe aurirati pre upisa promena u objekte sistema datoteka. Ovo je najbri reim rada ali ne garantuje konzistenciju meta-data oblasti, odnosno sinhronizaciju objekata sistema datoteka meta-data oblasti, to moe dovesti do neprijatnih situacija u sistemu datoteka kao to su pojave nove i stare verzije datoteke itd.

Reiser FS

Jedan od prvih sistema datoteka sa journaling opcijom je ReiserFS, verzija 3.6.x (prisutna u Linux kernelima poev od verzije 2.4). ReiserFS, koji je ime dobio po tvorcu, Hansu Reiseru, znaajno poveava performanse pri radu sa malim datotekama (small file performance), koje su kod ostalih journaling sistema datoteka veoma slabe. Brojni testovi pokazuju da je ReiserFS 8 do 15 puta bri od ext2 pri radu sa datotekama manjim od 1KB. Dodatno, ReiserFS razreava problem interne fragmentacije ime se poveava efikasnost iskorienja diskova. Ovako visoke performase pri radu sa malim datotekama ReiserFS postie na osnovu optimizovanog B+ stabla (jedno po sistemu datoteka) i dinamike alokacije indeksnih vorova (za razliku od fiksne alokacije i-node koju koristi ext2). Dodatno, ReiserFS koristi promenljivu veliinu sistemskog bloka, a male datoteke se upisuju u svoj direktorijum zajedno sa svojom file-info strukturom. U dnevniku se auriraju samo promene u meta-data oblasti. Loe osobine ReiserFS reflektuju se pri radu sa upljim datotekama (sparse files), gde je ext2 daleko bolji. Takoe, ReiserFS radi sporije sa velikim datotekama u odnosu na ext2.

Koji sistem datoteka treba koristiti ?

Izbor sistema datoteka zavisi od faktora kao to su brzina, pouzdanost i kompatibilnost: ext2 i ext3 su stabilni domai sistemi datoteka visokih performansi, reiser je vrlo pouzdan zahvaljujui dnevniku transakcija. Ovi sistemi datoteka nisu vidljivi iz lokalnog DOS/Windows sistema. Postojanje jedne FAT particije za razmenu podataka izmeu Windows NT i Linux sistema je takoe dobro reenje, ukoliko se koriste starije verzije kernela

Virtuelna memorija (swap)

Virtuelna memorija (swap) je deo diska ili sistema datoteka koji slui za privremeno skladitenje neaktivnih procesa, ime se prividno poveava koliina operativne memorije. Swap se moe realizovati na dva naina: u formi datoteka u postojeem sistemu datoteka kao kvazi-sistem datoteka na posebnoj particiji. Obe varijante imaju svoje prednosti i svoje mane. Swap u formi datoteka omoguava veu fleksibilnost administracije sistema .Veliina swap datoteke moe se lako poveati, to u sluaju swap particije nije tako jednostavno. Swap prostor u formi posebne particije funkcionie bre nego swap datoteka, jer se zaobilaze rutine za pristup objektima sistema datoteka. Linux zahteva kreiranje jedne swap particije prilikom instalacije i najee sam preporuuje veliinu swap prostora. Preporuuje se kreiranje jedne swap particije dva puta vee od koliine sistemske memorije, a swap prostor se naknadno moe uveati kreiranjem swap datoteka. Fajlovi (files)

Fajlovi predstavljaju apstrakciju: pruaju mogunost da se podaci uvaju na disku i da se proitaju sa diska a da pri tome korisnik ne treba da zna detalje implementacije: kako su i gde su podaci sauvani ili kako zapravo diskovi rade. Upravo OS ima zadatak da obavi tu apstrakciju, odnosno da sakrije detalje realizacije i da prui interfejs na viem nivou.

Imenovanje (file naming)

Pravila imenovanja fajlova razlikuje se od sistema do sistema. Uglavnom svi sistemi koriste niz znakova za imenovanje fajlova. Neki sistemi dozvoljavaju i korienje specijalnih znakova i brojeva. Neki prave razliku izmeu malih i velikih slova (UNIX) a neki ne (DOS).

Pod DOS-om imena fajlova se sastoje od dva dela: ime fajla (8 karaktera) i tipa (ekstenzije, do 3 karaktera) fajla koji su razdvojeni takom: readme.txt. Moemo koristiti mala i velika slova, brojeve i neke specijalne znakove. Ne pravi se razlika izmeu malih i velikih slova.

UNIX dozvoljava imena duine do 255 karaktera. Ime moe biti sastavljeno od proizvoljnog broja delova odvojenih takom. Pravi se razlika izmeu velikih i malih slova. Moemo koristiti i brojeve i neke specijalne znakove.

Struktura fajlova (file structure)

Najpoznatije strukture su:

1. Fajl je niz bajtova. OS ne vodi rauna o tome ta se nalazi u fajlovima, sve to vidi su bajtovi. Korisniki programi su oni koji treba da dodeljuju znaenje fajlovima (tj. da znaju kako treba gledati na taj niz bajtova). Ovu realizaciju koriste DOS, UNIX, Windows.

2. Fajl je niz slogova iste veliine. Ova realizacija je naputena.

3. Fajl u obliku B-stabla. Koristi se za brzo pretraivanje fajla po zadatom kljuu.

Tipovi fajlova (file types)

Mnogi operativni sistemi razlikuju vie tipova fajlova:

regularni fajlovi: obini, korisnikovi fajlovi (obini nizovi bajtova): mogu biti ASCII ili binarni fajlovi (ovu razliku pravimo mi a ne OS). ASCII fajlovi sadre tekst, a binarni fajlovi bilo ta.

direktorijumi: sistemski fajlovi koji sadre informacije o strukturi fajl sistema

ureajni fajlovi: pod Unixom ureajima pridruujemo fajlove (tampanje).

specijalni fajlovi: zavise od OS-a. Pod DOS-om imamo specijalan fajl koji sadri ime diska

Nain pristupa fajlovima (file access)

sekvencijalni pristup: bajtovima (podacima) u fajlu moemo pristupiti samo redom, tj. da bismo proitali n-ti bajt, moramo isitati prethodnih n-1 bajtova. Koristi se na primer kod trake.

direktan pristup: moemo skoiti na bilo koji bajt unutar fajla i isitati (ili upisati) taj bajt pomeramo glavu za itanje na odgovarajue mesto i uradimo ono to elimo.

Atributi fajlova (file attributes)

Svaki fajl ima svoje ime i sadraj. Pored ovih informacija svi operativni sistemi uvaju jo neke dodatne podatke o fajlovima, kao to su vreme nastanka fajla, veliina fajla itd. Te dodatne podatke zovemo atributima fajla. Neki mogui atributi:

kreator

vlasnik

read-only (samo za itanje)

system (sistemski fajl deo OS-a)

hidden (sakriven fajl)

vreme poslednje modifikacije

vreme poslednjeg pristupa

vreme kreiranja

prava pristupa

veliina fajla

maximalna dozvoljena veliina, itd.

Operacije sa fajlovima (file operations)

Svaki OS ima svoj skup sistemskih poziva za rad sa fajlovima. Najee operacije su: CREATE ( ime ) - kreiranje novog, praznog fajla

DELETE ( ime ) - brisanje fajla

OPEN ( ime ) - otvaranje (priprema) fajla za rad, vraa jedinstveni (file descriptor fd)

CLOSE ( fd ) - zatvaranje fajla koji je prethodno otvoren

READ ( fd ) - ita jedan ili vie bajtova iz otvorenog fajla od trenutne pozicije fajl-pokazivaca

WRITE ( fd,ta ) - pie jedan ili vie bajtova u prethodno otvoren fajl od trenutne pozicije pokazivaa. Ako je pokaziva na kraju fajla, podaci se dodaju na kraj.

APPEND ( fd,ta ) - isto kao WRITE, sa razlikom da se novi podaci dodaju na kraj fajla

SEEK ( fd,pos ) - pomera pokaziva fajla na zadatu poziciju

GETATTRIBUTES ( ime ) - vraa atribute fajla

SETATTRIBUTES ( ime,atr ) - postavlja (menja) atribute fajla

RENAME ( ime,novoime ) - menja ime fajla

Direktorijumi (directories)

Direktorijumi su specijalni fajlovi koji sadre spisak fajlova unutar tog direktorijuma. Svakom fajlu odgovara po jedan slog koji sadri ime fajla i jo neke dodatne informacije (atributi, gde se fajl nalazi na disku itd.). Unutar istog direktorijuma ne moemo imati dva (ili vie) fajla sa istom imenom. Na osnovu dozvoljenog broja direktorijuma moemo razlikovati sledee fajl sisteme:

Operacije sa direktorijumima

Slino kao i kod fajlova, svaki OS ima svoj skup sistemskih poziva za rad sa folderima. Neke mogue operacije:

CREATE - kreiranje novog (praznog) direktorijuma

DELETE - brisanje praznog dirktorijuma

OPENDIR - otvaranje fajla-direktorijuma za itanje

CLOSEDIR - zatvaranje fajla-direktorijuma

READDIR - itanje sadraja fajla-direktorijuma

RENAME - reimenovanje direktorijuma

LINK - pod UNIXOM: ako elimo da jedan te isti fajl bude u vie direktorijuma, nema potrebe da ceo fajl prekopiramo u svaki direktorijum, umesto toga u jedan emo staviti sam fajl a u ostale samo pokaziva na taj fajl. Taj pokaziva se zove link (veza). Kada pristupamo linku, pristupiemo fajlu na koji link pokazuje.

UNLINK - brie link na fajl

REALIZACIJA FAJL SISTEMAMetode: kontinualna alokacija ulanana alokacija indeksirana alokacija1. Kontinualna alokacija: Najednostavniji nain je da za svaki fajl zauzmemo onoliko kontinualnih blokova koliko treba. Prednost je laka implementacija: da bismo locirali neki fajl, treba samo zapamtiti prvi blok i veliinu fajla. Druga prednost je brzina pristupa podacima (i sekvencijalno i direktno). Nedostatak je to u veini sluajeva ne znamo unapred maksimalnu veliinu naih fajlova. Ako fajl izraste iz predvienog broja blokova, moramo pretraiti disk da bismo nali potreban broj kontinualno rasporeenih slobodnih blokova. Ako naemo, treba prebaciti ceo fajl na novo mesto, ako ne naemo, moemo pokuati sa grupisanjem slobodnih blokova na jedno mesto (premetanjem zauzetih blokova). Vrlo neefekasna realizacija. Javlja se problem eksterne fragmentacije.

Karakteristike svaki fajl zauzima kontinualan niz blokova na disku FCB sadri samo broj prvog bloka i ukupan broj blokova koje fajl zauzima direktan pristup i-tom bloku fajla je jednostavan: ako fajl poinje na bloku b diska, blok i fajla je u bloku b+i diska

Pogodnosti: jednostavan i efikasan direktan pristup jednostavan i efikasan sekvencijalni pristupProblemi: pronalaenje slobodnog prostora za smetanje fajla problem analogan kontinualnoj alokaciji memorije dinamika alokacija (first fit, best fit) eksterna fragmentacija kako uopte odrediti veliinu fajla u vreme kreiranja?Reavanje eksterne fragmentacije: poseban postupak defragmentacije (kompakcije, compaction) relocira fajlove i sakuplja slobodan prostor; pokree se uglavnom kada sistem nije u funkciji (off-line), ali moderni OS mogu ovo da rade i on-line DirectoryFile StartSizemail 0 3pic 14 3addr 19 6

2. Ulanana alokacija ( linked allocation ): Blokove zauzetih od strane nekog fajla stavimo u povezanu listu. Treba samo zapamtiti adresu prvog bloka. U svakom bloku uvamo adresu sledeeg bloka, kao kod evidencije slobodnih blokova pomou povezane liste na osnovu prvog naina. Prednosti: ako fajl raste, samo zauzmemo bilo koji neiskorien blok i auriramo povezanu listu ne javlja se problem eksterne fragmentacije.

Karakteristike svaki fajl je ulanana lista blokova rasutih bilo gde po disku svaki blok sadri pokaziva na sledei blokPogodnosti: reava probleme kontinualne alokacije (problem dinamike alokacije i eksterne fragmentacije) operacije kreiranja i proirivanja fajla su jednostavne i efikasne; veliina fajla ne mora da se definie prilikom kreiranja sekvencijalni pristup fajlu je jednostavan i relativno efikasan bilo koji slobodan blok se moe koristiti za proirenje fajla fajl moe da se proiruje sve dok ima slobodnog prostoraNedostaci: izuzetno neefikasan direktan pristup fajlu: da bi se pristupilo bloku i fajla, potrebno je pristupiti svim prethodnim blokovima od poetnog sledei ulanane pokazivae pokazivai zauzimaju prostor na disku i oduzimaju ga korisnom sadraju (moe biti nezanemarljivo za velike diskove, odnosno velike pokazivae) osetljivost na otkaze: ako se otete pokazivai zbog greke ili otkaza sektora, deo fajla moe biti izgubljen ili potpuno pokvaren (ulanan u pogrenu listu)Directory

File Start Endmail 0 Apic 14 12addr 19 1E

Naini reavanja: grupisati blokove u vee jedinice alokacije clusters: smanjuje procenat prostora koji zauzimaju pokazivai i druge mehanizme ini efikasnijim, ali poveava internu fragmentaciju upisivati dodatne informacije uz pokaziva radi poveanja pouzdanosti (npr. ime fajla i redni broj bloka ili dvostruke pokazivae)

Varijanta ulanane alokacije: File-Allocation Table (FAT, MS-DOS, IBM OS/2):

FAT(File Allocation Table) je tabela koja ima onoliko elemenata koliko imamo blokova na disku. Ako se u k-tom bloku nalazi neki fajl, tada k-ti elemenat FAT-a sadri adresu sledeeg bloka koji taj fajl zauzima ili nulu koja oznaava da je to poslednji blok fajla.

Korienjem FAT-a izbegavamo nedostatke povezane liste: ceo blok moemo iskoristiti za uvanje korisnih informacija (nije potrebno oduzeti deo za adresu sledeeg bloka), i bolje je podran direktan pristup sadraju fajla direktan pristup ni ovde nije u potpunosti podran jer ako trebamo pristup 10-tom bloku fajla, moramo pomou FAT-a nai adresu tog bloka, ali je pretraivanje mnogo bre: informacije su na jednom mestu, ne treba obilaziti svaki blok da bismo doli do adrese sledeeg bloka. FAT se koristi npr. kod operativnih sistema DOS, Win9x.

Primer: neka PERA.TXT zauzima blokove 7,2,4,1 a DJURA.DOC blokove 8, 5. Tada dobijamo sledeu tabelu alokacije:

Karakteristike:

poseban deo svake particije zauzima FAT koja ima po jedan ulaz za svaki fiziki blok na disku svaki ulaz sadri pokaziva na sledei ulaz u lancu direktorijum sadri iste informacije kao i kod osnovne varijante u sutini, pokazivai za ulanane liste se umesto u blokove smetaju u FAT; blokovi sadre samo podatkeFAT pogodnosti: jednostavni i efikasni algoritmi, ukljuujui i za direktan pristup ako je FAT keiran u memoriji ili je njegov vei deo u jednom blokuMane: ako FAT nije ceo keiran, moe da uzrokuje mnogo etanja glave diska za pristup susednim blokovima veoma osetljiv na otkaze - bilo kakvo oteenje u FAT uzrokuje velike tete

3. Indeksirana alokacija (indexed allocation), i-vorovi (i-nodes): Kompromis izmeu veliine i-node tabele i brzine rada nastao je u originalnoj verziji UNIX sistema datoteka. Naime, veina UNIX datoteka je relativno male veliine. Umetanjem prvih 10-12 pokazivaa na blokove sa podacima u i-node, i-node tabela e takoe biti relativno mala. Na taj nain, manje datoteke se mogu potpuno opisati i-node vorom. Prilikom alokacije prostora za vee datoteke koristi se dodatni blok pokazivaa na blokove podataka (single indirection block). Za jo vee datoteke dodatni prostor se moe alocirati korienjem dvostrukih i trostrukih indirektnih pokazivaa. Ova metoda dinamike alokacije prostora je efikasna i kao takva se sa malim modifikacijama koristi u najnovijim verzijama UNIX i Linux sistema datoteka. Na primeru ufs sistema datoteka prikazane su maksimalne veliine datoteka koje se mogu dobiti alokacijom prostora pomou direktnih i 32-bitnih indirektnih pokazivaa. Svakom fajlu dodeljujemo jednu malu tabelu koja se zove i-vor (i-node) ili index-vor (indexnode) i koja sadri atribute fajla i adrese zauzetih blokova:

Karakteristike svaki fajl ima svoj blok sa indeksom FCB sadri broj tog indeksnog bloka indeksni blok sadri spisak blokova koje fajl redom zauzimaPogodnosti: jednostavan i efikasan pristup, ukljuujui i direktan (analogno stranienju) jednostavni i efikasni algoritmi za ostale operacije (kreiranje, proirenje) nije tako osetljiv na otkaze kao FAT nema eksterne fragmentacije, blok moe da se alocira bilo gde sve pogodnosti ulananog pristupa, samo to je direktan pristup efikasnijiNedostatak: vea potrnja prostora na reijske informacije (indekse); da bi ta potronja bila manja, treba praviti manje idekse, ali manji indeksi dozvoljavaju manje fajloveDirectory

File Index Sizemail 14 4

Pristupi reavanju: ulanana ema: indeks je ulanana lista; podrazumevano zauzima jedan blok, ali po potrebi sadri i pokaziva na naredni indeksni blok u ulananoj listi indeks u vie nivoa: indeks prvog nivoa sadri pokazivae na indeksne blokove sledeeg nivoa, a indeksi poslednjeg niva sadre pokazivae na blokove sa podacima:

Znai: i-vor sadri atribute fajla i adrese prvih nekoliko blokova ( 1, to znai, da je blok evidentiran vie puta kao slobodan (moe biti samo u sluaju da koristimo povezanu listu, u sluaju bitne mape to se ne moe desiti). Reenje: popravimo listu slobodnih blokova izbacimo duplikate ako je vrednost prvog brojaa > 1 a vrednost drugog = 0, blok pripada vie od jednog fajla. Reenje: ako blok pripada n fajlu, zauzmemo jos n-1 blokova, prekopiramo sadraj u te blokove i auriramo i-vorove. Posle, za svaki sluaj javimo i korisniku ta smo uradili. ako je vrednost oba brojaa > 0 to znai da je blok evidentiran i kao zauzet i kao slobodan. Reenje: izbacimo iz liste slobodnih blokova.

2. Konzistentnost fajlova: Idemo po folderima od korenskog direktorijuma i za svaki i-vor dodeljujemo po jedan broja . Svaki put kad naiemo na isti fajl, poveamo broja. Na kraju idemo redom po i-vorovima i uporeujemo tako dobijen broja sa brojaem tvrdih linkova unutar i-vora. Rezultat moe biti:

vrednost brojaa = broju tvrdih linkova unutar i-vora nema greaka vrednost brojaa > od broja tvrdih linkova greka!! Ako izbriemo fajl, moe se desiti da imamo link na ne iskorien blok. Posle neko iskoristi taj blok i sad imamo link koji pokazuje na ko zna ta... Reenje: broja tvrdih linkova preuzima vrednost drugog brojaa vrednost brojaa < od broja tvrdih linkova greka!! ak i ako svi korisnici izbriu sve tvrde linkove na fajl, blok nee biti prebaen u skup slobodnih blokova. Reenje: broja tvrdih linkova uzima vrednost drugog brojaa.

VEBA

ZADATAK 1: Posmatrajte datoteku veliine 100 blokova, iji se kontrolni blok nalazi u memoriji (u sluaju indeksne alokacije, pretpostaviti da je i indeksni vor u memoriji raunara). Odredite koliko je disk I/O operacija potrebno za izvrenje sledeih operacija na sistemima organizovanim pomou metoda kontinualne alokacije, ulananih lista i indeksnih vorova. Pretpostavite da se u sluaju kontinualne alokacije datoteka moe nastaviti samo sa kraja i da se blok, koji sadri informacije za dodavanje u datoteku, nalazi u memoriji.

a.Blok se dodaje na poetak datoteke.

b.Blok se dodaje na sredinu datoteke.

c.Blok se dodaje na kraj datoteke.

d.Blok se uklanja sa poetka datoteke.

e.Blok se uklanja iz sredine datoteke.

f.Blok se uklanja sa kraja datoteke.Kontinualna alokacijaUlanane listeIndeksni vorovi

(a)201 (100*2>>+1)11

(b)101 (50*2>>+1)521

(c)131

(d)198 (99*2