61
Управување со процеси 1

5 5a. OS11 - Upravuvanje So Procesi

Embed Size (px)

DESCRIPTION

Upravuvanje So Procesi

Citation preview

Page 1: 5 5a. OS11 - Upravuvanje So Procesi

Управување со

процеси

1

Page 2: 5 5a. OS11 - Upravuvanje So Procesi

Управување со процеси

� Кога имаме два или повеќе процеси кои се наоѓаат во состојба на подготвеност (READY)

� Ако имаме 1 процесор на располагање тогаш треба да се донесе одлука кој од

2

тогаш треба да се донесе одлука кој од процесите ќе се избере за доделување на процесорот

� Во состав на ОС се наоѓа дел кој се нарекува распоредувач и користи одреден алгоритам за распоредување на процеси

Page 3: 5 5a. OS11 - Upravuvanje So Procesi

Видови процеси

� Врз основа на видот на ресурси кои

доминантно се користат се делат на:

� Процеси кои доминантно го користат процесор

3

процесор

� Процеси кои доминантно користат влезно-

излезни операции

Cocco
Highlight
Page 4: 5 5a. OS11 - Upravuvanje So Procesi

Потреба за распоредување� При креирање на процес, процесот родител

и процесот дете се во состојба подготвени

� Кога еден процес се терминира

� Кога процесот се блокира на В/И повик, на

семафор или од некоја друга причина друг

4

семафор или од некоја друга причина друг процес се избира за извршување

� Хардверски прекин - Распоредувачот треба

да одлучи дали по сервисирањето напрекинот ќе се извршува нов процес од

редицата на чекање, процесот што

беше прекинат или пак некој трет процес

Page 5: 5 5a. OS11 - Upravuvanje So Procesi

Распоредувачи

� Долгорочeн распоредувач (пристапниот, admission)� Сите процеси што доаѓаат, а не може веднаш да се извршат – најчесто на диск

� Овој распоредувач бира од нив и ги вчитува во меморија за извршување;

� Контролира степен на мултипрограмирање (број на процеси сместени во меморија)

Кога бројот на процесите ќе се зголеми во главната

5

� Кога бројот на процесите ќе се зголеми во главната меморија и некои од нив ќе се суспендираат на диск

� Среднорочен распоредувач (мемориски)

� Системи со временска распределба (time-sharing)

� Отстранува процеси од меморија (растеретува). Потоа процесот пак се сместува во меморијата

� swapping

� Краткорочен распоредувач (процесорски)� ЦПЕ распоредувач, редица на подготвени процеси

Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Page 6: 5 5a. OS11 - Upravuvanje So Procesi

Распоредувачи

� Еден процес мигрира помеѓу различни редови за чекање

6

Page 7: 5 5a. OS11 - Upravuvanje So Procesi

Редови на чекање

� По креирање процесот се вметнува во влезна редица на чекање (job queue)

� Процеси подготвени за работа и се во меморија се чуваат во редот на чекање на подготвени процеси (ready

7

чекање на подготвени процеси (ready queue)

� ОС воведува и посебен ред за чекање за секој влезно-излезен уред (I/O queue)

Cocco
Highlight
Cocco
Highlight
Page 8: 5 5a. OS11 - Upravuvanje So Procesi

Процесот кој се извршува

� Процесот кој се извршува може да остане без процесорот:� Ќе истече временски квантум� Да се создаде нов процес и да чека во блокирана состојба, додека новиот процес да се изврши

8

блокирана состојба, додека новиот процес да се изврши

� Кога ќе се случи прекин� Да се постави В/И барање, по што процесот се префрла во редот на чекање на влезно-излезниот уред т.е. станува блокиран

Page 9: 5 5a. OS11 - Upravuvanje So Procesi

Дијаграм на редици за

распоредување

9

Page 10: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување на процеси

� Доделувањето на процесорот по даден алгоритам е основна функција на оперативниот систем.

� Одлука кој од “подготвените” процеси да го завземе процесорот

� Одлуката треба да:

10

Одлуката треба да:

� Ја подобри искористеноста на ЦПЕ (користење на ресурс)

� Го подобри времето на одѕив(задоволување на корисникот)

� Биде фер

Page 11: 5 5a. OS11 - Upravuvanje So Procesi

Одѕив (Responsiveness)

Job 1arrives

Job1 Job2 Job3

Job 2arrives

Job 3arrives

11

Job 1terminates

Job 2terminates

Job 3terminates

Job1Job3

Job2

Job 1 terminates Job 3 terminates

Job 2 terminates

Page 12: 5 5a. OS11 - Upravuvanje So Procesi

Користење на ЦПЕ (Utilization)

idle

idle

idle

idle

idle

idle

1st I/Ooperation

I/Oends

2nd I/Ooperation

I/Oends

3rd I/Ooperation

CPU

Disk

12

idle idle idleDisk

CPU

Disk idle idle

idle

idleJob1 Job1

Job1 Job1Job2

Job2

Job2

Page 13: 5 5a. OS11 - Upravuvanje So Procesi

Критериуми за доделување на

процесите на процесорот� Искористеноста на процесорот (CPU utilization) (однос на корисното време врз вкупно потрошеното време)

� Пропусна моќ на системот (throughput) (бројот на задачи по единица време кои системот ги извршува)

� Време потребно за завршување на процесот (turnaround time) (просечен временски период од моментот кога

13

time) (просечен временски период од моментот кога задачата е поставена во системот до моментот на завршување)

� Време на чекање (waiting time) (временски период од моментот кога процесот влегол во редица на чекање се до моментот кога бил распореден за извршување)

� Време на одѕив (response time) (времето од издавање на команда до добивање на резултат)

Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Page 14: 5 5a. OS11 - Upravuvanje So Procesi

Кратко-рочно распоредување

running

schedule wait for event

terminated

14

ready blocked

created

schedule

preempt

event done

wait for event

Page 15: 5 5a. OS11 - Upravuvanje So Procesi

Кратко-рочно распоредување

� Шемата на извршувањето на процесите се состои и измена на ЦПЕ циклусот и чекање на В/И уреди

� Процесите подготвени за извршување се чуваат во ready(run) редица

� Краткорочниот распоредувач ги распоредува процесите одready редицата кога ЦПЕ е слободен

15

ready редицата кога ЦПЕ е слободен

Page 16: 5 5a. OS11 - Upravuvanje So Procesi

Начини на распоредување

� Без испразнување (nonpreemptive)(Windows 3.1)

� Состојба на извршување се додека процесот на заврши

16

� Од состојба на извршување – во чекање (В/И побарување или чека на завршување на процесот –дете)

Cocco
Highlight
Cocco
Highlight
Page 17: 5 5a. OS11 - Upravuvanje So Procesi

Начини на распоредување

� Со испразнување (preemptive)

� Процесот што во тој момент се извршува, може да биде прекинат и ставен во состојба на подготвеност од страна на ОС (прекин)

� Од состојба на чекање – во подготвеност (В/И барање завршено)

17

завршено)� Овозможува подобри услови за сите процеси од причина што не постои процес кој може да го монополизира процесорот

� Пософистициран пристап, со многу можности, но и понеефикасен поради губење време на промена на контекст на процесите (context switching) (синхронизациони проблеми на два процеси, потребен е дополнителен хардвер)

Cocco
Highlight
Cocco
Highlight
Page 18: 5 5a. OS11 - Upravuvanje So Procesi

Мерки

� Време на чекање: просек од Twait

� Овој параметар е под системска контрола

� Пропусност - Throughput

18

� Бројот на комплетираните процеси во временска единица

� Искористување� Дел од времето ЦПЕ е искористен

Cocco
Highlight
Cocco
Highlight
Cocco
Highlight
Page 19: 5 5a. OS11 - Upravuvanje So Procesi

Мерки: Време на одзив

(Response time)

� Време на одзив претставува средна вредност од џоб-те ’Tresp

19

Job arrives/becomes ready to run Starts running

Job terminates/blocks waiting for I/O

Twait Trun

Tresp

Tresp= Twait + Trun

Cocco
Highlight
Page 20: 5 5a. OS11 - Upravuvanje So Procesi

Алгоритми за доделување на

процесорот

� Обично се засновува врз два параметри :

� Користење на ЦПЕ = (време во кое ЦПЕ работел на програмата / вкупно време на работа)

� Време на одѕив = Просек (време на завршување -време на почнување)

� Поделба на алгоритми според намена на системот:

20

� Поделба на алгоритми според намена на системот: системи со групна обработка, интерактивни системи и системи со мултипрограмирање.

� Ќе ги разгледаме следниве:

� First come, first served (FCFS)

� Shortest Job First (SJF)

� Shortest Time Remaining Next (STRN)

� Round Robin (RR)

Page 21: 5 5a. OS11 - Upravuvanje So Procesi

Пример

21

Page 22: 5 5a. OS11 - Upravuvanje So Procesi

Прв пристигнал – прв услужен

(FCFS)

22

� Секој процес се придружува на крајот од редицата на подготвени� Кога тековниот процес ќе престане да се извршува, се бира следен од редицата за извршување

� Може да се случи кус процес долго да чека на извршување� Дава предност на ЦПЕ доминантни, В/И процесите мора да чекаат додека процесите поврзани со ЦПЕ не завршат - ефект на конвој во редица за В/И

� FCFS е без испразнување (процес држи ЦПЕ додека на заврши или побара В/И) (не е погоден за интерактивни системи)

Page 23: 5 5a. OS11 - Upravuvanje So Procesi

Нареден најкус процес (SJF)

23

� Политика на неиспразнување

� Се избира оној процес кој има најмало очекувано време на

обработка (треба да се изврши процена)

� Секако дека дава предност и ги фаворизира кусите

процеси, а ако двата се со иста должина се користи FCFS

Page 24: 5 5a. OS11 - Upravuvanje So Procesi

Најкусо преостанато време

24

� STRN – Shortest Time Remaining Next

� Верзија на SFJ со политика на испразнување

� Нов процес дојден во редот може да е покус од тој што

се опслужува и ЦПЕ се доделува на новиот процес, а

подоцна се довршува претходниот (п.2 прекинат од п.3)

� Мора да постои оценка за времето на процесирање

Page 25: 5 5a. OS11 - Upravuvanje So Procesi

Кружна патека (Round-robin)

25

� Сличен со FCFS но со додадено испразнување (preepmptive)

� Употребува испразнување врз основа на часовен сигнал одреден временски квантум

� Однапред се дефинира интервал на време за кое може да биде користен процесорот од даден процес (10 — 100 m sec)

� Средно време на чекање често е доста долго

Page 26: 5 5a. OS11 - Upravuvanje So Procesi

Следен со највисок

коефициент на одѕив

26

� Избери го следниот процес што има најмал количник (највисок коефициент на одѕив) :

Page 27: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување со приоритети

(PS)

� SJF е специјален случај на PS

� Секој процес добива приоритет кој се

пресметува според

27

пресметува според� Врем. ограничување, мемориски побарувања, број на отворени датотеки, време на опслужување (ЦПЕ, В/И);

� Политика (тип на процес, вложени финансии…)

Page 28: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување со приоритети

(PS)

� Наједноставно: 1/f каде што f е предвиденото време на користење на процесорот од страна на процесот� Поголема должина на процесот - помал приоритет

� Класи на приоритети (редици на чекање со ист приоритет) и на пример RR во секоја класа

28

на пример RR во секоја класа

� За да не изгладнат процесите (подготвени, но не им се доделува ЦПЕ) во класите со понизок приоритет потребно е динамичко менување на приоритетите, т.е. шетање на процесите од една во друга класа (според aging)

Page 29: 5 5a. OS11 - Upravuvanje So Procesi

Повеќекратни редови за чекање

(multiple queues)

29

� Класи со различни приоритети

� Процес од повисока класа – еден квантум на извршување, пониска-два и така понатаму, со искористувањето се менува и класата

Page 30: 5 5a. OS11 - Upravuvanje So Procesi

Повеќекратни редови за чекање

(multiple queues)

Пример

� Процес кој треба да се пресметува 100 квантуми континуирано.

30

� Иницијално му се доделува 1 квант, па се испразнува, потоа 2 кванта, па 4,8,16,32,64, иако му требаат само 37 за да заврши.

� Потребни се само 7 испразнувања наместо 100 со RR-алгоритамот

Page 31: 5 5a. OS11 - Upravuvanje So Procesi

Едноставна проценка на време на

извршување (Aging)� Следното време на опслужување со ЦПЕ на еден процес може да се предвиди според времето на опслужување на процесот во минатото.

� Нека Tn е должина на n-то опслужување на тој процес (најсвежа информација, скора историја - recent history), Fn+1 е нашата предвидена вредност за следната должина на процесот (Fn е историја од минатото – past

31

Fn+1 е нашата предвидена вредност за следната должина на процесот (Fn е историја од минатото – past history)

� Дефинираме рекурентна врска:

Fn+1= α ·Tn + (1- α) ·Fn,

(α го контролира влијанието на скората и мината историја)

Page 32: 5 5a. OS11 - Upravuvanje So Procesi

Едноставна проценка на време на

извршување (Aging)

� Проценка на времетраење на следно извршување на процес: Нека имаме две претходни вредности за времето на извршување на еден процес, T0 i T1

F1=T0, F2= α ·T1 + (1- α) ·F1,

FK = α ·TK-1 + (1- α) ·FK-1, K=3, 4, ...

32

за α= 1/2 (скората и историјата од минатото имаат еднаква тежина)

T0, T0 /2+T1/2, T0 /4+T1/4+ T2/2, T0 /8+ T1/8 + T2 /4+ T3/2,...

(историјата се помалку влијае врз иднината)

� SJF е единствен оптимален (според времето на чекање) кога сите процеси доаѓаат во ист момент, во спротивно не е

Page 33: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување со извлекување

(Lottery scheduling)� На секој процес му се доделуваат тикети за разни системски ресурси (пр. ЦПЕ).

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

33

� Повеќе тикети поголема шанса за избирање

� Ако од 100 постоечки тикети еден процес има 20 –20% процесорско време

� Тикетите може да се доделуваат на сродни процеси и динамичко да им се менува бројот

Page 34: 5 5a. OS11 - Upravuvanje So Procesi

Подеднакво распоредување

(Fair-Share Scheduling)

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

� За да се избегне ситуација кога еден корисник има повеќе процеси (пр. 2 корисника, 1 со 1 процес, другиот со 9) да добива поголемо процесорско време

� Се врши распоредување според корисниците

34

� Корисник 1: A,B,C,D Корисник 2: E

� Со RR алгоритамот и 50% ЦПЕ време за секого:

� A E B E C E D E A E B E C E D E

� Ако на корисникот 1 има доделено 2-пати поголемо ЦПЕ време :

� A B E C D E A B E C D E

Page 35: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување во

Real Time системи� Системи со процеси во реално време:

� Hard time (каде што дадените временските рокови треба да се почитуваат)

� Soft time (пречекорувањето на ограничувањето не е посакувано, но може да се толерира)

� При појава на настан распоредувачот избира процес при што сите временски лимити мора да бидат задоволени

� Начин на појавување на настани

35

� Начин на појавување на настани� Периодични (се појавуваат во регуларни интервали)

� Апериодични (се појавуваат непредвидливо)

� Системот може да врши распоредување ако е задоволен условот:

� Каде што постојат m процеси, и се појавува настанот i со периода Pi кој бара Ci секунди од процесорското време

1

1

m

i

i i

C

P=

≤∑

Page 36: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување на нишки

� Распоредувањето е многу слично како кај процесите:

� Може да биде со или без испразнување� Може да се користи било кој алгоритам за распоредување

(FCFS, SJF, RR, …)

� Нишките (не процесите) сега можат да бидат во некоја редица за чекање, може да бидат блокирани или да работат

36

редица за чекање, може да бидат блокирани или да работат итн.

Но:

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

Добро се изведува во повеќе процесорски системи

Page 37: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување на нишки

37

Можен начин за распоредување на нишки од корисничко ниво� 50-msec процесен квантум� Нишката се извршува 5 msec/CPU burst

Page 38: 5 5a. OS11 - Upravuvanje So Procesi

Распоредување на нишки

38

Можно распоредување на нишки од ниво на јадро� 50-msec процесен квантум� Се извршува 5 msec/CPU burst

Page 39: 5 5a. OS11 - Upravuvanje So Procesi

Управување со процеси во UNIX

� Основни функции за креирање, полнење на програмата, завршување …� fork(), exec(), wait(), exit()

Сигнали

39

� Сигнали� kill()

� Контрола� ptrace(), nice(), sleep()

Page 40: 5 5a. OS11 - Upravuvanje So Procesi

fork() - UNIX

� Создава дете - процес� Два различни процеси извршуваат копија од еден ист програм

40

� Детето процес наследува од таткото:

� Идентични копии на променливите и меморијата (адресен простор)

� Идентични копии на сите ЦПЕ регистри (освен еден)

Page 41: 5 5a. OS11 - Upravuvanje So Procesi

fork() - UNIX

� Двата процеса (таткото и детето) се извршуваат од истата точка по враќањето на повикот fork():� За детето - процес, fork() враќа 0 (PID за детето)

За таткото - процес, PID е различен од 0

41

� За таткото - процес, PID е различен од 0

� Едноставна имплементација на fork():� Алоцира меморија за детето - процес� Ја копира меморијата и ЦПЕ регистрите од таткото во детето-процес

� Скапа операција!

Page 42: 5 5a. OS11 - Upravuvanje So Procesi

Користење на fork()

� Во процесот - татко:

main()…int pid = fork(); // create a childif (pid == 0) { // child continues here…}

42

…}else { // parent continues here…}

� Кодот на таткото и детето се во иста „програма“

� Детето-процес ги наследува сите отворени датотеки и мрежни конекции

Page 43: 5 5a. OS11 - Upravuvanje So Procesi

Полнење на програма exec()

� Системскиот повик exec() овозможува процесот да полни различна програма и започне нејзиното извршување

� Тој овозможува процесот да зададе аргументи (argc) и низа на стрингови (argv)

� Ако повикот е успешен� Работи истиот процес !!

43

� Работи истиот процес !!

� Но работи друга програма !!

� Две можности за имплементација:

� Процесот што го извршил повикот exec() го препишува тековниот мемориски сегмент со нови вредности ( пример. Командата /bin/ls – листење на директориум)

� Да се алоцира нов мемориски сегмент, наполни со новите вредности, и деалоцира стариот)

Page 44: 5 5a. OS11 - Upravuvanje So Procesi

Користење на exec()

� Во процесот- татко:

main()

int pid = fork(); // create a child

if (pid == 0)

{ // child continues here

44

{ // child continues here

exec(“program”, argc, argv0, argv1, …);

}

else { // parent continues here

}

Во 99% случаи, се користи еxec() по повикот fork()

Page 45: 5 5a. OS11 - Upravuvanje So Procesi

Нормално завршување: exit()� По завршувањето, програмата извршува системски повик exit()

� Овој системски повик:� Го зема резултатот вратен од програмата како аргумент

45

аргумент� Ги затвора сите отворени датотеки, линкови итн.

� Ја деалоцира меморијата� Ги деалоцира повеќето од структурите на ОС што ги подржувале процесот

� Проверува дали таткото – процес е жив:

� Процесот – дете ја чува резултантната вредност додека таткото не ја побара, не умира туку влегува во zombie/defunct статус

Page 46: 5 5a. OS11 - Upravuvanje So Procesi

Контрола на процесите� ОС мора да вклучува повици за некои посебни контроли врз процесите

� Манипулација со приоритетите:� nice, кој задава (почетен приоритет)� Приоритетот во UNIX опаѓа со користењето на ЦПЕ-то

46

� Подршка за дебагирање:� ptrace, овозможува контролата на процесот да биде под друг процес

� Другиот процес тогаш може да сетира точки на прекин, испита регистри, итн.

� Аларм и време:� sleep го става процесот во ред за чекање одреден број секунди, а at го активира во одредено време

Page 47: 5 5a. OS11 - Upravuvanje So Procesi

Сигнали

� Сигналите служат да се извести процесот дека се случил некој настан

� Синхрони сигнали (се доделуваат на

47

� Синхрони сигнали (се доделуваат на самиот процес што ја извел операцијата што предизвикала сигнал):� Погрешен пристап до меморијата, погрешна инструкција

� Делење со 0

Cocco
Highlight
Cocco
Highlight
Page 48: 5 5a. OS11 - Upravuvanje So Procesi

Сигнали

� ОС ги третира некои настани како асинхрони сигнали (се праќаат од друг процес или од корисникот):� <Ctrl-C>,� Аларми

� Сигнали имаме и при контрола на процесите, пример kill -9

48

� Процесот може (trap во UNIX):� Да отиде на предодредениот водич на сигналот� игнорира сигналот (опасно)� Корисникот сетира свој водич на сигналот (акција по сигналот)

Page 49: 5 5a. OS11 - Upravuvanje So Procesi

Сирачиња и зомби

� Сирачиња� Процес чиј родител завршил.

� Сирачињата се наследени од init

� Ставката во процесната табела веднаш се ослободува кога сирачето завршува.

49

� Зомби� Процесот кој повеќе не постои, но се уште завзема место во процесната табела

� Еквивалентно: Процесот кој завршил, но чиј родител постои и чека на потврда за завршување на детето-процес

Cocco
Highlight
Cocco
Highlight
Page 50: 5 5a. OS11 - Upravuvanje So Procesi

Демони

� Се дисконектира од родителот и живее независно

� Малку потешко да се направи правилно� Примери:

� inetd

50

� inetd

� atd

� Nfsd

Cocco
Highlight
Page 51: 5 5a. OS11 - Upravuvanje So Procesi

ВЕЖБИ (Процеси и распределување на процеси) 1

� Дадено е множество на процеси, со големината на CPU-burst времиња (u msec) и со приоритети:� Process Burst Time Priority

� P1 10 3

� P2 1 1

� P3 2 3

� P4 1 4

P5 5 2

51

� P5 5 2

� Процесите наидуваат по следен редослед сите приближно во време 0 и во следна низа P1, P2, P3, P4, P5� a) да се нацртаат Gannt-овите дијаграми за овие процеси за случаите FCFS, SJF, „non-preemptive priority“ (помал број поголем приоритет), RR (quantum=1) на алгортмите за распоредување

� b) Да се пресмета „tournaround“ време за секој процес и средно за сите наведени алгоритми

� c) Да се пресмета време на чекање за секој процес и средно време на чекање за сите наведени алгоритми

� d) Кој алгоритам има најмало време на чекање

Page 52: 5 5a. OS11 - Upravuvanje So Procesi

FCFSProcess Burst Time Priority

P1 10 3P2 1 1

P3 2 3

P4 1 4P5 5 2

52

a. Turnaround time b) Waiting time

TA(P1) = 10 W(P1)=0

TA(P2) = 11 W(P2)=10

TA(P3) = 13 W(P3)=11

TA(P4) = 14 W(P4)=13

TA(P5) = 19 W(P5)=14

TAavg = 13.4 Wavg=9.6

Page 53: 5 5a. OS11 - Upravuvanje So Procesi

RR=1Process Burst Time Priority

P1 10 3

P2 1 1

P3 2 3P4 1 4

P5 5 2

53

a. Turnaround time b) Waiting timeTA(P1) = 19 W(P1)=4+2+1+1+1=9TA(P2) = 2 W(P2)=1TA(P3) = 7 W(P3)=2+3=5TA(P4) = 4 W(P4)=3TA(P5) = 14 W(P5)=4+2+1+1+1=9TAavg = 9.2 Wavg=5.4

Page 54: 5 5a. OS11 - Upravuvanje So Procesi

PriorityProcess Burst Time Priority

P1 10 3

P2 1 1

P3 2 3P4 1 4P5 5 2

54

a. Turnaround time b) Waiting time

TA(P1) = 16 W(P1)=6

TA(P2) = 1 W(P2)=0

TA(P3) = 18 W(P3)=16

TA(P4) = 19 W(P4)=18

TA(P5) = 6 W(P5)=1

TAavg = 12 Wavg=8.2

Page 55: 5 5a. OS11 - Upravuvanje So Procesi

SJFProcess Burst Time Priority

P1 10 3

P2 1 1P3 2 3P4 1 4

P5 5 2

55

a. Turnaround time b) Waiting time

TA(P1) = 19 W(P1)=9

TA(P2) = 1 W(P2)=0

TA(P3) = 4 W(P3)=2

TA(P4) = 2 W(P4)=1

TA(P5) = 9 W(P5)=4

TAavg = 7 Wavg=3.2

Page 56: 5 5a. OS11 - Upravuvanje So Procesi

Вежба 2� Дадена е секвенца од 4 процеси кои во време t=0 влегле во „ready-queue“ состојба по следниов редослед со следните „burst-time“ времиња.

� Process Burst Time

� P1 6

� P2 3

� P3 1

56

� P4 7

� За RR алгоритамот со quantum=7, да се нацрта Gannt-овдијаграм и да се одреди средно „turnaround“ време и средно време на чекање

� Колку измени на контексти се случиле и ако contex switch=0.01 колку е траењето на обработка на сите 4 процеси?

Page 57: 5 5a. OS11 - Upravuvanje So Procesi

RR=7Process Burst Time

P1 6 P2 3

P3 1 P4 7

57

a. Turnaround time b) Waiting time

TA(P1) = 6 W(P1)=0

TA(P2) = 9 W(P2)=6

TA(P3) = 10 W(P3)=9

TA(P4) = 17 W(P4)=10

TAavg = 10.5 Wavg=6.25

Ttotal = Tprocesses + NxTcsw=17+3*0.01=17.03

Page 58: 5 5a. OS11 - Upravuvanje So Procesi

RR=2Process Burst Time P1 6 P2 3

P3 1

P4 7

58

a. Turnaround time b) Waiting time

TA(P1) = 14 W(P1)=0+5+3=8

TA(P2) = 10 W(P2)=2+5=7

TA(P3) = 5 W(P3)=4

TA(P4) = 17 W(P4)=5+3+2=10

TAavg = 11.5 Wavg=7.25

Ttotal = Tprocesses + NxTcsw=17+9*0.01=17.09

Page 59: 5 5a. OS11 - Upravuvanje So Procesi

Вежба 3

� За даден случај да се определи средно„turnaround“ и време на чекање за SJF и

STRN

59

� Process Arrival Time Burst Time

� P1 0.0 7

� P2 2.0 4

� P3 4.0 1

� P4 5.0 4

Page 60: 5 5a. OS11 - Upravuvanje So Procesi

SJFProcess Arrival Time Burst TimeP1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

60

a. Turnaround time b) Waiting time

TA(P1) = 7 W(P1)=0

TA(P2) = 12-2=10 W(P2)=8-2=6

TA(P3) = 8-4=4 W(P3)=7-4=3

TA(P4) = 16-5=11 W(P4)=12-5=7

TAavg = 8 Wavg=4

Ttotal = Tprocesses + NxTcsw=16+3*0.01=16.03

Page 61: 5 5a. OS11 - Upravuvanje So Procesi

STRNProcess Arrival Time Burst TimeP1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

61

a. Turnaround time b) Waiting time

TA(P1) = 16 W(P1)=0+9=9

TA(P2) = 7-2=5 W(P2)=0+1=1

TA(P3) = 5-4=1 W(P3)=0

TA(P4) = 11-5=6 W(P4)=7-5=2

TAavg = 7 Wavg=3

Ttotal = Tprocesses + NxTcsw=16+5*0.01=16.05