Transcript CPU

Visoka poslovno-tehnička škola Užice
OPERATIVNI SISTEMI
FAJL SISTEMI
SISTEMI DATOTEKA
GLAVNI DELOVI RAČUNARA
CPU
MEMORIJA
Centalna
procesorska
jedinica za obradu
U/I
ulazno-izlazni
uređaji
2/47
Hijerarhija memorije
1 instrukcija
i nekoliko
podataka
3/47
1%
10 %
100 %
Pojam datoteke - fajla






4/47
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


5/47
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



6/47
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

7/47
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
Pojam fajla - operacije
–
–
–
8/47
Č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-fileposition 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


9/47
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

10/47
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
–
–
11/47
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

12/47
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


13/47
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
–
14/47
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



15/47
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






16/47
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

17/47
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


18/47
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)
Direktorijum - struktura

19/47
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



20/47
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



21/47
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




22/47
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


23/47
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
Zaštita - Linux


24/47
Značenje za fajlove:
rwx rwx rwx = 111 111 111
– read (r) – samo za čitanje
r - - r - - r - - = 100 100 100
sadržaja fajla
rw - rw - r - - = 110 110 100
– 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.
Zaštita - Windows


25/47
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


26/47
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.
Izgled ploče diska - podsećanje
27/47
Tvrdi disk - podsećanje
pokretna
ruka
cilindar
magnetna
glava
ploča
28/47
sektor
Fajl sistemi


29/47
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


30/47
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


31/47
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 - Linux
32/47
Fajl sistemi – Windows, DOS




33/47
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






34/47
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

35/47
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

36/47
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


37/47
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?
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
Virtual Table
VTP
Object
(struct)
38/47
RemoteFile
f(Object*)
...
...
g(Object*)
...
...
Metode alokacije




39/47
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

40/47
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


41/47
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
Izgled ploče diska - podsećanje
42/47
Defragmentacija





43/47
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

44/47
Pre defragmentacije proveriti sam fajl sistem, skeniranje
a povremeno proveriti i površinu ploča diska – da li ima
bad sectors ?
Efikasnost i performanse


45/47
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 FCBove 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
–
–
–
46/47
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




47/47
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