Основни концепти оперативних система

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

Основни задаци оперативних система су да омогуће што ефикаснију реализацију следећих активности:

  • Управљање процесима;

  • Управљање меморијом;

  • Управљање улазно-излазним уређајима;

  • Управљање подацима;

  • Управљање мрежама.

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

Управљање меморијом се односи на распоређивање процеса у оквиру радне меморије.

Управљање улазно-излазним уређајима се односи на контролу и трансфер података између уређаја и остатка система.

Управљање подацима подразумева чување података, вођење евиденције о њима, манипулацију са њима итд.

Управљање мрежама је данас неизоставни део оперативних система које подразумева умрежавање и комуникацију између рачунара.

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

1. Функције језгра оперативног система

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

2. Системски позиви

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

слика 1.. Системски позив

слика 1.. Системски позив

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

Процесори савремених рачунарских система имају могућност рада у бар два различита режима рада: корисничком (user mod) и системском (supervisor, kernel mod). У системском режиму могуће је извршити све инструкције, док је број инструкција које је дозвољено извршити у корисничком режиму редукован. Наиме, инструкције за осетљиве операције попут приступа улазно-излазним уређајима, заштићеним деловима меморије итд. могуће је извршити само у системском режиму рада процесора. На слици 2. приказан је пример који илуструје позив функције за читање (read) iz C библиотеке која се системским позивом (sys_read) из системског мода обраћа хардверу.

слика 2. Промена режима рада

слика 2. Промена режима рада

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

Системски позиви користе језгро да би омогућили различите сервисе оперативног система. Сви програми, често укључујући и системске, функционишу на нивоу изнад језгра у корисничком режиму рада. Системске активности, које се покрећу системским позивима попут приступа хардверу, обављају се на нивоу језгра, односно у системском режиму рада. Због осетљивости послова којима се језгро бави, оно се обично учитава у посебан, заштићени део меморије и тиме чува од нежељених промена.

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

Када апликативни програми изврше системски позив, параметри системског позива се поставе на предвиђене локације у меморији. Затим, мења се режим рада у системски у којем су, за разлику од корисничког режима, дозвољене све операције које процесор може да уради (слика 3.). Тада језгро преузима контролу и на основу параметара системског позива извршава жељену операцију. По завршетку операције режим рада се поново пребацује у кориснички, а резултати се враћају програму који је извршио системски позив.

слика 3. Кориснички и системски режим рада

слика 3. Кориснички и системски режим рада

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

3. Корисничко окружење

Многи корисници оперативни систем доживљавају кроз корисничко окружење. Оно има задатак да олакша коришћење осталих делова оперативног система, а и целокупног рачунарског система. Развој корисничких окружења пратио је развој рачунара јер су побољшања карактеристика рачунарских система као и повећавања њихове комплексности обично повлачила и захтеве за олакшавање њиховог коришћења.

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

Под линијским корисничким окружењима подразумевају се конзоле, терминали, командне линије итд. које омогућавају да се оперативним системом управља куцањем текстуалних команди – линија текста. Оваква окружења су се међу првима појавила у рачунарству.

Командни интерпретер је најважнији део линијског корисничког окружења и његова улога је да наредбе и податке које корисник унесе у текстуалном облику препозна и наложи оперативном систему извршавање одговарајућих операција (слика 4.).

слика 4. Линијско корисничко окружење

слика 4. Линијско корисничко окружење

За разлику од линијских, екранска корисничка окружења пружају могућност да се оперативним системом управља коришћењем целе површине екрана (слика 5.). Осим уз помоћ тастатуре, команде и манипулације са подацима се могу изводити уз помоћ миша и сличних улазних уређаја. У последње време веома су популарни кориснички интерфејси који омогућавају да се команде задају додирима прстију по екранима осетљивим на додир.

слика 5. Екранско корисничко окружење

слика 5. Екранско корисничко окружење

Радна површина је основни део екранског корисничког окружења на којој су апликације и подаци представљени визуелним елементима. Ови елементи на различите начине реагују на команде које се задају уз помоћ миша, тастатуре итд.

Савремени оперативни системи обично корисницима пружају могућност да користе обе врсте окружења (слика 6.).

слика 6. Екранско и линијско корисничко окружење у истом систему

слика 6. Екранско и линијско корисничко окружење у истом систему

4. Драјвери

Улазно-излазни уређаји имају своје контролере који се користе при комуникацији са осталим деловима система. Са друге (софтверске) стране налазе се драјвери (drivers – управљачки програми) који се надограђују на контролере и омогућавају комуникацију, односно управљање улазно- излазним уређајима. Они се програмирају тако да за различите типове исте врсте уређаја (штампача, хард дискова, тастатура итд.) дефинишу јединствен скуп дозвољених инструкција. Различити уређаји могу захтевати посебне наредбе или параметре за извршавање, а задатак драјвера је да апстрахују ове разлике и направе униформни интерфејс. На тај начин се рад са улазно- излазним уређајима доста олакшава јер се избегава писање посебних програма за сваки тип уређаја, већ се јасно дефинисаним скупом функција омогућава писање универзалних програма за уређаје исте класе. На слици 7. илустрована је позиција драјвера у рачунарском систему.

слика 7. Драјвери

слика 7. Драјвери

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

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

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

WordPress.com лого

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

Google photo

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

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

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

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

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

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