You are on page 1of 40

OPERACINĖS SISTEMOS

FAILŲ SISTEMOS
9 paskaita.
Failų sistemos
Faktiškai visos programos turi gauti, naudoti ir saugoti
duomenis.
Procesai:
1. Vykdymo metu duomenis saugo virtualioje atmintyje;
2. Kai procesas baigia darbą, duomenys dingsta;
3. Procesai virtualioje atmintyje turi mažai duomenų;
4. Problemos kyla dėl bendro naudojimo. (Pav. jei telefonų
knyga bus vieno proceso nuosavybė, jį bus patalpinta jo
adresų erdvėje ir tik tas procesas galės ja naudotis.)

Todėl galime teigti, kad reikia atskirti duomenis nuo proceso.


Failų sistemos
lgalaikiam saugojimui yra keliami tokie
reikalavimai:
• Įrenginiai turi leisti saugoti didelius kiekius
informacijos.
• Informacija turi išlikti ir procesui baigus darbą.
• Keletas procesų turi turėti galimybę kreiptis ir naudotis
tais pačiais duomenimis

Paprasčiausiais šios problemos sprendimas yra –


informacjos saugojimas diske, kituose įrenginiuose taip
vadinamuose failuose.
Failų sistemos
• Procesai pagal butinybę gali skaityti, kurti falus.

• Informacija saugoma failuose turi pasižymėti


PASTOVUMU, t.y. Jos neturi įtakoti proceso vyksmas
(persijungimai, proceso pradėjimas, proceso baigimas).

• Failus valdo operacinė sistema. Operacinės sistemos


dalis, atsakinga už failų valdymą, vadinama failų sistema.
Failo struktūra. Baitų seka.
Atmintis OS požiūriu yra baitų seka.

Tokia sistema yra lanksti. Vartotojas


gail talpinti viską ką nori ir kokiu
būdu nori.

OS nesikiša.

Toks būdas yra naudojamas


šiuolaikinėse OS, Windows, Unix.
Failo struktūra. Įrašų seka.
Atmintis sudalinta į vienodo dydžio įrašų
blokus. Failus galima talpinti į kelis
blokus. Nuskaitymo ar įrašymo operacija
grąžina vieną įrašą.
Failo struktūra. Įrašų medis.
Failas yra įrašų
medis. Kiekvienas
įrašas turi raktą.

OS spendžia, kur
prijungti naują šaką.
Paprastai ieško
įrašo pagal raktą.
Įrašai gali būti
skirtingu dydžių.

Naudojama
Meinfreimuose.
Failai (vartotojo požiūriu)
• Failo sūkūrimo metu jam yra suteikiamas vardas, kuriuo
vėliau galima kreiptis į failą.
• Nustatytos tikslios vardų suteikimo taisyklės, kurios
priklauso nuo operacinės sistemos. Pav. vardo ilgis – 255.
Paprastai failo vardas sudarytas iš dviejų dalių:

Failo_vadas.plėtinys

• UNIX os failams plėtiniai nėra privalomi. Vartotojai


plėtinius dažnai naudoja savo patogumui.
• Windows os plėtinys parodo, kokia programa galime aterti
failą.
Plėtiniai
Failų tipai
• Reguliarūs failai: visi failai, kur saugoma vartotojo
informacija. Visi skaidrėje matyti failai yra reguliarūs.
• ASCII failai – gali būti skaitomi bet kuriuo tekstiniu
redaktoriumi;
• Dvejetainiai
• Katalogai: tai sisteminiai failai, kurie palaiko failų sistemos
struktūrą.
• Simboliniai specialieji failai: Įvedimo/Išvedimo
įrenginiamas, terminalams, spausdintuvams, tinklams.
• Blokiniai specialieji: diskams

Failų skaitymo metodai


•Nuosekli prieiga: pradedant nuo pradžios nuosekliai
•Atsitiktinė: įrašų skaitymas bet kokia tvarka
Failų tipai

. (a) Vykdomasis failas. (b) archyvas.


Veiksmai su failais
• Create (sukurti)

• Delete (pašalinti)

• Open (atidaryti)

• Close (uždaryti)

• Read (skaityti)

• Write (rašyti)

• Append (papildyti)

• Seek (paieška)

• Get attributes (parodyti atributus)

• Set attributes (nustatyti atributus)

• Rename (pervardinti)
Failų atributai
• Apsauga
• Įrašo ilgis
• Slaptažodis
• Sukūrimo laikas
• Failo kūrėjas
• Paskutinio kreipinio laikas
• Savininkas
• Paskutinio pakeitimo laikas
• Atributas “tik skaitymui”
• Esamas failo dydis
• Atributas “paslėptas”
• Galimas maksimalus failo dydis
• Atributas “sisteminis”

• Atributas “archyvinis”

• Atributas “ASCII/dvejetainis”

• Atributas “laikinas”
Failų atributai
Katalogai

1. Bendrau naudojimo katalogai visiems vartotojams


Negalima naudoti vienodų vardų.

2. Atskiras katalogas vartotojui.


Vieno lygmens katalogų sistemos
Dviejų lygmenų katalogų sistemos

A B C

A A B C C C
Hierarchinė katalogų sistema
UNIX katalogų medis
Veiksmai su katalogais

• Create (sukurti)

• Delete (pašalinti)

• Opendir (atidaryti)

• Closedir (uždaryti)

• Readdir (skaityti)

• Rename (pervardinti)

• Link (katalogų surišimas)

• Unlink
Failų sistemos realizacija
• Svarbiausias klausimas, kaip saugoti failo blokus
atmintyje.

Būdai:
• Nepertraukiamas failų išdėstymas;

• Venkryptis sąrašas;

• Vienkryptis sąrašas ir atminties lentelė;

• I- mazgai
Nepertraukiamas failų išdėstymas
(Contiguous Allocation)

Naudojamas CD-ROM, DVD,...


Vienkryptis sąrašas (Linked List)

Failas suprantamas, kaip rinkinys atminties blokų


esančių diske, kurie sujungti į vienkryptį sąrašą.
Vienkryptis sąrašas (Linked List)
Metodo pranašumai:
• Blokai gali būti bet kur atmintyje;
• Kataloge reikia saugoti tik vieną 1 bloko adresą.

Trūkumai:
• Jei mums reikia kreiptis į 9 loką, OS turi perskaityti 8
blokus. Suprantama, kad tokia schema bus lėta.
• Bloko rodyklei reikia 2 Baitų. Os skaito 512B 1024B,
2048B. Tai reiškia, kad rodyklei reikės papildomo bloko.
Ši problema dingsta, jei rodykles sudedame į atminties
lentelę.
Vienkryptis sąrašas ir atminties lentelė
File allocation table (FAT)
•Lentelė turi vieną įrašą vienam
disko blokui.
•Visi failų blokai sujingti
vienkrypčio sąrašo principu
•Katalogai turi kiekvieno failo
pirmo bloko numerį.
•FAT lentelė saugoma
operatyviojoje atmintyje

Naudojama: MS-DOS
Vienkryptis sąrašas ir atminties lentelė
Trūkumai:
•FAT lentelė saugoma operatyviojoje atmintyje ir joje yra
visi failai;
• Visų failų rodyklės yra sumaišytos vienoje lentelėje.
Pav.
20GB – diskas;
1KB – bloko dydis;
Lentelės dydis: 20 milijonų įrašų.
Įrašo dydis min= 3B, jei norime efektyvesnės paieškos 4B;
Lentelė bus: 60MB arba 80 MB
Galėtume naudoti virtualią atmintį, bet kiek sugaišime
perkėlimui iš/į RAM.
I - mazgai
Kiekvienas failas turi lentelę
I-mazgą. Per I-mazgą galima
rasti visus failo blokus.

I-mazge yra saugomi atributai


ir failo blokų adresai.

Leidžia laikyti skirtingų failų


blokų sąrašą skirtingose
vietose.
I - mazgai
Privalumai:
Konkretus I – mazgas turi būti atmintyje tada, kai
atitinkamas failas yra atidarytas.

Pav. Kiekvienas mazgas užima n Baitų, o vienu metu


sistemoje gali būti atversta K failų, tai reikės K*n Baitų.
Nepriklausomai nuo to ar disko dydis yra 1GB ar 10 GB.

Tai gerokai mažiau už FAT. Nes FAT Lentelės dydis yra


proporcingas disko dydžiui. Nes FAT saugo sąrašą visų
atminties blokų.
I - mazgai
Trūkumai:
Kiekvienam failui išskiriamas
fiksuotas adresų kiekis, o jo
gali neužtekti.

Vienas iš sprendimų:
rezervuoti paskutinį bloką ne
duomenims, o papildomam
adresų blokui. Kaip parodyta
paveiksle.
Katalogų realizacija(1)
• Norint perskaityti failą, reikia jį atidaryti.
• Failų atidarymui Os naudoja vartotojo nustatytus kelius,
kad rasti failą kataloge.
• Kataloge saugoma informacija, reikalinga disko bloko
radimui, kuri priklauso nuo sistemos:
1. Viso failo disko adresas (nepertraukiamu failų atveju);
2. Pirmo bloko numeris ( vienkrypčio sąrašo ir vienkrypčio
sąrašo su atminties lentele atvejais)
3. i- mazgo numeris
Bendru atveju katalogų sistemos funkcija yra paversti vardo
informaciją į informaciją, kur yra failas.
Katalogų realizacija(2)
Kyla klausimas, kur saugoti atributus?

(a) Katalogas sudarytas iš fiksuoto dydžio įrašo, kuriame


saugomi: failų vardai, atributai ir rodyklė į failą diske.
(b) Katalogas, kuriame kiekvienas įrašas sudarytas
iš failo vardo ir i-mazgo.
MS-DOS katalogo įrašas
Ilgų vardų palaikymas

Du būdai ilgų vardų saugojimo kataloguose. (a) tiesiogiai


kataloge. (b) heape.
Ilgų vardų palaikymas
A – atveju.
• Pašalinus failą lieką kintamo dydžio tarpas.
• Įrašas kataloge gali būti pakankamai ilgas ir užimti du puslapius.
Tokiu atveju skaitant katalogo įrašą gali įvykti pertraukimas, nes
nepakrautas antras puslapis.

B – atveju.
Kataloge vienoje krūvoje saugomos nuorodos į failo
vardus ir atributai. O patys failų vardai saugomi kitoje
krūvoje „Heap“.
Tiek A ir B katalogų schemos, jei turėsime 1000 failų, bus
lėtos. Nes skaitome nuosekliai.
Bendras failų naudojimas

Orientuotas aciklinis grafas.


Bendras failų naudojimas

(a) Situacija prieš failo surišimą;


(b) Situacija po failo surišimo;
(c) Situacija, kai savininkas panaikina savo failą.
Bendras failų naudojimas
• Bendrai naudojamas failas, gali būti skirtinguose
kataloguose vartotojo požiūriu.
• Failų sistema yra aciklinis grafas, bet ne medis.

Problema: Jei katalogai rodo į disko adresus, kur yra failas,


negalima jo bendrai naudoti.
Sprendimas:
• Katalogai turi rodyti ne į disko adresus, bet į duomenų
struktūrą surištą su failu.
• Taip pat naudoti Skaitliuką, kuris rodo kiek vartotojų
naudoja failą.
• Trynimo atveju tikriname, ar count = 0, ir tik tada triname
Žurnalinės failinės sistemos
Pavyzdys: Tarkime reikia pašalinti failą. Tiek UNIX,
tiek Windows atliekami šie veiksmai:
•Pašalinamas įrašas iš katalogo.
•Pašalinamos nuorodos į užimamus blokus
•Atlaisvinti blokai talpinami į laisvų blokų sąrašą.

Problema, jei kokiame nors žingsnyje įvyksta


avarija.
Žurnalinės failinės sistemos
(journaling file systems)
Pagrindinis principas:
Visi veiksmai, kuriuos turi atlikti failinė
sistema yra užrašomi į specialų žurnalą.

Tikslas: Patikimumas (failų atstatymas


po “avarijos”)

Pvz.: NTFS, EXT3, ReiserFS.


Žurnalinės failinės sistemos

Žurnalinėse failinėse sistemos visi veiksmai:

Yra įrašomi į žurnalą ir vykdomi tranzakcijų


principu (turi būti duotas “ženklas”, kad visi
veiksmai įvyko).

Visi veiksmai žurnale yra „idenpotentiniai“ (angl.


idenpotent), t.y. gali būti atliekami po kelis
kartus.

You might also like