Organizacija datotečnega sistema
Pri obravnavi organizacije datotečnega sistema nas bo zanimalo:
- strukture datotek,
- tipi datotek,
- načini dostopa do datotek.
Strukture datotek
Starejši datotečni sistemi so bili organizirani v zapise – skupke podatkov, ki so se zapisali ali prebrali v eni vhodno-izhodni operaciji. Celotna datoteka je bila sestavljena iz določenega števila zapisov. Ta pristop je imel dva večja problema:
- če nisi poznal strukture, je bilo datoteko zelo težko prebrati,
- uporabniško definirani zapisi so bili pogosto premajhni.
Unix je uvedel zelo drugačen pristop. Datoteko so definirali kot skupek bajtov: uporabniki lahko bajte organizirajo v logične zapise, vendar le-ti datotečemu sistemu niso vidni, datotečni sistem razdeli datoteko v bloke nespremenljive dolžine, ki so za uporabnika nevidni.
Tri glavne prednosti tega pristopa so posplošenost, prilagodljivost in dobro izvrševanje. Za izbiro najboljše velikosti bloka skrbi datotečni sistem, ki je kompromis med:
- optimizacijo prenosa podatkov med diskom in spominom: za to rabimo velike bloke, da zmanjšamo število dostopov do diskov,
- čim manjša notranja fragmentacija: za to mora velikost bloka ustrezati za povprečne velikosti datotek.
V MS-DOS-u pa se pojavi še en problem. Ko so razvili prve diske za PC so predpostavljali, da ne bodo nikoli večji od 32 MB, zato naj tudi ne bi bilo potrebno več kot 64.000 blokov. Do uvedbe FAT/32 je bila najmanjša velikost bloka 32 kb.
Tipi datotek
Razlikujemo datoteke naslednjih tipov:
- Navadne datoteke; te datotek so lahko ASCII ali binarne datoteke; izvršljive datoteke se v Unix sistemih indentificira z magičnim številom (angl. magic number) v Windows pa po končnici v imenu datoteke.
- Direktoriji; na disku so shranjeni kot navadne datoteke z dvema pomembnima razlikama:
- njihova vsebina je dosegljiva le preko vnaprej določenih operacij za delo z direktoriji,
- vsaka sprememba v direktoriju se takoj zabeleži na disk, vsebina direktorija je seznam datotek,
- omogočajo preglednejše delo z datotekami in lažje določanje pravic nad njimi.
- Bločne in znakovne naprave;
- uporabljajo jih Unix sistemi za komunikacijo z strojno opremo in perifernimi napravami,
- znakovne naprave opravljajo medpomnenje same, imena naprav se običajno začenjajo z "r",
- bločne naprave pričakujejo, da medpomnenje opravlja jedro, predstavljajo naprave, ki delajo s podatki v večjih enotah npr. blokih.
- Trde povezave – dodatno ime za datoteko, kažejo na določeno lokacijo na disku in predstavljajo neločljivo povezavo;
- Mehke povezave – simbolne povezave
- kažejo na določeno datoteko na določeni poti in ne na določen naslov na disku,
- lahko kažejo nikamor
- datoteka FIFO ali poimenovani pipe
- povezava med dvema nepovezanima procesa na istem računalniku
- podatki so lahko prebrani le enkrat v istem vrstnem redu kot so bili kreirani
- vtičnice Unix
- povezave med oddaljenimi procesi
Načini dostopa do datotek
Najpogostejši način dostopa je zaporedni (sekvenčni) dostop, kjer se datoteko bere od začetka naprej. Datotečni sistem mora poskrbeti za datotečni kazalec (index), ki kaže na trenutni položaj v datoteki.
Direktni dostop omogoča uporabniku, da zahteva točno določen zapis ali pa na kolikšnem zamiku v bajtih se mora izvesti naslednja operacija.
Zaporedni dostop je lepo viden pri delu z datotekami v različnih programskih jezikih. Običajno gre za uporabo dveh kazalcev, prvi kaže na datoteko samo, drugega pa uporabi za postopanje po zapisih znotraj same datoteke. Postopek pisanja/branja iz datoteke je običajno sledeč:
- Odpremo datoteko, pri čemer navedemo ime in pot ter način odpiranja datoteke (branje ali pisanje). Sistem nam vrne kazalec na datoteko ali pa napako.
- Z uporabo iskalne funkcije se postavimo na zapis, ki ga hočemo prebrati.
- Preberemo ali zapišemo zapis.
- Zapremo datoteko.