Пређи на садржај

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

С Википедије, слободне енциклопедије

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

У односу на тип језгра постоје:

  1. монолитна архитектура
  2. слојевита архитектура
  3. архитектура која се заснива на микројезгру
  4. хибридна архитектура
  5. архитектура заснована на егзојезгру

Монолитна архитектура[уреди | уреди извор]

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

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

Слојевита архитектура[уреди | уреди извор]

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

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

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

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

Архитектура која се заснива на микројезгру[уреди | уреди извор]

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

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

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

Хибридна архитектура[уреди | уреди извор]

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

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

Архитектура заснована на егзојезгру[уреди | уреди извор]

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

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

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

Литература[уреди | уреди извор]

као материјал за припрему овог текста коришћена је: књига „Оперативни системи“ аутора Мирослава Марића, https://racunariprogramiranje.wordpress.com/2019/09/10/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B8%D1%85-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0/ https://imi.pmf.kg.ac.rs/index-old.php?option=com_docman&task=doc_view&gid=330 https://srednjaskolabrus.edu.rs/2020/10/26/arhitekture_op_sistema77356/