Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 28

СИСТЕМСКИ

СОФТВЕР

ПРЕДАВАЊЕ 1 – ПРЕГЛЕД НА ОПЕРАТИВЕН


СИСТЕМ
доц. д-р Доне Стојанов
ПРЕГЛЕД НА ОПЕРАТИВЕН СИСТЕМ
 Оперативниот систем е програма која делува како посредник
помеѓу корисникот на компјутерот и компјутерскиот хардвер !
 Цели на оперативниот систем:

 Да ги извршува корисничките програми

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

 Да се употребува компјутерскиот хардвер на погоден начин

Структура на компјутерскиот систем


 Компјутерскиот систем може да се подели на четири компоненти:

 Хардвер – ги овозможува основните пресметковни ресурси CPU,


меморија, I/O уреди
 Оперативен систем – ја контролира и координира употребата на

хардвер помеѓу различни апликации и корисници


 Апликациски програми – начините на кои системските ресурси се
употребуваат за да се решат пресметковни проблеми на
корисниците (Word процесори, пребарувачи, компајлери, видео
игри ... Итн)
 Корисници – луѓе, машини и други компјутери
ПРЕГЛЕД НА ОПЕРАТИВЕН СИСТЕМ
 Четири компоненти на оперативен систем
УПРАВУВАЊЕ СО ПРОЦЕС
 Процесот е програма во извршување.
 Програмата е пасивен ентитет, додека процесот е
активен ентитет.
 На процесот му се потребни ресурси за да изврши
својата задача: CPU, меморија, I/O, датотеки.
 Постојат едно-нитни и повеќе-нитни процеси:

 Едно-нитните процеси имаат еден програмски


бројач кој ја специфицира локацијата на следната
инструкција што треба да се изврши.
 Повеќе-нитните процеси имаат еден програмски
бројач по нитка.
 Вообичаено системите имаат повеќе процеси кои
се извршуваат конкурентно на CPU, некои од овие
процеси се кориснички а некои системски.
АКТИВНОСТИ
 Оперативниот систем е одоговрен за
следниве активности:
 Создавање и бришење на кориснички и
системски процеси
 Суспендирање и ресумирање на процси

 Обезбедување на механизми за
синхронизација на процеси
 Обезбедување на механизми за
комуникација на процеси
 Обезбедување на механизми за
справување со deadlock-s
УПРАВУВАЊЕ СО МЕМОРИЈАТА
 Управувањето со меморија детерминира
што е во меморија и кога.
 Целта на управувањето со меморијата е да
се оптимизира употребата на CPU и
компјутерските ресурси за корисниците.
 Актвности на меморискиот менаџмент:

 Бележи кои делови од меморијата тековно


се користат и од кого (кои корисници) !
 Одлучува кои процеси и податоци ќе се
внесат/изнесат од меморија !
 Алокација на мемориски простор по
потреба !
УПРАВУВАЊЕ СО СКЛАД
 Оперативниот систем овозможува логички
поглед на просторот за складирање !
 Ги апстрахира физичките својства во логичка
единица за складирање – датотека (file)
 Датотеките вообичаено се организирани во
именици
 Обезбедува контрола кај повеќето системи,
односно дефинира кој, што може да направи.
 Вообичаено дисковите се користат за
складирање на податоци кои не ги собира во
главната меморија или податоци кои што
треба да се чуваат подолг временски период.
СТРУКТУРА НА ОПЕРАТИВЕН
СИСТЕМ
 Повеќето комерцијални о.с немаат добро-дефинирана
структура.
 Овие оперативни системи започнале како мали,
едноставни и ограничени системи па потоа пораснале.
MS-DOS е пример за таков систем!
 Овој оперативен систем бил напишан за да обезбеди
многу функционалности во малку простор и не бил
внимателно поделен во модули!
 Се карактеризира со падови (кориснички или системски
иницирани).
UNIX
 UNIX е друг пример на оперативен систем со
ограничена структура.
 Се состои од два одделни сегменти: јадро и
системски програми (на пример: shels).
 Јадрото понатаму се дели на серии на
интерфејси и кориснички драјвери, кои што
беа додавани и проширувани со тек на време
како што UNIX еволуираше.
СЛОЕВИТ ДИЗАЈН
 Со примена на слоевитиот пристап
оперативниот систем се дели на слоеви
(нивоа).
 Најнискиот слој (слој 0) е хардверот;
највисокиот слој (слој N) е корисничкиот
интерфејс.
СЛОЕВИТ ДИЗАЈН
 Слојот е имплементација на апстрактен објект
составен од податоци и операции со кои што
се манипулира со податоците.
 На пример, слојот M содржи податочни
структури и сет на рутини кои можат да бидат
повикани само од слоевите на повисоко
ниво!
 Следствено на тоа слојот M може да повика
операции од слоевите на пониско ниво !
 Главната предност на слоевитиот дизајн е
едноставноста за конструкција и дебагирање,
односно секој слој може да користи (повикува)
функции само од пониските слоеви !
СЛОЕВИТ ДИЗАЈН
 Првиот слој може да се дебагира без да водиме
сметка за остатокот од системот, бидејќи
истиот користи само базичен хардвер!
 Откако ќе се дебагира првиот слој, се дебагира
вториот слој,...итн.
 Ако се случи грешка додека се дебагира
конкретен слој, грешката мора да биде на тој
слој, бидејќи слоевите под него се веќе
дебагирани!
 На овој начин се симплифицира дизајнот и
имплементацијата на системот !
 На овој начин, секој слој го крие постоењето на
некои податочни структури, фунцкии и хардвер
од слоевите на повисоко ниво !
СЛОЕВИТ ДИЗАЈН - НЕДОСТАТОЦИ
 За разлика од останатите типови на о.с,
слоевитите имплементации се помалку
ефикасни!
 На пример, кога корисничката програма
извршува I/O операција, се извршува
системски повик кој се проследува до I/O
слојот, кој што го повикува memory-
management слојот, кој пак го повикува
слојот за распоредување на CPU и на
крајот се проследува до хардверот !
MICROKERNEL (МИКРОЈАДРЕНИ
СИСТЕМИ)
 Во средината на 80’тите истражувачи на
Carnegie Mellon University развиле оперативен
систем наречен Mach кој што го модулизира
јадрото со примена на микројадро (microkernel) !
 Со овој метод се структурира оперативниот
систем на начин така што сите неесенцијални
компоненти се отстранети од јадорото и
истите се имплементирани како системски и
кориснички програми!
 Резултатот од тоа е помало јадро –
микројадро (microkernel) !
 Микројадрата овозможуваат управувањето со
меморијата и процесите да се сведе на
минимум!
MICROKERNEL (МИКРОЈАДРЕНИ
СИСТЕМИ)
 Еден од бенефитите на пристапот
базиран на микројадра е леснотијата за
проширување на оперативниот систем!
 Сите нови сервиси се додаваат во
корисничкиот простор, без воопшто да се
менува јадрото!
 Микројадрата овозможуваат поголема
сигурност и надежност, бидејќи повеќето
сервиси се извршуваат како кориснички
одошто јадрени !
МОДУЛИ
 Најдобрата методологија за дизајн на оперативен систем се
базира на објектно-ориентирано програмирање за да се креира
модуларно јадро!
 Во таков случај, јадрото има сет на core компоненти и
динамички линкови до останатите сервиси во време на
подигнување или извршување !
 Стратегијата на модули кои динамички се вчитуваат е
вообичаена кај модерните имплементации на UNIX, како на
пример Solaris, Linux и Mac OS X.
 Јадро со седум динамички вчитливи модули:

1. Scheduling classes
2. File systems
3. Loadable system calls
4. Executable formats
5. STREAMS modules
6. Miscellaneous
7. Device and bus drivers
MAC OS X
 Mac Os X на Apple користи хибридна структура!
 Mac Os X (Danvin) користи слоевита архитектура, каде
еден од слоевите е Mach микројадорото !
 Слоевите на врв ја содржат апликациската околина и
сет на сервиси кои обезбедуваат графички интерфејс
за апликациите !
 Под овие слоеви се наоѓа јадрото кое што се состои
од Mach микројадро и BSD јадро !
 Mach овозможува менаџмент на меморијата,
поддршка за далечинско повикување на процедури
(RPC) и меѓу-процесна комуникација (IPC); вклучувајќи
и проследување на пораки и управување со нитки !
 BSD компонентата овозможува BSD командна
линија, мрежна поддршка и поддршка за датотечни
системи !
MAC OS X

 Mac Os X
ИНТЕРАПТИ

 Модерните оперативни системи се интерапт-водени. Ако не постои


процес кој треба да се изврши или I/O уред да се сервисира и не
постојат корисници кои треба да се услужат, оперативниот систем
мирува, чекајќи нешто да се случи.
 Оперативниот систем чека да се случи interrupt или trap (прекин)!

 Trap (или исклучок) е софтверски генериран прекин кој што се


случува како последица на грешка или барање од корисничка
програма!
 Интерапт-водената природа на оперативниот систем ја дефинира
неговата структура !
 За секој интерапт, одделни сегменти на код во оперативниот
систем детерминираат каква акција треба да се превземе !
 За разрешување на секој интерапт постои одделна интерапт
рутина!
 Треба да се осигуриме дека секоја грешка во корисничка програма
прави проблеми само на програмата која се извршува, никако
системски!
DUAL MODE

 Dual-mode операцијата му овозможува на


оперативниот систем да се заштити себе си и
останатите компоненти!
 Два режими на работа: user mode и kernel
mode
 Постои т.н хардверски mode bit кој му
овозможува на системот да прави разлика
кога се извршува кориснички код а кога се
извршува системски код !
 За да се оневозможи бесконечко чекање на
процес и долга узурпација на ресурсите се
користи механизмот на timer!
DUAL MODE
 Dual Mode
СЕРВИСИ НА ОПЕРАТИВЕН СИСТЕМ
 Комуникација – процесите можат меѓусебно да
резменуваат информации !
 Детекција на грешки – о.с мора да биде константно
свесен дека можат да се случат грешки во процесорот,
меморијата, I/O уреди и корисничките програми!
 Дебагирање

 Алокација на ресурси – Кога повеќе корисници или


задачи се извршуваат конкурентно, мора да бидат
алоцирани ресурси за секој од нив !
 Accounting – бележење кој корисник што и колку
употребува од ресурсите !
 Заштита и безбедност – Сопственикот на
информацијата во мултикориснички или мрежен
компјутер треба да може да ја контролира употребата
на таа информација !
ИНТЕРФЕЈС
 Command Line Interface (CLI) или команден
интерпретер овозможува директен внес на
команди кои понекогаш се имплементирани
во јадрото, понекогаш во системските
програми !
 Graphical User Interface (GUI) – user-friendly
интефјес, комуникацијата вклучува: глувче,
тастатура и монитор, иконите ги
претставуваат датотеките и програмите !
 Повеќето модерни о.с ги вклучуваат двата
типа на интефјеси (CLI и GUI) !
 Microsoft Windows е GUI with CLI “командна”
школка !
ИНТЕРФЕЈСИ
 CLI
ИНТЕРФЕЈСИ
 GUI
ПОДИГНУВАЊЕ НА СИСТЕМ (SYSTEM
BOOT)
 Процедурата на стратурање на компјутерот со
вчитување на јадрото е позната како system
boot !
 Кај повеќето компјутерски системи, мало парче
код наречено bootstrap program or bootstrap
loader го лоцира јадрото, го вчитува во
главната меморија и го започнува
извршувањето !
 Програмата е во форма на read-only memory
(ROM) поради тоа што на почетокот RAM-от е во
непозната состојба !
 Дополително ROM-от нема потреба од
иницијализација и не може да биде афектуиран
од компјутерски вирус !
ПОДИГНУВАЊЕ НА СИСТЕМ (SYSTEM
BOOT)
 Bootstrap програмата може да изврши
повеќе задачи:
 Може да изврши дијагностика за да ја
детерминира состојбата на машината !
 Ако дијагностиката е ок, програмата може
да продложи со останатите чекори на
подигнување !
 Исто така, програмата може да ги
иницијализира сите аспекти на системот:
регистри, контролери на уреди и главна
меморија !
ПОДИГНУВАЊЕ НА СИСТЕМ (SYSTEM
BOOT)
 Некои системи – како на мобилни
телефони, PDAs и конзоли за игри го чуваат
целиот оперативен систем во ROM !
 Некои системи го чуваат оперативниот
систем во firmware и го копираат во RAM-от
за побрзо извршување !
 Кај поголемите оперативни системи
(Windows,
 Mac OS X, UNIX) или системите кои се
менуваат често, bootstrap loader-от се чува
во firmware a оперативниот систем на
диск !

You might also like