Архитектуре оперативних система

Постоје различити приступи при пројектовању оперативних система. Разлике се најчешће огледају у скупу функција које ће се налазити у језгру и њиховој организацији (структури). У односу на тип језгра постоје:

  1. Монолитни системи;

  2. Слојевити системи;

  3. Системи засновани на микројезгру;

  4. Хибридни системи;

  5. Системи засновани на егзојезгру.

1. Монолитни системи

За архитектуру оперативног система каже се да је монолитна, тј. да има монолитно језгро (monolithic kernel), уколико се у језгру налазе сви сервиси оперативног система заједно са драјверима интегрисани у један програм (слика 1.). При томе, сви делови се покрећу у истом тренутку, извршавају у системском режиму и у истом делу меморије. Приликом покретања оваквог оперативног система језгро се у меморију учитава у целости као један извршни програм. Функције језгра могу једна другу позивати без ограничења. лако се чини да су овакви системи једноставни, они могу бити врло сложени.

слика 1. Монолитни систем

слика 1. Монолитни систем

Веома велика повезаност функција на ниском нивоу обично доприноси брзини и ефикасности оваквих језгара. Монолитно језгро представља једину апстракцију над хардвером тако да се апликативним програмима на располагање стављају системски позиви кроз које су имплементиране услуге оперативног система.

Једна од највећих мана монолитних језгара је лоша отпорност на грешке. У случају да дође до грешке у неком од подсистема, долази до проблема који могу утицати на цео систем и најчешће је једино решење његово поновно подизање. Неки од најпознатијих система који имају монолитна језгра су: MS-DOS, BSD, AIX, Windows 98 и GNU/Linux.

2. Слојевити системи

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

Највећи проблем оваквих система је неефикасност. Наиме, системски позив пролази кроз више слојева а при сваком пролазу се прослеђују подаци, мењају параметри итд. што доводи до успорења.

При томе, слојеви не морају бити у језгру оперативног система већ, зависно од имплементације, одређени слојеви могу функционисати у корисничком режиму (слика 2.).

слика 2. Слојевити систем

слика 2. Слојевити систем

Најнижи слој чини хардвер или његова апстракција, на највишем слоју је подршка за апликативне програме а између може бити произвољан број слојева. У најпознатије оперативне системе са слојевитом архитектуром спадају: THE, Multics itd.

3. Системи засновани на микројезгру

За разлику од монолитних система, а у већини имплементација и од слојевитих система, архитектура која се заснива на микројезгру (microkernel) подразумева минимално језгро у којем се налазе само најосновније функције. Део функција које би у претходним случајевима биле део језгра се измештају у кориснички простор и то у засебне просторе у меморији тако да са безбеднијег нивоа приступају језгру. На овај начин се решавају проблеми који настају када дође до грешке при примени неке од ових функција, тако да се то не одражава на функционисање језгра. Услуге оперативног система које су измештене из језгра се њему обраћају како би оствариле своје циљеве (првенствено приступ хардверу), а преко њега и комуницирају са другим услугама. Услуге које обављају сличне задатке у оквиру оперативних система се групишу у процесе који се називају серверски процеси, а често и само сервери. Драјвери се често не налазе у микројезгру, већ припадају одговарајућим серверима. Такође, сервер за управљање меморијом, сервер процеса, сервер за управљање мрежама, сервер за управљање улазно-излазним уређајима итд. неки су од најважнијих сервера који се могу имплементирати при оваквом приступу (слика 3.).

слика 3. Систем заснован на микројезгру

слика 3. Систем заснован на микројезгру

Архитектуру микројезгра одликује већи степен сигурности у односу на монолитне системе, али су они обично спорији. Наиме, промене меморијског простора доводе до кашњења и мање пропусности у поређењу са системима са монолитним језгром. Оне су неопходне јер се сервери и језгро не налазе у истом адресном простору и не извршавају у истом режиму. Често прослеђивање порука између малог језгра и сервера такође доводи до кашњења. Имајући у виду наведене разлоге, може се закључити да архитектура заснована на микројезгру пружа већи степен сигурности и у односу на слојевите системе, али да брзина није одлика ни једног ни другог приступа

Примери система који су дизајнирани на принципима микројезгра су: Mach, Minix, QNX и L4.

4. Хибридни системи

Хибридна архитектура система, односно хибридна језгра (hybrid kernel) представљају компромис између монолитне и архитектуре која се заснива на микројезгру (слика 4.). Неке веома битне, као и функције које се често извршавају, спуштају се у језгро како би се повећала брзина и ефикасност, али се добар део функција задржава у нивоима изнад језгра. Код оваквог приступа најважније је прецизно одредити које функције треба спустити у језгро, а које оставити ван, јер ће у супротном хибридни приступ личити на систем са монолитним (у случају да се превише функција имплементира у језгро) или микројезгром (ако доста важних функција остане ван језгра).

слика 4. Хибридни систем

слика 4. Хибридни систем

Хибридна језгра се користе у већини комерцијалних оперативних система: Apple Mac OS X, Microsoft Windows NT 3.1, NT 3.5, NT 3.51, NT 4.0, 2000, XP, Vista, 7, 8, 10 и сл.

5. Системи засновани на егзојезгру

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

Концепт егзојезгра (exokernel) представља компромис између ова два супротна приступа (слика 5.). Идеја је да језгро обезбеди основне ресурсе и да апликацијама препусти рад са њима. Ово се постиже премештањем апстракције изнад хардвера у посебне библиотеке које обезбеђују минималне апстракције уређаја. На тај начин се програмери могу ослонити на одговарајућу библиотеку али им се оставља и могућност да имплементирају своје библиотеке. Другим речима, програмери имају слободу у избору нивоа апстракције када је приступ хардверу у питању. Овакав начин рада може да допринесе знатном убрзању и побољшању перформанси. Са друге стране, додатна флексибилност за корисничке апликације може да доведе до смањења конзистентности и неуредности кода.

слика 5. Егзојезгро

слика 5. Егзојезгро

Пошто је већи део функција измештен из егзојезгра, оно је обично мање од претходно поменутих типова језгара. Примери система који имају архитектуру засновану на егзојезгру су: XOK, ExOS итд.

као материјал за припрему овог текста коришћена је књига „Оперативни системи“ аутора Мирослава Марића

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google photo

Коментаришет користећи свој Google налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s