OPERATIVNI SISTEMI

Post on 13-Jan-2016

56 views 1 download

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

Transcript of OPERATIVNI SISTEMI

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