Upravljanje Procesima 2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

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

Оперативни системи

др Александар Јевремовић
Факултет за Информатику и Рачунарство

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

► Програм (енгл. program):


– скуп инструкција
– може бити и на спољној меморији (не извршава се)

► Задатак (енгл. task):


– програм учитан у радну меморију

► Процес (енгл. process):


– задатак чије је извршавање у току
– програмске инструкције + тренутно стање меморије
– засебан меморијски простор, ресурси

► Нит (енгл. thread):


– линија (редослед) извршавања инструкција (корака) процеса
– нити деле исти меморијски простор
др Александар Јевремовић, ajevremovic@singidunum.ac.rs 2/39
Паралелно извршавање

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 3/39


Гранање процеса

► Процес може покренути:


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

► Дете процес (енгл. child process):


– процес кога је покренуо неки други процес

► Родитељски процес (енгл. parrent process):


– процес који је покренуо неки други процес

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 4/39


Форк бомбе

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 5/39


Процеси зомбији и процеси сирочићи

► Зомби процес (енгл. zombie process):


– Термин са UNIX/Линукс оперативних система.
– Користи се и термин defunct процес.
– Процес који је завршен али још увек постоји на листи.
– Алоцирани ресурси се не ослобађају.

► Процес сироче (енгл. orphan process):


– Процес чији је родитељски процес завршен.
– Извршавање и крај процеса се предвиђају нормално.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 6/39


Завршетак процеса, убијање процеса

► Процес се уклања из меморије након завршетка.

► Неки процеси се не заврше регуларно:


– процеси зомбији
– везивање у мртав чвор
– ...

► Такви процеси се могу оставити (!) или на силу уклонити.

► Убијање процеса - насилно уклањање процеса из меморије.

► Примери:
– Линукс: наредба „killall -9 firefox“, xkill, управљач прозорима
– MS Windows: „Program X is not responding“

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 7/39


Број паралелних задатака и корисника

једноставно за инжењере,
неефикасно за кориснике
др Александар Јевремовић, ajevremovic@singidunum.ac.rs 8/39
Типови извшравања више задатака

► Серијска обрада (енгл. batch)


– рани рачунарски системи
– данас у виду скриптова, по потреби

► Дељење процесорског времена:


– додељивање процесора различитим процесорима
– квант процесорског времена

► Рад у реалном времену:


– код рачунара интегрисаних у уређаје
– контрола рада уређаја

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 9/39


Batch - серијска обрада података

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 10/39


Дељење процесорског времена

► Диспечер, распоређивач задатака (енгл. scheduler).

► Квант процесорског времена:


– временски период коришћења централног процесора
– савремени рачунари - трајање у наносекундама

► Квази-паралелан рад.

► Додељивање и одузимање процесора

► Претпражњење процесора (енгл. preemtion).

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 11/39


Управљање временом

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 12/39


Дељење процесора

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 13/39


Могућа стања процеса

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 14/39


Дељење процесора - приоритети

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 15/39


Диспечер у Линукс ОС

► Потпуно праведни диспечер.

► Енгл. Completely Fair Scheduler.

► Грануларност (кванти) на нивоу наносекунди.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 16/39


Preemption Model - Линукс оперативни систем

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 17/39


Чудотворна закрпа за Линукс

► „Мекши“ рад више паралелних процесора.

► Груписање сродних процеса.

► Закрпа за језгро од 200 линија кода.

► Четири линије кода у терминалу.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 18/39


Распоређивачи I/O задатака за Линукс

► Три се испоручују уз језгро:


– deadline (прављен за системе који раде у реалном времену)
– noop (FIFO)
– completely fair scheduler (подразумевани)

► Остали:
– anticipatory (рад са спољном меморијом, уклоњен у вер. 2.6.33)

► Могуће је самостално изабрати распоређивач задатака.

► Могуће је развити свој и уградити га у језгро.

bash-4.2$ cat /sys/block/sda/queue/scheduler


noop deadline [cfq]

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 19/39


Програм „топ“ за Линукс

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 20/39


Рендал Монро, www.xkcd.com

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 21/39


Бесконачне петље

Пример кода

► Енгл. infinite loop. while (true)


{
// уради нешто
► Намерне: }

– системи са једном функцијом


– пријем корисничког уноса
– оперативни систем

► Случајне:
– грешке у програмирању
– могу довести до блокаде система
– детектовање: теорија графова

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 22/39


Везивање процеса у мртав чвор

► Енгл. deadlock.

► Ситуација у којој долази до цикличне зависности.

► Процеси или нити.

► Резултат: процеси чије се извршавање никад неће завршити.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 23/39


Аналогија - раскрсница без првенства пролаза

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 24/39


Везивање процеса у мртав чвор

Процес 1 (псеудокод)

отвори фајл 1;
отвори фајл 2;
измени садржај;
затвори фајл 1;
затвори фајл 2;

Процес 2 (псеудокод)

отвори фајл 2;
отвори фајл 1;
измени садржај;
затвори фајл 2;
затвори фајл 1;

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 25/39


Гладни филозофи

► Сваки од филозофа треба да једе.

► Потребне су обе виљишке за јело.

► Филозофи међусобно не разговарају.


др Александар Јевремовић, ajevremovic@singidunum.ac.rs 26/39
Критична секција процеса

► Семафори, P и V операције.

► Примитивне, хардверски непрекидиве операције.

► „Успављивање“ процеса.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 27/39


Рад у реалном времену

► Одзив у гарантованом временском интервалу.

► Контрола индустријских машина.

► Контрола медицинских уређаја.

► Пожељна микро-кернел архитектура (робустност).

► Пример:
– http://www.youtube.com/watch?v=_APmI6qe9kU
– https://lwn.net/Articles/521091/
– http://www.evidence.eu.com/sched_deadline.html

► Примери: Линукс, QNX, Symbian OS...

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 28/39


Процеси и привилегије

► Рад на вишекорисничком систему.

► Процес добија привилегије корисника који га покреће.

► Корисник може затражити покретање под другим налогом:


– пример: наредба su у Линукс ОС

► Безбедносни проблеми (покретање процеса са највишим


привилегијама.

► Функционални проблеми (процес који опслужује више корисника):


– пример: Апач Веб сервер, креирање фајлова
– решење: suEXEC

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 29/39


Међупроцесна комуникација

► Енгл. Inter-Process Communication, IPC.

► Потреба да процеси међусобно размењују податке.

► Четири основна метода:


– прослеђивање порука
– синхронизација
– дељена меморија
– позивање удаљене процедуре

► CORBA, D-BUS

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 30/39


Међупроцесна комуникација - MS Windows

► Девет механизама:
– Clipboard
– COM
– Data Copy
– DDE
– File Mapping
– Mailslots
– Pipes
– RPC
– Windows Sockets

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 31/39


Пример: модуларан Веб сајт

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 32/39


Пример: модуларан Веб сајт

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 33/39


Међупроцесна комуникација путем мреже

► Клијент-сервер, најпопуларнија архитектура.

► Клијент и сервер су улоге процеса.

► Клијент је онај који тражи услугу.

► Сервер је онај који пружа услугу.

► Улоге се често приписују рачунарима.

► Процес може играти обе улоге истовремено.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 34/39


Апликације и сервиси

► Апликације имају кориснички интерфејс.

► Сервиси раде у позадини.

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 35/39


Клијент-сервер итеративно

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 36/39


Клијент-сервер конкурентно

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 37/39


Клијент-сервер двослојна архитектура

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 38/39


Клијент-сервер трослојна архитектура

др Александар Јевремовић, ajevremovic@singidunum.ac.rs 39/39

You might also like