You are on page 1of 39

OPERACINĖS SISTEMOS

FAILŲ SISTEMOS
VALDYMAS
10 paskaita.
Failų sistemos valdymas
• Disko erdvės valdymas
• Failų sistemos atsarginės kopijos
• Failų sistemos vienareikšmiškumas
• Failų sistemos produktyvumas
Disko erdvės valdymas
• Failą atmintyje patogu turėti kaip nepertraukiamą bloką.

• Problema: Failai gali didėti ir mažėti, ką daryti tokiu


atveju. (Perkelti į kitą vietą nėra labai patogu ir „pigu“.)

Todėl beveik visos sistemos failus saugo fiksuoto dydžio


blokuose, kurie yra išdėstyti skirtingose disko vietose.

Kyla klausimas koks turi būti bloko dydis?


Disko blokų dydis
• Pirmi kandidatai, jei vertinsime fizinę disko organizaciją,
yra – sektoriai, takeliai, disko cilindrai.
• Minusai – priklauso nuo įrenginio.

• Tyrimai parodė, kad Unix sistemoje vidutinis failo dydis


yra 1 KB, o Windows - 2KB, 4 KB
Duomenų skaitymo /rašymo
greitis (MB/s) Disko erdvės valdymas

Visi failai 4 KB.


Bloko dydis (Baitais)

Disko erdvės naudojimo


efektyvumas
Disko blokų dydis
• Jei blokas bus mažas, tai failą sudarys daugiau blokų.
Tokio failo skaitymas bus lėtas.

• Esant didesniam bloko dydžiui, efektyviau naudojama


disko erdvė.
Laisvų blokų apskaita
Laisvų disko blokus galime saugoti:

1. Vienkrypčiame sąraše
2. Bitų masyve
Laisvų blokų apskaita

(a) vienkryptis sąrašas. (b) bitų masyvas.


Laisvų blokų apskaita
Vienkrypčiame sąraše
• Atmintyje saugomas rodyklių (Į blokus) sąrašas.
• Kai baigiasi rodyklės, kurių mums reikia kuriamam failui,
iš disko skaitomas kitas blokas.
• Ištrynus failą jo blokų numeriai įtraukiami į laisvų blokų
sąrašą, kuris yra RAM. Kai blokas užsipildo jis
perkeliamas į diską.

Trūkumai:
• Atliekamos bereikalingos perkėlimo iš/ į diską operacijos
Laisvų blokų apskaita

(a) Ištriname 3 blokus. (b) Resultatas gaunamas ištrynus tris


failo blokus. (c) Alternatyvus būdas: ir RAM ir diske laikoma
pusė užpildytų blokų.
Bitų masyvas
Bitų masyve saugome blokus tokiu pavidalu:
• Laisvas blokas – 0
• Užimtas blokas - 1
Vienam blokui reikia – 1 bito,
kai veinkrypčio sąrašo atveju – 32 bitų.

Jei disko talpa 16 GB, o bloko dydis 1KB viso (224 ) blokų –
ta ir bitų masyvui - 224 bitų, tai yra 2048 blokų.

Sąrašo atveju, kad išsaugoti 224 blokų – reikės daugiau


atminties 4 baitai ( arba 32 bitai) * 224 blokų .
Disko kvotos

o Atidarytas failas atributų sąraše turi jam skirtą kvotą ir


nuorodą į kvotų lentelę
o Kvotų lentelėje yra visų atidarytų faių kvotos
o Kvotų ribos būna (soft, hard)
o Papildant failą nauju bloku yra tikrinamos kvotos
Disko kvotos
SISTEMOS
PATIKIMUMAS
Duomenų praradimo atvejai

• Dėl klientų klaidų (užpilta kava, netyčia ištrinti failai, ...)


– dažnai galima atstatyti duomenis.

• Sistemos klaidos - dažnai atstatyti duomenų negalima


ar net neįmanoma.

• Techniniai gedimai. Blogi disko blokai.


Atsarginės kopijos

Naudotojų nuomonė:
Atsarginių kopijų kūrimas - laiko švaistymas...
Tiesa iki pirmo svarbių duomenų praradimo.

Atsarginės kopijos magnetinėse juostuose:


• Magnetinės juostose galime saugoti gigabaitus
duomenų labai pigiai.
Atsarginės kopijos

Nereikia kurti atsarginių kopijų


Laikiniems failams
Specialiesiems failams (I/O)

Kada kurti kopijas?


Kas dieną, redaguotus failus (naudotojo failus).
Kas savaitę ar mėnesį (visus failus).
Fizinis archyvavimas

Archyvuojamas visas diskas nuosekliai nuo


pradžios.
Gerai
- lengva įgyvendinti;
Blogai
- nes archyvuojame tuščius blokus ir blogus
sektorius;
-negalime atstatyti atskirų failų, reikia atstatyti viską.
Loginis archyvavimas

Išsaugoma katalogų struktūra.


Kopijos kuriamos tik pakeistų failų.
Loginis archyvavimas

Visi katalogai pasiekiami per i-mazgus.


Loginis archyvavimas
Bitų žemėlapis naudojamas loginiam archyvavimui.
4 fazės:
o 1 - eina nuo šakninio katalogo ir pažymi visus
redaguotus failus (a);
o 2 - peržiūri rekursyviai visus failus ir katalogus
ir panaikina nereikalingus pažymėjimus (b);
o 3 - eina per i-mazgus ir archyvuoja katalogus
(c);
o 4 - archyvuoja failus (d);
Loginis archyvavimas

Bitų žemėlapis naudojamas loginiam archyvavimui.


Duomenų atstaymas

o Tuščiame diske atstatomas visas archyvas,


pirma – katalogai, po to – failai.
Failų sistemos vienareikšmiškumas
Problema: Darbo su failais metu failų sistema
skaito, rašo, atlaisvina atminties blokus. Šių
veiksmų metu įvykę sistemos darbo nutraukimai
gali sukelti failų sistemos pažeidimus.

Todėl OS turi programas, kurios tikrina sistemos


vienareikšmiškumą.
Failų sistemos vienareikšmiškumas
(fsck – Unix OS , scandisk – Windows OS)

Naudoja dvi lenteles:


• Pirmoje lentelėje. Įrašo kiek kartų blokas
sutinkamas failų naudojamų blokų sąraše.
• Antroje lentelėje. Įrašo kiek kartų blokas
sutinkamas laisvų blokų sąraše.
Failų sistemos vienareikšmiškumas
Blokų numeriai Blokų numeriai

(a) Pateikti failų sistemos skanavimo rezultatai rodo, kad klaidų


nėra. Nes Laisvų blokų sąraše ten kur yra 0, užimtų blokų
sąraše 1 ir atvirksčiai.
(b) Pateikti failų sistemos skanavimo rezultatai rodo, kad yra
dingęs blokas (2 blokas). Nes Laisvų blokų sąraše - 0,
užimtų blokų sąraše - 0.
Sprendimas: Blokas prijungiamas į laisvų blokų sąrašą.
Failų sistemos vienareikšmiškumas

c) d)

(c) Pateikti failų sistemos skanavimo rezultatai rodo, kad Laisvų


blokų sąraše (4 blokas) yra sutinkamas du kartus.
Sprendimas: Pertvarkomas laisvų blokų sąrašą.
(d) Pateikti failų sistemos skanavimo rezultatai rodo, kad Užimtų
blokų sąraše (5 blokas) naudojamas dviejų failų.
Sprendimas: Sukuriama 5 bloko kopija ir kitame bloke ir
pakeičiamas vieno iš failų bloko nr. Suprantama, kad vienas iš
failų bus sugadintas. Failų sistema liks vienareikšmiška.
Katalogų sistemos vienareikšmiškumas
Ta pati programa tikrina ir katalogus:
• Naudojama lentelė, kurioje vienas įrašas
skirtas vienam failui.
• Tikrinama nuo šakninio katalogo iki medžio
pabaigos.
• Lyginami lentelės duomenys su informacija
esančia i- mazguose. Skaičiai turi sutapti.
Failų sistemos efektyvumas
• Kreipimasis į diską yra gerokai lėtesnis nei į
atmintį (RAM-10 ns)
• Diskas : 5 -10 ms galvutės padėčiai nustatyti +
100 MB/s skaitymo greitis.
• Gaunam, kad kreipimasis į atmintį milijoną
kartų greitesns...

OS naudojami trys būdai efektyvumui užtikrinti:


Kešavimas
Labiausiai paplitęs metodas, kuriuo sumažinamas
kreipimosi į diską skaičius.

Kešas - tai blokų rinkinys, kuris logiškai priklauso diskui,


bet yra saugomas atmintyje efektyvumui užtikrinti.

Kešo valdymui naudojami skirtingi algoritmai. Labiausiai


paplitęs yra šis:
1. Tikriname, ar yra reikalingi blokai keše.
2. Jei yra, skaitome iš atminties. (Nereikia kreiptis į diską)
3. Jei nėra, perkeliame iš disko į atmintį. Kitą kartą bus
galima skaityti iš kešo.
Kešavimas

Kešą sudaro apie keli tūkstančiai blokų. Todėl reikia


kažkokio greito būdo nustatyti, ar keše yra reikiamas
blokas.
Tam naudojama kešo lentelė.
Visi blokai su tapačia reikšme kešo lentelėje sujungiami į
grandinę dvikrypčiame sąraše.
Kešavimas
Blokų dvikrypčiame sąraše išdėstymo tvarka:
• Sąrašo pradžioje dedami mažiausią paklausą turintys
blokai (paveiksle LRU).
• Sąrašo prabaigoje dedami didžiausią paklausą turintys
blokai (paveiksle MRU).

Trūkumai:
• Dirbant su failais retai kreipiamasi į i-mazgą du kartus.
Todėl jis dedamas į LRU ir greitai bus perkeltas į diską.
• Jei blokas patalpinamas gale, tai kol duomenų pakeitimai
bus perkelti į diską užtruksime. Jei įvyks klaida, prarasime
duomenis.
Kešavimas
Patobulinta schema:
• Nustatoma, ar didelė tikimybė, kad duotas blokas bus
naudojamas vėl.
• Nustatoma, ar svarbus šis blokas sistemos
vienareikšmiškumui.
Blokų skirstymas į kategorijas:
• i- mazgai.
• Blokai katalogai.
• Užpildyti duomenimis blokai.
• Dalinai duomenimis užpildyti blokai (dedami į kešo galą ir
lieka ten ilgam).
Kešavimas
• Failų sistemos vienareikšmiškumui yra svarbūs visi blokai,
išskyrus duomenų. Todėl vos tik įvyko pakitimas, reikia
juos įrašyti į diską ir nesvarbu, kuriam sąrašo gale blokas
yra.
• Šis veiksmas labai sumažina failų sistemos klaidų
tikimybę.
• Blokų ilgas laikymas neišsaugojus diske yra
nepageidaujamas. (Pav. su rašytoju. Sistemos darbo
nutraukimas ir prarandame duomenis, jei jie buvo visą
laiką keše.)
Kešavimas
• Todėl UNIX-e naudojamas sisteminis iškvietimas sync,
kuris iškviečia programą update ir tuoj pat įrašo pakeistą
bloką į diską.
• Kvietimas vykdomas kas 30s.
• Prarandama duomenų,kiek padaryta pakeitimų per 30s.

• Windows os naudoja analogišką schemą.

• Kai kuriose OS buferinis kešavimas apjungtas su


puslapiavimu (viskas viename keše).
Išankstinis blokų skaitymas
• Skaitome failo 1 bloką, o po to dažnai mums
reikia kito bloko (n+1).
• Sistema numatydama tai iš anksto nuskaito bloką
(n+1) ir kai tik jo reikia mes jį jau turime keše.

Trūkumai: veikia gerai jei kreipimasis į failą yra


nuoseklus, jei ne be reikalo įkeliami blokai į kešą.

Sprendimas:galime sekti veiksmus su failais ir


prognozuoti,ką įkelti. Toks būdas ir naudojamas.
Disko galvučių perstūmimų sumažinimas
• Pageidautina, kad įrašinėjant į diską naujas blokas būtų
kuo arčiau skaitymo galvutės.
• Jei laisvi blokai saugomi bitų masyve, tai nesunku
padaryti. Surušiuojama ir ieškoma artimiausio.
• Taip pat galime sumažinti skaitymo galvutės perstųmimus
jei skaitysime arčiau disko centro.

• Visa tai negalioja SSD (Solid State disck), nes veikia kaip
„flešas“ šiuo atveju mums yra svarbiau naudoti skirtingus
blokus ir saugoti nuo nusidėvėjimo.
Disko galvučių perstūmimų sumažinimas

(a) I-mazgai išdėlioti disko pradžioje.


(b) diskas suskirstytas į cilindrų grupes, kiekviena su savo
blokais ir i-mazgais.
Defragmentacija
• Nuoseklus failų išdėstymas diske
• Linux turi mažiau „skylių“
• SSD – nesvarbu.

You might also like