OPERATIVNI SISTEMI
Organizacija sistema datoteka

Sistemi datoteka se skladište na diskovima ili nekom drugom medijumu sekundarne memorije. Svaki disk se može podijeliti na jednu ili više particija, kao na slici 1, pri čemu na particijama mogu da budu nezavisni sistemi datoteka. Nulti sektor diska se naziva glavni startni slog (eng. Master Boot Record, MBR) i koristi se za startovanje računara. Tabela particija koja se nalazi na kraju glavnog startnog sloga sadrži početnu i krajnju adresu svake particije i jedna od tih particija je označena kao aktivna.


Slika 1. Primjer strukture sistema datoteka

Nakon startovanja računara BIOS (eng. Basic Input-Output System) čita i izvršava glavni startni slog. Na osnovu informacije u glavnom startnom slogu locira se aktivna particija na disku i učitava se u njen prvi blok koji se naziva boot blok u operativnu memoriju. Program iz boot bloka puni operativni sistem koji se nalazi na aktivnoj particiji. Svaka particija ima boot blok bez obzira da li se na njoj nalazi operativni sistem koji se može boot-irati ili ne. Osim boot bloka struktura particije diska zavisi od sistema do sistema. Bitan dio particije je i superblok koji sadrži ključne parametre o sistemu datoteka kao što su: tip sistema datoteka, veličina sistema datoteka, broj slobodnih blokova u sistemu datoteka i drugi administrativni podaci. Jezgro operativnog sistema održava superblok u operativnoj memoriji i periodično ga upisuje na disk. S obzirom da superblok sadrži kritične podatke neophodne za rad sistema, operativni sistem replikuje sadržaj superbloka na disk za slučaj da otkaže dio diska na kome je upisan superblok. Pored superbloka u particiji se nalaze podaci o slobodnim i zauzetim blokovima datog sistema datoteka u obliku bitmape ili povezane liste pokazivača. Takođe, u svakoj particiji se nalaze direktorijumi i datoteke koji pripadaju datom sistemu datoteka.

Particije mogu da budu primarne, logičke i dodatne. Primarne particije su one sa kojih je moguće podizanje operativnog sistema. Svaki disk mora da ima bar jednu primarnu particiju. Upotrebom više primarnih particija moguće je instalirati i koristiti više operativnih sistema na istom disku. Logičke particije su particije čija je namjena skladištenje podataka. Sa logičkih particija se ne može podizati operativni sistem. Dodatne particije omogućavaju prevazilaženje ograničenja koje postoji po pitanju maksimalnog broja mogućih particija na jednom disku. Dodatna particija može da sadrži više logičkih particija.

Organizacija datoteka

Organizacija datoteka označava logičku strukturu slogova datoteke na osnovu načina na koji im se pristupa. Kriterijumi koji se koriste kod izbora organizacije datoteke su:

  • brz pristup podacima,
  • jednostavnost ažuriranja,
  • jednostavnost održavanja,
  • pouzdanost.

Operativni sistemi podržavaju datoteke koje na implementacionom nivou mogu biti nizovi bajtova, nizovi slogova ili nizovi složenijih organizacija podataka. Postoji veliki broj organizacija datoteka koje su implementirane ili predložene za implementaciju. Od svih do sada poznatih organizacija datoteka, najčešće se koriste sljedeće:

  • serijska,
  • sekvencijalna,
  • spregnuta,
  • rasuta ili direktna (heširana),
  • indeks-sekvencijalna,
  • indeksna sa B-stablima,
  • sa više ključeva.

Serijska organizacija datoteke omogućava da se podaci upisuju redosljedom kojim nastaju. Mogu se upisivati slogovi promjenljive dužine i promjenljiv skup polja unutar sloga. Unutar serijske organizacije ne postoji struktura. Razlika između serijske i sekvencijalne organizacije datoteka je u tome što kod sekvencijalne organizacije postoji informacija o vezama između slogova logičke strukture datoteke. I kod jedne i kod druge organizacije slogovi se upisuju u susjedne lokacije unutar memorisjkog prostora dodjeljenog datoteci. Svi slogovi su iste dužine.

Kod spregnute organizacije se koriste pokzivači. Postoje jednostruko, dvostruko i višestruko spregnute datoteke. Za rasutu organizaciju je karakteristično da se adresa lokacije dobija transformacijom vrijednosti identifikatora sloga. Neophodno je da svaki slog ima svoj ključ. Indeks-sekvencijalna organizacija datoteke uvodi tri zone: primarnu zonu (ili zonu podataka), zonu indeksa i zonu prekoračenja. Zbog poboljšanja performansi indeks-sekvencijalne datoteke se periodično reorganizuju. Ovaj nedostatak je otklonjen kod indeksne organizacije sa B-stablima koja ima primarnu zonu i zonu indeksa. Osnovna karakteristika indeksne organizacije sa B-stablima je da postoji automatska reorganizacija po potrebi. Datoteke sa više ključeva su najčešće indeksne datoteke sa B-stablom ili nekom varijantom B-stabla. Za svaki ključ postoji po jedna zona indeksa.

Metode pristupa

Da bi se podaci iz datoteke koristili potrebno je da se podacima pristupi i da se nakon toga učitaju u operativnu memoriju računara. Informacijama u datoteci se može pristupiti na više načina. Načini pristupa uskladištenim podacima se zovu metode pristupa. Najjednostavniji metod pristupa je sekvencijalni pristup. Sekvencijalni pristup je zasnovan na modelu datoteke u obliku trake. Kod sekvencijalnog pristupa postoji pokazivač na trenutnu lokaciju unutar datoteke i podaci se procesuiraju slog po slog. Ovakav način pristupa se koristi kod editora i programskih prevodilaca.

Drugi metod je direktan pristup ili relativni pristup. Pretpostavlja se da se u datoteci nalaze logički slogovi fiksne dužine. Direktan pristup je zasnovan na modelu datoteke u obliku diska. Datoteka se može posmatrati kao numerisan niz blokova ili slogova i zbog toga se slogovima u datoteci može pristupati brzo i to po proizvoljnom redosljedu. Direktan pristup se koristi kod baza podataka.

Postoje i druge metode pristupa koje se zasnivaju na direktnom pristupu, kao što je indeksirani pristup koji se zasniva na primjeni indeksa. Kod indeksiranog pristupa za datu datoteku se kreira indeks. Indeks sadrži pokazivače na blokove datoteke. Kod takvih metoda pristupa prvo se pretražuje indeks, a zatim se na osnovu pokazivača direktno pristupa željenom slogu.

Performanse pristupa podacima direktno zavise od toga gdje se podaci nalaze. Keš memorija omogućava komponentama računara, koje imaju različite brzine rada, da efikasnije kumuniciraju privremenim premještanjem podataka sa sporijeg uređaja na brži uređaj. Keš memorija je skuplja od uređaja sa kojih se podaci privremeno prebacuju, tako da povećanjem veličine keš memorije cijena sistema raste.

Metode dodjele prostora na disku

Jedan od problema koji se riješava u okviru sistama za upravljanje datotekama je kako dodijeliti prostor datotekama na disku tako da im se može brzo pristupiti i da korišćenje prostora na disku bude što je moguće bolje. Postoji više mogućih metoda za dodjelu prostora. Tri glavne metode za dodjelu prostora na disku su:

  • dodjela susjednih memorijskih lokacija,
  • dodjela povezanih blokova fiksne veličine,
  • korišćenje šema sa indeksima.

Metoda dodjele susjednih memorijskih lokacija za skladištenje date datoteke koristi susjedne blokove diska. Dodjela susjednih blokova je jednostavna za realizaciju. Susjednost blokova poboljšava performanse. Na taj način ova implementaciona metoda omogućava brzo i jednostavno izračunavanje adrese bloka u kome se nalaze podaci. Za pristup podacima potreban je samo pomjeraj od početka datoteke. Moguć je sekvencijalan i direktan pristup podacima. Nedostatak strategije dodjele susjednih memorijskih lokacija jeste eksterna fragmentacija.

Metoda dodjele povezanih blokova fiksne veličine omogućava skladištenje svih datoteka tako što se koriste blokovi fiksne veličine. Susjedni blokovi se povezuju u povezanu listu. Osnovna prednost ove implementacione metode je da nema eksterne fragmentacije. Upravljanje memorijom je pojednostavljeno jer su svi blokovi iste veličine. Ne postoji potreba za premještanjem ili kompakcijom neke datoteke. Blokovi mogu da budu razbacani bilo gdje na disku. Nedostatak može da bude degradacija performansi kod direktnog pristupa podacima, jer je potrebno slijediti pokazivače od jednog bloka diska do sljedećeg.

Metode koje koriste šemu sa indeksima svakoj datoteci pridružuju tabelu indeksa. Svaki indeks u tabeli indeksa pokazuje na blokove diska koji sadrže stvarne podatke date datoteke. Slog za svaku datoteku unutar direktorijuma sadrži broj bloka indeksa i ime datoteke. Za male datoteke neiskorišćenost bloka indeksa može da bude velika, jer i u slučajevima kada se mali broj pokazivača stvarno koristi cio blok indeksa mora da bude dodijeljen.Ovakav način implementacije sistema datoteka obezbjeđuje brz direktan pristup podacima.

    Index