Download presentation
Presentation is loading. Please wait.
1
FAJL SISTEMI SISTEMI DATOTEKA
Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI FAJL SISTEMI SISTEMI DATOTEKA
2
GLAVNI DELOVI RAČUNARA
MEMORIJA CPU Centalna procesorska jedinica za obradu U / I ulazno-izlazni uređaji
3
Hijerarhija memorije 1 instrukcija i nekoliko podataka 1 % 10 % 100 %
4
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
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
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
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
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
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
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 direktorijuma otvara novi zapis (red) u tabeli otvorenih fajlova učitava atribute fajla u ulaz (zapis, red) u tabeli otvorenih fajlova opciono proverava prava pristupa do fajla u odnosu na pristup zahtevan pri otvaranju fajla vraća indeks ili pokazivač na ulaz u tabeli otvorenih fajlova
11
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
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
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
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 bajtu strukturiran u logičke zapise fiksne ili promenljive veličine, npr. red u tekstualnom fajlu
15
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
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
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
Direktorijum - struktura
Direktorijum u dva nivoa: 1. nivo – glavni direktorijumi 2. 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
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
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
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
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
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
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 = r r r - - = rw - rw - r - - =
25
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
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
Izgled ploče diska - podsećanje
28
Tvrdi disk - podsećanje
pokretna ruka cilindar magnetna glava ploča sektor
29
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
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
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
Fajl sistemi - Linux
33
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 klastera (npr. klaster 32KB, max = x 32 KB = 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
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
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
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
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
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 vnode inode LocalFile RemoteFile Object (struct) VTP Virtual Table f(Object*) ... g(Object*)
39
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
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
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
Izgled ploče diska - podsećanje
43
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
Defragmentacija Pre defragmentacije proveriti sam fajl sistem, skeniranje a povremeno proveriti i površinu ploča diska – da li ima bad sectors ?
45
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
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.