Викигимназијалац:Оперативни системи/Основни концепти оперативних система

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

Основни задаци

уреди

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

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

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

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

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

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

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

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

уреди

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

То је део софтвера који се први учита при покретању рачунарског система и остаје у њој до завршетка рада односно искључивања система.

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

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

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

уреди

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

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

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

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

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

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

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

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

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

Корисничко окрузење

уреди

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

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

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

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

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

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

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

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

Драјвери

уреди

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