380 likes | 966 Views
Sistemi datoteka. Šta ćemo učiti. Datoteka Zaštita i prava pristupa Dodela prostora za datoteke Upravljanje slobodnim prostorom Direktorijum. Jedna od 4 osnovne funkcije svakog računarskog sistema je čuvanje podataka.
E N D
Šta ćemo učiti • Datoteka • Zaštita i prava pristupa • Dodela prostora za datoteke • Upravljanje slobodnim prostorom • Direktorijum
Jedna od 4 osnovne funkcije svakog računarskog sistema je čuvanje podataka. • Fizičko skladištenje podataka se obavlja na magnetnim ili optičkim medijumima velikog kapaciteta (sekundarna memorija - diskovi), dok korisnik te podatke vidi i kontroliše kroz logičku strukturu koju je definisao i podržava operativni sistem, a to je sistem datoteka (file system). • Sistem datoteka, koji je za korisnika svakako najvidljiviji aspekt čuvanja podataka, se sastoji od dva osnovna dela: kolekcije datoteka (fajlova) i kolekcije direktorijuma.
Prvi nivo pripreme diska za funkciju čuvanja podataka je formatiranje diska (low-level formatting), drugi nivo je particionisanje diska u logičke volumene, dok je treći nivo formiranje sistema datoteka (high-level formatting). • Da bi disk ili particija diska mogli da se koriste za čuvanje podataka, neophodno je formiranje sistema datoteka koji predstavlja skup sistemskih modula i podataka koje operativni sistem koristi za upravljanje datotekama.
Većina operativih sistema podržava rad sa različitim sistemima datoteka. Linux podržavasistemedatoteka ext, ext2, ext3, reiserFS, dok Windows podržavaradsasistemimadatoteka FAT, FAT32, NTFS. • Dabi se prevazišao problem kojinastajeusledvelikogbrojarazličitihsistemadatoteka, u poslednjevreme se uvodinovilogičkikoncept – virtuelnisistemdatoteka (VFS – virtual file system). • To je objektnoorjentisaninačinrealizacijesistemadatoteka, kojikorisnikuomogućavauniformnipristupsvimdatotekama, bezobziranasistemdatotekakoji je implementiran. • Dijagramtakveimplementacije je prikazannasledećojslici:
U ovom slučaju, u okviru VFS-a su implementirani moduli koji prepoznaju sistem datoteka sa kojim se trenutno radi i koji obavljaju operacije u svakom od priključenih sistema, a složenost tog interfejsa je enkapsulirana u VFS modulu i ostaje sakrivena za korisnika.
Datoteka • Datoteka je imenovan skup povezanih informacija koje se čuvaju na disku i za korisnika predstavljaju logičku celinu (to može biti tekst, slika, muzički ili video sadržaj). • Ona predstavlja fizički skup podataka u sekundarnoj memoriji (tako je vidi operativni sistem), ali predstavlja i skup informacija koji čine logičku celinu (tako je vidi korisnik). • Podaci jedne datoteke su često smešteni na različitim segmentima diska. • Da bi korisnik mogao svaki put da ih vidi i dosegne putem definisanog imena, operativni sistem mora posedovati niz kontrolnih podataka za svaku od datoteka.
Datoteka se sastojiod: • podataka smeštenih u sekundarnoj memoriji, • metapodataka koji između ostalog definišu ime, tip, raspored blokova u memoriji, informacije o pravima i vlasništvu, vreme, datum itd. Ovi podaci čine Kontrolni blok datoteke (FCB) i predstavljaju sistemske podatke na osnovu kojih operativni sistem upravlja datotekom.
Operacije koje operativni sistem može da izvrši nad datotekom: • Izrada • Upis u datoteku • Čitanje iz datoteke u operativnu memoriju • Pretraživanje • Brisanje • Skraćivanje (odsecanje) datoteke • Osim ovih moguće dodatne operacije su preimenovanje, kopiranje, dodavanje sadržaja, itd.
Upravljanje sistemom datoteka podrazumeva da operativni sistem u okviru sistemskih tabela i podataka, poseduje i podatke o „Datotekama u radu“. • Tipično, operativni sistem koristi dva nivoa podataka – podatke o otvorenim datotekama vezanim za jedan proces koji se izvršava i podatke o otvorenim datotekama u celom sistemu.
Datoteke se prema nameni dele u dve osnovne grupe: • Izvršne datoteke (programi spremni za izvršavanje), • Datoteka sa podacima. • Prema formatu podataka datoteke mogu biti: • Teksutalne, • Binarne.
U većini operativnih sistema, svakoj datoteci se pridružuje tip koji se vidi kao ekstenzija imena datoteke. • Tip se određuje u zavisnosti od aplikacije u kojoj je izrađena i formata podataka koji čuva. Informacija o tipu datoteke pomaže operativnom sistemu da poveže datoteku sa aplikacijom u kojoj se datoteka može koristiti.
Neki od najpoznatijih tipova datoteka su: • exe, com binarna izvršna datoteka • lib, dll statičke i dinamičke biblioteke • cpp izvorni kod u C++ • txt tekstualni podaci • doc dokument napravljen u programu za obradu teksta • zip, rar arhive • jpeg, bmp slike
Zaštita i prava pristupa • Kontrola pristupa i promene sadržaja datoteka je jedna od veoma značajnih funkcija koje operativni sistem mora imati. • Na primer, u Unix/Linux sistemima zaštita se uglavnom ostvaruje pomoću dva mehanizma: • Definisanja vlasničke kategorije • Vlasnik (korisnik koji je napravio datoteku) • Grupa (korisnička grupa kojoj je datoteka formalno priključena) • Svi (svi korisnici sistema) • Definisanje pristupnih prava se formira kao proizvoljan kombinacija osnovnih prava: • Čitaj (Read) • Piši (Write) • Izvršavaj (Execute)
U Windows operativnim sistemima, administracija kontrole pristupa i prava nad datotekama je ostvarena kroz sistem Korisnika i Grupa. Korisnik pripada Grupi koja može pripadati nadgrupi itd. • Pri određivanju prava se poštuju principi: • Nasleđivanja • Sabiranja dozvola • Jače zabrane • Dozvole za rad sa određenim datotekama se formiraju kao standardne dozvole u koje spadaju: • Čitanje • Pisanje • Čitanje i izvršavanje • Modifikacija • Puna kontrola
Dodela prostora za datoteke (alokacija) • Operativni sistem dodeljuje datoteci fizički prostor na disku (blok) na tri načina, jednim od algoritama alokacije: dodelom kontinualnog prostora, vezivanjem blokova i mapom datoteka. • Dodela kontinualnog prostora • Svaka datoteka zauzima kontinualni prostor na disku. Operativni sistem pamti adresu prvog bloka i dužinu datoteke. Dobra strana ovog algoritma je jednostavnost i brzina. Loša strana je ograničen prostor.
Vezivanje blokova • Svaka datoteka sadrži proizvoljan broj blokova koji su razbacani po disku. • Operativni sistem prepoznaje blokove koji pripadaju jednoj datoteci uz pomoć ulančanog opovezivanja blokova. • OS pamti adresu prvog i poslednjeg bloka u datoteci. • Ostali blokovi se povezuju tako što svaki blok na kraju sadrži pokazivač na sledeći blok u nizu. • Dobra strana ovog algoritma je proširivost datoteke, a loša je sporo pretraživanje sadržaja i mogućnost lakog oštećenja (gubitkom jednog bloka prekida se lanac i drugi deo datoteke je izgubljen).
Mapa datoteka • Svaka datoteka sadrži proizvoljan broj blokova koji su razbacani po disku. • Za svaku datoteku postoji sistemska baza podataka koja čuva informacije o blokovima koji pripadaju jednoj datoteci.
Upravljanje slobodnim prostorom • Funkcija dodele prostora datotekama je blisko povezana sa još jednom funkcijom operativnog sistema koja odlučuje kako i kojim redom će slobodan prostor na disku biti dodeljen datotekama koje se formiraju ili proširuju. • Dva osnovna algoritma za upravljanje slobodnim prostorom su mape bitova i povezane liste.
Mape bitova • Svaki fizički blok na disku sadrži bit koji opisuje status bloka: 0 znači da je blok slobodan, a 1 da je zauzet. Statusni biti iz svih blokova na disku predstavljaju mapu zauzetosti diska. Na primer, ako su slobodni blokovi na disku: 2, 3, 4, 9, 10, 12, 13, 14, 15, 25, 26, dok su svi ostali zauzeti, mapa zauzetosti bi imala sledeći oblik: 01101000011011110000000001100000.... • Operativni sistem pravi kopiju te mape u operativnoj memoriji, na osnovu koje dodeljuje datotekama slobodne blokove. Najvažnije u tom procesu je da se prilikom zauzeća i oslobađanja blokova održi konzistentnost podataka u OM i na disku.
Povezane liste • Informacija o slobodnim blokovima se formira kao lista. Početak liste ukazuje na prvi slobodan blok, a svaki slobodan blok sadrži pokazivač na sledeći slobodan blok. Ova metoda je mnogo sporija od mape bitova, ali je količina sistemskih podataka pomoću kojih OS vodi evidenciju o slobodnom prostoru na disku značajno manja. Kao i kod Vezivanja blokova, mana je što oštećenjem jednog bloka gubimo pokazivač na sve naredne blokove.
Direktorijum • Sve datoteka u sistemu se radi preglednosti i kontrole pristupa grupišu u posebne strukture – direktorijume. • Svi direktorijumi sa datotekama koje im pripadaju formiraju sistem datoteka. • Direktorijum se sastoji od • skupa kontrolnih blokova svih datotka koje mu pripadaju, • skupa metapodataka (sistemskih podataka) koji opisuju strukturu samog direktorijuma.
Operacije koje operativni sistem može izvršiti u procesu administracije direktorijuma su: • Izrada i brisanje datoteka i poddirektorijuma u okviru tekućeg direktorijuma • Prikazivanje sadržaja direktorijuma • Pretraživanje direktorijuma • Promena imena datoteke i poddirektorijuma