Upload
kyros
View
56
Download
1
Embed Size (px)
DESCRIPTION
Vi soka poslovno-tehnička škola Užice. OPERATIVNI SISTEMI. FAJL SISTEMI SISTEMI DATOTEK A. GLAVNI DELOVI RAČUNA R A. MEMORIJA. CPU Centalna procesorska jedinica za obradu. U / I ulazno-izlazni uređaji. Hijerarhija memorije. 1 instrukcija i nekoliko podataka. 1 %. 10 %. 100 %. - PowerPoint PPT Presentation
Citation preview
OPERATIVNI SISTEMI
FAJL SISTEMI
SISTEMI DATOTEKA
Visoka poslovno-tehnička škola Užice
2/47
GLAVNI DELOVI RAČUNARA
MEMORIJAMEMORIJA
CPUCentalna
procesorska jedinica za obradu
CPUCentalna
procesorska jedinica za obradu
U / Iulazno-izlazni
uređaji
U / Iulazno-izlazni
uređaji
3/47
Hijerarhija memorije
100 %10 %1 %
1 instrukcija i nekoliko podataka
4/47
Pojam datoteke - fajla
Datoteka ili fajl (file) je logička jedinica smeštanja podataka i informacija.
Za OS, to je objekat koji se čuva u sekundarnoj memoriji – na HDD (hard disk drive)
Apstrahuje fizička svojstva uređaja za smeštanje podataka. OS preslikava fajl na fizički uređaj.
Za korisnika, fajl je najmanja jedinica alokacije logičkog prostora na sekundarnoj memoriji: podaci se ne mogu smeštati izvan fajla
OS ne ulazi u tumačenje sadržaja i strukture fajla, osim za neke posebne vrste fajlova (npr. fajl - program). Strukturu fajla tumači onaj program koji ga je kreirao ili koji je u stanju da ga prepozna
Neki OS zahtevaju određenu strukturu svakog fajla koju u celini ili delimično tumače.
5/47
Pojam fajla - atributi
Fajl, osim imena i sadržaja, opisuju i dodatni atributi, koji se čuvaju u kontrolnom bloku fajla (eng. file control block, FCB).
Atributi fajla (tipično):– simboličko ime (naziv) fajla: jedini atribut u ljudski
čitljivoj formi– identifikator: jedinstveni interni identifikator fajla u
sistemu– tip datoteke, pomoću koga OS određuje vrstu
datoteke i po potrebi je povezuje sa nekom aplikacijom
– lokacija: informacija o uređaju i mestu gde se fajl nalazi na njemu
– veličina: trenutna veličina (u bajtovima, rečima ili blokovima)
6/47
Pojam fajla - atributi
Atributi fajla - nastavak:– zaštita: informacije o pravima pristupa fajlu (ko sme
da ga čita, piše, briše, izvršava itd.)– datum, vreme i korisnik koji je kreirao, poslednji
modifikovao ili poslednji pristupao fajlu Informacije o fajlovima čuvaju se u strukturi direktorijuma
(katalog, imenik) Datoteke, podela: izvršne i sa podacima
7/47
Pojam fajla - operacije
Osnovne operacije sa fajlom – usluge OS (sistemski pozivi):– Kreiranje (create) fajla: alociranje prostora za
smeštanje fajla i formiranje ulaza u direktorijumu– Upis (write) u fajl - parametri: ime fajla i podaci za
upis. Traži se fajl sa datim imenom, na poziciju pokazivača za upis datog fajla upisuju se dati podaci i na kraju, pokazivač se pomera na novo mesto
8/47
Pojam fajla - operacije
– Čitanje (read) iz fajla; parametri: ime fajla i mesto u OM za smeštanje pročitanih podataka; sa pozicije pokazivača za čitanje datog fajla čitaju se podaci i pokazivač pomera na novo mesto; obično su pokazivači za čitanje i upis isti, tj. postoji samo jedan pokazivač trenutne pozicije za fajl (current-file-position pointer)
– Pozicioniranje pokazivača na novo mesto (seek)– Brisanje fajla (delete): prostor koji je zauzimao fajl se
proglašava slobodnim i briše se ulaz u direktorijumu
9/47
Pojam fajla - operacije
Ostale operacije sa fajlom – usluge OS (sistemski pozivi):– Odsecanje (truncate): brisanje sadržaja fajla, ali
zadržavanje atributa (osim veličine koja se postavlja na 0)
– Preimenovanje (rename) fajla– Dodavanje informacija na kraj fajla (append): upis
podataka na kraj fajla– Kopiranje (copy) fajla– Promena atributa fajla
Većina ovih operacija zahteva pretragu direktorijuma za ulazom za fajl sa datim imenom i dobijanje lokacije i ostalih atributa fajla – pristupa se disku, neefikasno!
10/47
Pojam fajla - otvaranje
Rešenje: kada program želi da pristupa fajlu, prvo mora da pozove sistemsku uslugu otvaranja fajla (file open):– OS vodi tabelu otvorenih fajlova; za svaki otvoreni fajl,
ulaz u ovoj tabeli čuva sve potrebne informacije o fajlu (atribute, posebno lokaciju i pokazivač trenutne pozicije)
– sistemska usluga otvaranja fajla radi sledeće:pronalazi fajl u strukturi direktorijumaotvara novi zapis (red) u tabeli otvorenih fajlovaučitava atribute fajla u ulaz (zapis, red) u tabeli
otvorenih fajlovaopciono proverava prava pristupa do fajla u
odnosu na pristup zahtevan pri otvaranju fajlavraća indeks ili pokazivač na ulaz u tabeli otvorenih
fajlova
11/47
Pojam fajla - otvaranje
– svako sledeće obraćanje fajlu iz programa, tj. sve ostale operacije nad otvorenim fajlom koriste ID ulaza u tabeli otvorenih fajlova, a ne ime fajla – nema pretrage direktorijuma, efikasan pristup do atributa fajla
– nakon upotrebe, fajl se mora zatvoriti, da bi se zapis (red, ulaz) uklonio iz tabele otvorenih fajlova
12/47
Pojam fajla - zaključavanje
Koncept zaključavanja fajla (file locking):– jedan proces traži da zaključa fajl; ako nijedan drugi
proces nije zaključao fajl, proces će dobiti ključ i nijedan drugi proces neće moći da dobije ključ nad fajlom
– modaliteti zaključavanja - dve vrste ključa:deljeni (shared) i ekskluzivni (exclusive): više
procesa može imati deljeni ključ ili samo jedan može imati ekskluzivni ključ
obavezni ključ (fajl se zaključava pri otvaranju) ili neobavezni ključ (fajl se zaključava na eksplicitan zahtev)
13/47
Pojam fajla – tip fajla
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 – ime.tip)– kao poseban atribut fajla (postavlja se prilikom kreiranja
- Mac OS)– u samom sadržaju fajla (UNIX/Linux: magični broj
(magic number) koji se nalazi na početku fajla)
14/47
Pojam fajla - struktura
Interno strukturiranje fajla:– smeštanje informacija na disku je uvek u jedinicama
fiksne veličine – blokovi, klaster (ceo broj X veličina sektora, npr. 8 x 512B = 4 KB) => interna fragmentacija
– logički, fajl se može posmatrati kao:nestrukturiran: sekvenca (niz) bajtova sa
mogućnošću direktnog pristupa svakom bajtustrukturiran u logičke zapise fiksne ili promenljive
veličine, npr. red u tekstualnom fajlu
15/47
Direktorijum
Na jedan disk se može smestiti veliki broj fajlova koji se grupišu u posebne strukture koje se nazivaju direktorijum (directory) ili folderi.
Direktorijumi se u okviru sitema datoteka moraju implementirati tako da obezbeđuju efikasno pronalaženje fajlova i prostora za nove, što se postiže tehnikama Heš i B+ stabla.
Tipične operacije nad direktorijumom:– prikazivanje sadržaja direktorijuma– pronalaženje fajl sa datim imenom ili sa imenima koja
zadovoljavaju dati kriterijum (search)– kreiraj fajl i dodaj u direktorijum– obriši fajl i izbaci iz direktorijuma– promena imena fajla itd.
16/47
Direktorijum
Disk se može podeliti na delove - particije (partitions) Svaka particija može da sadrži poseban fajl sistem ili da
bude rezervisana za zamenu (swap space) Particija može da zauzima i više fizičkih diskova Više particija može da se kombinuje u veću celinu –
volumen (volume); fajl sistem se može kreirati na jednom volumenu
Svaki volumen ili particija mora da sadrži informacije o fajlovima na sebi
Direktorijum je imenik fajlova – sadrži kontrolne blokove svih fajlova koji su u njemu logički smešteni.
17/47
Direktorijum - struktura
Najjednostavnija struktura direktorijuma – u jednom nivou:– svi fajlovi su u istom (jedinom) direktorijumu– fajl mora imati jedinstveno ime u direktorijumu, pa i u
celom sistemu– mnogo fajlova smanjuje preglednost– fajlovi se ne mogu organizovati u logičke celine– krajnje nepraktično, posebno za više korisnika
18/47
Direktorijum - struktura
Direktorijum u dva nivoa: 1. nivo – glavni direktorijumi2. nivo - direktorijumi za svakog korisnika
Veoma problematično:– fajlovi jednog korisnika su nestruktuirani i nepregledni– kako deliti fajlove? kako pristupati fajlovima drugog
korisnika? - imenovanje punom stazom (npr. volume/user/file)
– kako pristupati sistemskim fajlovima? – složenijom pretragom: ako se fajl ne nađe u direktorijumu tekućeg korisnika, traži se u sistemskom ili u spisku staza za pretragu (search path)
19/47
Direktorijum - struktura
Uopštenje: dozvoliti hijerarhijsku strukturu direktorijuma oblika stabla proizvoljne dubine:– korisnik može manipulisati strukturom proizvoljno– svaki fajl je jedinstveno određen punom stazom od
korena– direktorijum je takođe fajl, samo što se posebno
tretira – ima strogo određenu internu strukturu koju tumači fajl sistem OS-a
20/47
Direktorijum - struktura
Svaki fajl ima svoje ime i putanje. Putanja može biti:
– apsolutna, ako je izražena u odnosu na početni (koreni – root) direktorijm (npr: cd \windows\system32 – Windows način)
– relativna, ako je izražena u odnosu na tekući direktorijum (npr: cd etc/apache2 – Linux način)
Staze, putanje do fajla:– otvaranje fajla samo po imenu traži fajl u tekućem
direktorijumu– fajl se može naći zadavanjem apsolutne ili relativne
putanje
21/47
Deljenje fajlova
Mogućnost deljenja fajlova i direktorijuma. Deljenje fajlova se obavlja po strogo definisanim
pravilima koji obuhvataju i zaštitu fajlova. Sihronizacija višeprocesnog istovremenog pristupa fajlu
– u jednom trenutku više procesa može da čita datoteku, ali samo jedan proces može da upisuje ili menja sadržaj fajla.
22/47
Deljenje fajlova
Udaljeni (remote) fajl sistemi – pristup fajlovima preko mreže:– File Transfer Protocol (FTP): protokol koji obezbeđuje
operacije za prenos fajlova između udaljenih fajl sistema; anonimni (anonymous) ili autorizovani pristup fajlovima
– distribuirani fajl sistemi (DFS): udaljeni direktorijumi se vide kao i lokalni
– WWW - World Wide Web Klijent/server (client/server) arhitektura Tolerancija otkaza kod udaljenog pristupa fajlu Očuvanje konzistentnosti kod konkurentnog pristupa fajlu -
algoritmi sinhronizacije procesa
23/47
Zaštita - Linux
U Linux-u se definišu tri vlasničke kategorije i to:– vlasnik (owner): korisnik koji je kreirao fajl;
podrazumevano ima pravo da vrši sve operacije sa fajlom i da daje prava drugima
– grupa (group): skup korisnika koji su imenovani kao grupa korisnika, dele fajl izvršavajući slične operacije i imaju pravo na podskup operacija nad fajlom
– ostali (others): svi ostali, nisu ni vlasnik ni grupa, imaju pravo na podskup operacija sa fajlom
UNIX/Linux: po tri bita (rwx – read, write, execute) za vlasnika, grupu i ostale određuju prava izvršavanja ove tri operacije
24/47
Zaštita - Linux
Značenje za fajlove:– read (r) – samo za čitanje
sadržaja fajla– write (w) – samo za
pisanje, izmene fajla– execute (x) – fajl se može
izvršavati Značenje za direktorijume:
– read (r) – čitanje sadržaja direktorijuma
– write (w) – mogu se dodavati i brisati fajlovi i poddirektorijumi
– execute (x) – korisnik se može pozicionirati u direktorijum, prikazati sadržaj direktorijuma i pretraživati direktorijum.
rwx rwx rwx = 111 111 111
r - - r - - r - - = 100 100 100
rw - rw - r - - = 110 110 100
25/47
Zaštita - Windows
Administrator Windows XP/Vista/7 formira korisničke grupe (user group) i u njih učlanjuje korisnike (user account) i druge grupe.
Samo ako je fajl sistem NTFS, tipovi pristupa fajlovima (dozvole za rad sa fajlovima, folderima):– čitanje (read)– upis (write)– izvršavanje (execute): učitavanje fajla u memoriju i
izvršavanje kao programa– izmene (modify): read + write + execute i pojedinačne
dozvole za brisanje– puna kontrola (full control): sva prava, uključujući
mogućnost dodele i oduzimanja NTFS dozvola i preuzimanje vlasništva
– List Folders Contents – omogućeno da korisnik vidi sadržaj direktorijuma - foldera
26/47
Zaštita - Windows
NTFS dozvole se dodeljuju ili oduzimaju korisnicima i grupama, pri čemu svaki korisnik (ili grupa) predstavlja jedan zapis u tabeli (Access Control Entry, ACE) a skup svih dozvola korisnika – lista za kontrolu pristupa (access control list, ACL)
Grupe i korisnici se u ovim tabelama predstavljaju numeričkim vrednostima SID (Security Identifiers) koje ih jednoznačno identifikuju.
27/47
Izgled ploče diska - podsećanje
28/47
Tvrdi disk - podsećanje
sektor
ploča
cilindar
magnetna glava
pokretna ruka
29/47
Fajl sistemi
Fajl sistemi obično počivaju na sekundarnim memorijskim medijumima (diskovi) koji permanentno čuvaju veliku količinu podataka
Primarne karakteristike diskova koje ih čine pogodnim:– blok-orijentisani uređaj sa mogućnošću čitanja i
upisa: pročitaj blok u memoriju, izmeni ga, upiši ga na disk; blok tipično sadrži nekoliko sektora, a veličine sektora su od 32B do 4KB, tipično 512B
– uređaj sa direktnim pristupom bilo kom bloku, samo uz potrebu pomeranja glave diska i čekanja na rotaciju
30/47
Fajl sistemi
Implementacije fajl sistema jako variraju i sve imaju svoje specifičnosti. Ovde se prikazuju samo neki osnovni principi
Postoji mnogo fajl sistema u upotrebi, a jedan isti OS može podržavati i više fajl sistema. Npr. UNIX – UFS; Windows NT, XP, Vista – FAT, FAT32 i NTFS; Linux – preko 40 fajl sistema, bazični je extended file system (ext2, ext3); CD-ROM (ISO 9660), DVD, flopi disk, ...
31/47
Fajl sistemi - Linux
Nema slovne oznake za particije. Na vrhu je korenski direktorijum (root - /). Svaki direktorijum može imati drugi fajl sistem.
Linux fajl sistemi:– Minix – najstariji, i verovatno najpouzdaniji UNIX-ov
sistem fajlova– ext2 – visoke performanse, pouzdan, podrazumevan na
Linux sistemima– ext3 – ext2 proširen sa dnevnikom transakcija –
praćenje svih promena u fajl sistemu i njihovo beleženje (dnevnik) radi povećanje pouzdanosti.
– ReiserFS – 8 do 15 puta brži od ext2 pri radu sa fajlovima manjim od 1KB
– XFS – brz pri radu sa velikim fajlovima– JFS – 64-bitni, razvijen prvo za IBM servere, dobar za
rad sa ogromnim fajlovima
32/47
Fajl sistemi - Linux
33/47
Fajl sistemi – Windows, DOS
FAT (File Allocation Table) – jednostavan fajl sistem, realizovan u vidu FAT tabele sa 16-bitnim adresiranjem.
FAT tabela je mogla da adresira maksimalno 16535 klastera (npr. klaster 32KB, max = 16535 x 32 KB = 529.120 KB = 516,7 MB) veliki gubici kroz internu fragmentaciju
Ime fajla se zadaje u formatu 8.3 – 8 znakova za ime i 3 znaka za tip
Atributi fajla: H (hidden) – skriven, R (read-only) – samo za čitanje, S (system) – sistemska i A (archive) – namenjeni za izradu rezervne kopije podataka
34/47
Fajl sistemi - Windows
FAT32 – proširenje FAT, omogućeno 32-bitno adresiranje, veličina klastera smanjena, smanjena interna fragmenatacije, rad sa diskovima većeg kapaciteta.
FAT i FAT32 koristi i Linux NTFS (New Technology File System) – pored
standardnih atributa sadrži i proširene, namenjen za rad u mrežnom okruženju, mogućnost upravljanja pravima pristupa fajlu korisnicima i grupama, maksimalna veličina NTFS volumena od 2TB do 16TB, manji klasteri, mogu-ćnost šifrovanja sadržja fajla, mogućnost kompresije ...
Svaki fajl u NTFS fajl sistemu je opisan pomoću jednog ili više zapisa u okviru posebnog fajla – MFT (Master File Table)
Postoje dve MFT tabele. Linux čita NTFS, pisanje – na svoju odgovornost
35/47
Struktura fajl sistema
Strukture podataka fajl sistema na disku potrebne da se realizuje fajl sistem (FS):– boot control block: na svakom volumenu tipično prvi
blok na disku; sadrži informacije kako podići OS sa tog volumena; ako volumen nije butabilan, ovaj blok je prazan (UNIX FS: boot block, NTFS: partition boot sector)
– volume control block: na svakom volumenu ili particiji sadrži globalne informacije o volumenu, kao što su broj blokova, veličina bloka, broj slobodnih blokova, pozakivač na prvi slobodni blok, broj slobodnih FCB (File Control Block), pokazivač na prvi slobodni FCB itd. (UFS: superblock, NTFS: master file table)
36/47
Struktura fajl sistema
Particija može biti:– “presna” (“raw”) - ne sadrži fajl sistem: još nije
uspostavljen fajl sistem (pre formatizacije, formatting) ili za posebne namene (npr. swap space ili za bazu podataka)
– “pečena” (“cooked”) ili formatizovana (formatted) - sadrži fajl sistem
– boot – niz blokova u posebnom formatu koji se direktno učitavaju u memoriju i pokreće izvršavanje sa tačno određene lokacije u cilju učitavanja operativnog sistema
– korena (root) – sadrži OS kernel i druge sistemske fajlove
37/47
Struktura fajl sistema
Mogućnost podrške više fajl sistema: dual-boot, svaka particija različiti fajl sistem, montiranje i udaljeni fajl sistemi
Problem: kako efikasno omogućiti ovakvu heterogenost i transparentno ponuditi sve fajl sisteme u istoj lokalnoj strukturi direktorijuma?
38/47
Struktura fajl sistema
Virtuelni fajl sistem (virtual file system): OO pristup izolaciji različitosti fajl sistema iza istog interfejsa – polimorfizam i dinamičko vezivanje
File
LocalFile RemoteFile
vnode
inode
Object(struct)
VTPVirtual Table f(Object*)
...
...
g(Object*)......
39/47
Metode alokacije
Problem: kako alocirati prostor (blokove) i smeštati mnogobrojne fajlove na disku
Pogodnost: direktni pristup bilo kom bloku Metode:
– kontinualna alokacija– ulančana alokacija– indeksirana alokacija
Kontinualna alokacija:– svaki fajl zauzima kontinualan niz blokova na disku– FCB sadrži samo broj prvog bloka i ukupan broj
blokova koje fajl zauzima– direktan pristup i-tom bloku fajla je jednostavan: ako
fajl počinje na bloku b diska, blok i fajla je u bloku diska b+i
40/47
Metode alokacije
Varijanta ulančane alokacije: File-Allocation Table (FAT, MS-DOS, IBM OS/2):– poseban deo svake particije zauzima FAT koja ima
po jedan ulaz za svaki fizički blok na disku– svaki ulaz sadrži pokazivač na sledeći ulaz u lancu– direktorijum sadrži iste informacije kao i kod osnovne
varijante– u suštini, pokazivači za ulančane liste se umesto u
blokove smeštaju u FAT; blokovi sadrže samo podatke
41/47
Metode alokacije
FAT – pogodnosti: jednostavni i efikasni algoritmi, uključujući i za direktan pristup ako je FAT keširan u memoriji ili je njegov veći deo u jednom bloku
Mane:– ako FAT nije ceo u memoriji, može da uzrokuje
mnogo šetanja glave diska za pristup susednim blokovima
– veoma osetljiv na otkaze - bilo kakvo oštećenje u FAT uzrokuje velike štete
42/47
Izgled ploče diska - podsećanje
43/47
Defragmentacija
Fragmentacija fajlova je pojava da delovi (fragmenti) fajla, prilikom upisa na površinu ploča diska, ne obrazuju sekvencijalni (jedan za drugim) niz blokova (klastera) na površini ploča diska.
Čitanje i pisanje duže, glava diska se češće pomera. Treba svesti na minimum
Rešenje: defragmentacija fajl sistema – fragmenti (delovi) fajla se smeštaju jedni uz druge, obrazuju sekvencijalni niz blokova (klastera)
Koriste se posebni programi za defragmentaciju, mogu biti sastavni deo OS ili od nezavisnih proizvođača.
Opasnost: u slučaju nestanka napajanja, može doći do gubitka ili oštećenja podataka.
44/47
Defragmentacija
Pre defragmentacije proveriti sam fajl sistem, skeniranje a povremeno proveriti i površinu ploča diska – da li ima bad sectors ?
45/47
Efikasnost i performanse
Fajl sistem i disk (HDD) su izuzetno osetljivi delovi i najčešće usko grlo u performansama sistema. Zato je potrebna njihova pažljiva konstrukcija i optimizacija
Neki aspekti i tehnike:– prealokacija FCB-a na disku; unapred alocirati FCB-
ove na volumenu (UNIX) kako bi kasnije operacije bile efikasnije
– locirati susedne blokove za isti fajl kako bi vreme pristupa bilo što kraće
– upotreba klastera različite veličine radi smanjenja interne fragmentacije: npr. manji klaster za male fajlove i za kraj fajla
46/47
Efikasnost i performanse
– upotreba dinamičkih strukura neograničene dimenzije umesto ograničenih struktura sa statičkim dimenzijama
– keširanje praktično neizostavno; za sekvencijalni pristup, read-ahead keširanje: učitavanje bloka unapred
– asinhroni upis podataka
47/47
Oporavak od otkaza
Mnoge informacije o strukturi fajl sistema na disku čuvaju se u kešu u memoriji. Šta se dešava ako sistem otkaže pre nego što te podatke snimi na disk? – Otkaz, oštećenje fajl sistema
Potreba za pokretanjem posebnih programa za oporavak od otkaza: analiziraju nekonzistentnu strukturu fajl sistema i pokušavaju da je restauriraju (UNIX - fsck, MS-DOS - chkdsk). Uspeh zavisi od fajl sistema i veličine problema
Jedan pristup povećanju otpornosti na otkaze – sinhroni upis podataka na disk
Obavezno redovno arhiviranje kopija (backup):– kompletan– inkrementalan – samo promene od zadatog datuma i
vremena