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

Циљ и исход предмета

Упознавање са наменом и функцијама оперативних система, као и са основним принципима пројектовања и имплементације оперативних система. Познавање савремених оперативних система. Разумевање кључних разлика између објектно-оријентисаних, модуларних, слојевитих или система заснованих на микрокернелу. Познавање механизама конкурентног извршавања као и проблема који том приликом настају. Познавање алгоритама распоређивања. Разумевање концепта виртуелне меморије, витруелних уређаја и система датотека.

Теоријска настава

Улога и циљ оперативног система. Основни принципи. Апстракције, процеси, ресурси. Кернел и заштита меморије. Заштићени режим рада процесора. Нивои привилегија и прекиди у заштићеном режиму рада. Системски позиви. Мултитаскинг и замена контекста. Стања таскова и истискивање. Алгоритми распоређивања. Примери процеса и кернела за Unix, Solaris, Linux и Windows. Микрокернел архитектура. Појам датотеке. Системи датотека. Садржај и структура директоријума. Додељивање слободног простора. Примери неких система датотека. Управљање меморијом. Фиксне и динамичке партиције. Страничење и сегментација. Страничење на захтев и виртуелна меморија. Алгоритми замене страница. Конкурентно извршавање. Механизми узајамног искључивања и синхронизације међу нитима и процесима.

Практична настава

Рад у конзоли - cd, pwd, gcc, make, mount, grep и сл. Превођење система Linux, писање корисничких програма, монтирање диска и тестирање. C и asm, употреба #инцлуде и #define, кључне речи extern и static, како се C и asm пишу заједно, примери. TTY, fs део Linux система - pipe, char, file, block. Тастатура, прекидна рутина за тастатуру, конвертовање сцан у АСЦИИ, библиотечке функције. Заштићени режим рада процесора, GDT, LDT, IDT, системски позиви. Linux boot – читање дискете, улаз у заштићени режим, постављање GDT, LDT и IDT табела. Рад са процесима и нитима - TSS, fork, exec, sched. HDD, партиције, Minix FS. MMU - пагинг, прекиди и библиотечке функције. Нити - стање трке и узајамно искључивање. Решавање проблема синхронизације, кључеви, мутекси и семафори.