You are on page 1of 5

Оперативни системи

Вежба 8: Датотеке и системи датотека

Датотеке
Датотека је именован скуп повезаних информација које се чувају на диску и за корисника
представљају логичку целину (то може бити текст, слика, музички или видео садржај). Она
представља физички скуп података у секундарној меморији (тако је види оперативни систем), али
представља и скуп информација који чине логичку целину (тако је види корисник). Подаци једне
датотеке су често смештени на различитим сегментима диска. Да би корисник могао сваки пут да
их види и досегне путем дефинисаног имена, оперативни систем мора поседовати низ контролних
података за сваку од датотека.
Датотека се састоји од:
 података смештених у секундарној меморији и
 метаподатака који између осталог дефинишу име, тип, распоред блокова у
меморији, информације о правима и власништву, време, датум итд. Ови подаци
чине Контролни блок датотеке (FCB) и представљају системске податке на основу
којих оперативни систем управља датотеком.
Датотеке се према намени деле у две основне групе:
 Извршне датотеке (програми спремни за извршавање) и
 Датотека са подацима.
Према формату података датотеке могу бити:
 Текстуалне и
 Бинарне.
У већини оперативних система, свакој датотеци се придружује тип који се види као
продужетак имена датотеке. Тип се одређује у зависности од апликације у којој је израђена и
формата података који чува. Информација о типу датотеке помаже оперативном систему да
повеже датотеку са апликацијом у којој се датотека може користити.
Неки од најпознатијих типова датотека су:
 exe, com бинарна извршна датотека
 lib, dll статичке и динамичке библиотеке
 cpp изворни код у С++ програмском језику
 txt текстуални подаци
 doc документ направљен у програму за обраду текста
 zip, rar архиве
 jpeg, bmp слике
Свака датотека садржи произвољан број блокова који су разбацани по диску. За сваку
датотеку постоји системска база података која чува информације о блоковима који припадају
једној датотеци.
Све датотеке у систему се ради прегледности и контроле приступа групишу у посебне
структуре – директоријуме. Сви директоријуми са датотекама које им припадају формирају
систем датотека.
Директоријум се састоји од
 скупа контролних блокова свих датотека које му припадају и
 скупа метаподатака (системских података) који описују структуру самог
директоријума.
Операције које оперативни систем може извршити у процесу администрације директоријума
су:
 Израда и брисање датотека и поддиректоријума у оквиру текућег директоријума
 Приказивање садржаја директоријума
 Претраживање директоријума
 Промена имена датотеке и поддиректоријума

Додела простора за датотеке (алокација)


Оперативни систем додељује датотеци физички простор на диску (блок) на три начина,
једним од алгоритама алокације: доделом континуалног простора, везивањем блокова и мапом
датотека.
Додела континуалног простора - Свака датотека заузима континуални простор на диску.
Оперативни систем памти адресу првог блока и дужину датотеке. Добра страна овог алгоритма је
једноставност и брзина. Лоша страна је ограничен простор.
Везивање блокова - Свака датотека садржи произвољан број блокова који су разбацани по
диску. Оперативни систем препознаје блокове који припадају једној датотеци уз помоћ уланчаног
оповезивања блокова. ОС памти адресу првог и последњег блока у датотеци. Остали блокови се
повезују тако што сваки блок на крају садржи показивач на следећи блок у низу.
Мапа датотека - Свака датотека садржи произвољан број блокова који су разбацани по
диску. За сваку датотеку постоји системска база података која чува информације о блоковима који
припадају једној датотеци.

Управљање слободним простором


Функција доделе простора датотекама је блиско повезана са још једном функцијом
оперативног система која одлучује како и којим редом ће слободан простор на диску бити додељен
датотекама које се формирају или проширују.
Два основна алгоритма за управљање слободним простором су мапе битова и повезане
листе.
Мапе битова - Сваки физички блок на диску садржи бит који описује статус блока: 0 значи
да је блок слободан, а 1 да је заузет. Статусни бити из свих блокова на диску представљају мапу
заузетости диска. Оперативни систем прави копију те мапе у оперативној меморији, на основу које
додељује датотекама слободне блокове. Добра страна овог алгоритма је проширивост датотеке, а
лоша је споро претраживање садржаја и могућност лаког оштећења (губитком једног блока
прекида се ланац и други део датотеке је изгубљен).
Повезане листе - Информација о слободним блоковима се формира као листа. Почетак
листе указује на први слободан блок, а сваки слободан блок садржи показивач на следећи
слободан блок. Ова метода је много спорија од мапе битова, али је количина системских података
помоћу којих ОС води евиденцију о слободном простору на диску значајно мања. Као и код
везивања блокова, мана је што оштећењем једног блока губимо показивач на све наредне блокове.

Заштита и права приступа


Контрола приступа и промене садржаја датотека је једна од веома значајних функција које
оперативни систем мора имати.
На пример, у Unix/Linux системима заштита се углавном остварује помоћу два механизма:
 Дефинисања власничке категорије:
 Власник (корисник који је направио датотеку)
 Група (корисничка група којој је датотека формално прикључена)
 Сви (сви корисници система)
 Дефинисање приступних права се формира као произвољан комбинација основних
права:
 Читај (Read)
 Пиши (Write)
 Извршавај (Execute)
У Windows оперативним системима, администрација контроле приступа и права над
датотекама је остварена кроз систем Корисника и Група. Корисник припада Групи која може
припадати надгрупи итд.
При одређивању права се поштују принципи:
 Наслеђивања
 Сабирања дозвола
 Јаче забране
Дозволе за рад са одређеним датотекама се формирају као стандардне дозволе у које
спадају:
 Читање
 Писање
 Читање и извршавање
 Модификација
 Пуна контрола
Системи датотека
Једна од 4 основне функције сваког рачунарског система је чување података. Физичко
складиштење података се обавља на магнетним или оптичким медијумима великог капацитета
(секундарна меморија - дискови), док корисник те податке види и контролише кроз логичку
структуру коју је дефинисао и подржава оперативни систем, а то је систем датотека (file system).
Систем датотека, који је за корисника свакако највидљивији аспект чувања података, се
састоји од два основна дела: колекције датотека и колекције директоријума.
Први ниво припреме диска за функцију чувања података је форматирање диска (low-level
formatting), други ниво је партиционисање диска у логичке волумене, док је трећи ниво
формирање система датотека (high-level formatting).
Да би диск или партиција диска могли да се користе за чување података, неопходно је
формирање система датотека који представља скуп системских модула и података које оперативни
систем користи за управљање датотекама.
Већина оперативних система подржава рад са различитим системима датотека. Linux
подржава системе датотека ext, ext2, ext3, reiserFS, док Windows подржава рад са системима
датотека FAT, FAT32, NTFS.
Да би се превазишао проблем који настаје услед великог броја различитих система
датотека, у последње време се уводи нови логички концепт – виртуелни систем датотека (VFS –
virtual file system). То је објектно орјентисани начин реализације система датотека, који кориснику
омогућава униформни приступ свим датотекама, без обзира на систем датотека који је
имплементиран.
Дијаграм такве имплементације је приказан на следећој слици:
У овом случају, у оквиру VFS-а су имплементирани модули који препознају систем
датотека са којим се тренутно ради и који обављају операције у сваком од прикључених система, а
сложеност тог интерфејса је енкапсулирана у VFSмодулу и остаје сакривена за корисника.
Управљање системом датотека подразумева да оперативни систем у оквиру системских
табела и података, поседује и податке о „Датотекама у раду“. Типично, оперативни систем користи
два нивоа података – податке о отвореним датотекама везаним за један процес који се извршава и
податке о отвореним датотекама у целом систему.

You might also like