480 likes | 772 Views
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 %.
E N D
Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI FAJL SISTEMI SISTEMI DATOTEKA
GLAVNI DELOVI RAČUNARA MEMORIJA CPU Centalna procesorska jedinica za obradu U / I ulazno-izlazni uređaji
Hijerarhija memorije 1 instrukcija i nekoliko podataka 1 % 10 % 100 %
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.
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)
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
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 upisdatog fajla upisuju se dati podaci i na kraju, pokazivač se pomera na novo mesto
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 čitanjedatog 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
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!
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
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
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)
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)
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
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.
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.
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
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)
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
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
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.
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
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
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 Zaštita - Linux
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
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.
Tvrdi disk - podsećanje pokretna ruka cilindar magnetna glava ploča sektor
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
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, ...
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
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
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
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)
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
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?
Virtual Table f(Object*) ... ... VTP Object(struct) g(Object*) ... ... 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
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
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
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
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.
Defragmentacija • Pre defragmentacije proveriti sam fajl sistem, skeniranje a povremeno proveriti i površinu ploča diska – da li ima bad sectors?
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
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
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