49

Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

Cursul 4

4Planificarea execu iei�18 martie 2009

Page 2: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Suport curs 4

� OSC� Capitolul 5 � CPU Scheduling

� MOS� Capitolul 2 � Processes and Threads

� �Sec iunea 5 - Scheduling

Page 3: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Cuprins

� Tipuri/criterii/algoritmi de planificare� Planificare pentru sisteme batch� Planificare pentru sisteme interactive� Planificare pentru sisteme real-time� �Planificarea execu iei în Windows� �Planificarea execu iei în Linux

Page 4: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Reminder � st rile unui proces�

� �READY � gata de execu ie� RUNNING � ruleaz�� � �WAITING � a teapt încheierea unei opera ii de I/E�

Page 5: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificarea proceselor

� (CPU/Process) Scheduling� alocarea proceselor pe procesor/procesoare

� Suportul pentru multitasking

� Scheduler� subsistem al SO� algoritmi de planificare

Page 6: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Comportarea proceselor

Page 7: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Comportarea proceselor

(a) procese CPU-bound

(b) procese IO-bound

Page 8: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�De ce planificarea execu iei?

� �Eficien � optimizare acces la procesor�� �un proces este executat pân când a teapt un eveniment � �

blocant sau îi expir cuanta�� �SO (scheduler-ul) alege alt proces pentru execu ie (planific ) �

dup un procedeu (algoritm de planificare)�

� �Interactivitate i corectitudine (fairness)� procesele pot fi întrerupte pentru rularea altor procese cu

prioritate mai mare� � �toate procesele au anse egale de ob inere a a procesorului

� �în cazul planific rii cu priorit i, unele procese sunt �mai egale�� �

Page 9: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Tipuri de planificare a execu iei

� Cooperativ /preemptiv� �

� Cooperativ�� se face planificare doar atunci când procesul se blocheaz , se �

termin sau cedeaz de bun voie procesorul� � �

� Preemptiv�� procesele ruleaz un interval maxim de timp (cuant )� �� �procesul este suspendat i se planific altul�� este necesar o întrerupere de ceas�

Page 10: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Când se apeleaz planificatorul?�

� Crearea unui proces� Terminarea unui proces� Blocarea unui proces

� �opera ii de I/E� �opera ii de sincronizare cu alte procese

� �Terminarea unei opera ii de I/E� Expirarea cuantei de timp alocate unui proces� �Existen a unui proces cu prioritate mai mare

Page 11: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�În ce const planificarea execu iei?�

� �Selec ia unui proces/thread pentru rulare� �algoritm de selec ie� se parcurge coada READY� coada poate fi arbore, heap, list , cozi multiple�

� Schimbarea de context� se salveaz contextul procesului curent�� se încarc procesul selectat�

Page 12: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Criterii de planificare

� Criterii de selectare a procesului

� Utilizarea procesorului� gradul de �ocupare� a procesorului

� Productivitate (throughput)� câte procese sunt încheiate în unitatea de timp

� Turnaround time� timpul scurs de la crearea unui proces pân la terminarea lui�

Page 13: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Criterii de planificare (2)

� �Timpul de a teptare� �cât timp se a teapt în coada READY�

� Timpul de r spuns�� �timpul scurs de la crearea unui proces pân la începerea execu iei, sau�� �cât dureaz o tranzi ie WAITING->RUNNING�

� Echitate/corectitudine (fairness)� �procesele cu aceea i prioritate trebuie tratate similar

Page 14: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Criterii de planificare (3)

� Algoritmii de planificare urm resc�� maximizarea utiliz rii procesorului�� �maximizarea productivit ii�� minimizarea turnaround time� �minimizarea timpului de a teptare� minimizarea timpului de r spuns (interactivitate)�

Page 15: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Nota ii

� TT � turnaround time� TTM � turnaround time mediu� J1, J2, ..., J# - jobul 1, 2, ..., # (batch)� P1, P2, ..., P# - procesul 1, 2, ..., #

Page 16: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificare pentru sisteme batch

� Criterii importante� throughput� turnaround time� utilizarea procesorului

� Algoritmi de planificare� First-Come, First-Served� Shortest Job First� Shortest remaining time next� Planificarea pe trei niveluri

Page 17: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

First-Come, First-Served

� Planificare în ordinea intr rii în sistem�� Un proces care cere procesorul este trecut într-o coad �

�de a teptare� �Procesele care se blocheaz sunt trecute la sfâr itul �

cozii� � � �+ u or de în eles i implementat� - procesele CPU-bound încetinesc procesele I/O-bound

(efectul de convoi)� �- timp mediu de a teptare destul de mare

Page 18: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Exemplu FCFS

� J1, J2, J3� Joburile intr simultan în sistem�� �Timpii de execu ie: 24, 3, 3

� FCFS: ordinea J1, J2, J3� TT(J1) = 24; TT(J2) = 27; TT(J3) = 30� TTM = (24 + 27 + 30) / 3 = 27

� Alt algoritm: ordinea J2, J3, J1� TT(J1) = 30; TT(J2) = 3; TT(J3) = 6� TTM = (30 + 3 + 6) / 3 = 13

Page 19: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Shortest Job First

� Problem ?�� �trebuie cunoscut durata de execu ie a unui job�

� �Planificarea în ordinea duratei de execu ie

Page 20: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Exemplificare SJF

� J1, J2, J3, J4� Job-urile intr simultan în sistem�� �Timpii de execu ie: 12, 20, 8, 4

� FCFS: J1, J2, J3, J4� TT(J1) = 12; TT(J2) = 32; TT(J3) = 40; TT(J4) = 44� TTM = (12 + 32 + 40 + 44) / 4 = 32

� SJF: J4, J3, J1, J2� TT(J4) = 4; TT(J3) = 12; TT(J1) = 24; TT(J2) = 44� TTM = (4 + 12 + 24 + 44) / 4 = 21

Page 21: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Shortest remaining time first

� �Trebuie cunoscut timpul de execu ie a jobului

� Versiune preemptiv a algoritmului SJF�� �când un nou job este submis pentru execu ie� � �... i timpul de execu ie al acestuia este mai mic decât timpul

�r mas din execu ia jobului curent�� �=> jobul curent este suspendat i noul job este executat

Page 22: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Exemplificare SRTF

� J1, J2, J3, J4� Timpii de intr re în sistem: 0, 1, 2, 3�� �Timpii de execu ie: 8, 4, 9, 5

� SRTF: J1(0:1), J2(1:5), J4(5:10), J1(10:17), J3(17:26)� TT(J1) = 17; TT(J2) = 4; TT(J3) = 24; TT(J4) = 7� TTM = (17 + 4 + 24 + 7) / 4 = 13

� SJF: J1(0:8), J2(8:12),J4(12:17),J3(17:26)� TT(J1) = 8; TT(J2) = 11; TT(J3) = 24; TT(J4) = 14� TTM = (8 + 11 + 24 + 14) / 4 = 14.25

Page 23: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificarea pentru sisteme interactive

� Criterii importante� timpul de r spuns�� �satisfac ia utilizatorului

� Algoritmi de planificare� Round-Robin� �Clase de priorit i�� Shortest process next

Page 24: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Round-Robin

� FCFS preemptiv

� Cuant de timp de rulare a programului�

� La expirarea cuantei de timp procesul este preemptat� se apeleaz planificatorul�� se alege alt proces (a c rui cuant nu a expirat)� �

Page 25: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Round-Robin (2)

� Cum trebuie s fie cuanta de timp? (mare/mic )� �

� Cuant de timp mare (secunde, sute de ms)�� productivitate ridicat�� �timp de a teptare mare� interactivitate sc zut� �

� Cuant de timp mic (4-10 ms)� �� interactivitatea ridicat�� timp comparabil cu o schimbare de context� utilizare ineficient a procesorului�

Page 26: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificare cu priorit i�

� Dezavantaj Round-Robin� toate procesele sunt �egale�

� �Abordare planificare cu priorit i�� unele procese sunt �mai egale� decât altele

� � � �Utilizatori importan i/mai pu in importan i� Exist procese mai importante/prioritare�

Page 27: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificarea cu priorit i (2)�

� �Priorit ile pot fi�� statice

� �se cunoa te de la început care procese vor fi prioritare� dinamice

� procesele I/O-bound sunt, în general, prioritare celor CPU-bound

Page 28: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificarea cu priorit i (3)�

Page 29: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificarea cu priorit i (4)�

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3540 root 15 0 470m 183m 29m S 1 9.7 66:03.44 Xorg27935 razvan 15 0 364m 49m 19m S 1 2.6 6:36.10 amule32666 haldaemo 15 0 29148 4132 3148 S 0 0.2 0:27.70 hald 1 root 18 0 10328 768 640 S 0 0.0 0:01.89 init 2 root 11 -5 0 0 0 S 0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0:00.02 migration/0 4 root 34 19 0 0 0 S 0 0.0 0:00.01 ksoftirqd/0 5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0 9 root 10 -5 0 0 0 S 0 0.0 0:32.93 events/0 11 root 10 -5 0 0 0 S 0 0.0 0:00.00 khelper 31 root 10 -5 0 0 0 S 0 0.0 0:00.02 kblockd/0

Page 30: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Algoritmi cu multiple cozi

� Procesele sunt p strate în mai multe cozi�

� Fiecare coad are asociat o prioritate� �

� Se ruleaz mai întâi procesele din coada cu prioritatea cea mai �mare

� Un proces poate migra dintr-o coad în alt coad <--- algoritmi � � ��cu multiple cozi i feedback

Page 31: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Shortest process next

� Adaptare a SJF pentru sisteme interactive

� Problem�� � �nu se cunoa te timpul de execu ie

� �Solu ie� estimare pe baza comportamentului anterior� se estimeaz o durat � � T0� procesul dureaz � T1� estimarea pentru urm toarea cuant va fi � � a * T1 + (1-a) * T0� a � estimarea se uit sau nu repede�� tehnic de estimare de tip � aging

Page 32: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificare pentru sisteme real-time

� Criterii importante� �îndeplinirea opera iilor în timp limitat� predictibilitatea

� Sisteme real-time� hard real-time

� rezervarea resurselor� �nu se folose te swapping sau memorie virtual�

� soft real-time� procesele critice au prioritate maxim�� pot cauza întârzieri mari celorlalte procese

Page 33: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificare pentru sisteme real-time (2)

� Planificare real-time în sistemele time-sharing� �trebuie s existe un planificator bazat pe priorit i� �� procesele real-time trebuie s ruleze cu prioritate maxim� �� planificatorul nu trebuie s decrementeze prioritatea proceselor �

real-time când acestea ruleaz�� planificatorul nu trebuie s întrerup procesele real-time� �� �schimbarea de context trebuie s dureze pu in�

Page 34: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Laten a unei schimb ri de context�

� Sum de timpi�� Salvarea contextului curent� Înc rcarea noului context�� �A teptarea termin rii unui apel de sistem�

� se pot introduce puncte de preemptare în apelurile de sistem cu durat �mare

� kernel preemptiv

� Probleme de priority inversion� priority inheritance

Page 35: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Laten a unei schimb ri de context (2)�

Page 36: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificarea execu iei pe Windows

� �Algoritm de planificare preemptiv bazat pe priorit i� �

� Subsistemul de planificare se cheam dispatcher�� �O schem de priorit i pe 32 de niveluri� �

� 0 � prioritate sistem� �1-15 � clas variabil de priorit i� � �� 16-30 � clas real-time�

� Nucleu preemptiv

Page 37: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Apelarea dispatcher-ului

� �Un thread se blocheaz i cedeaz controlul � �procesorului

� Este întrerupt un thread cu prioritate mai mare� un thread cu prioritate mai mare iese din starea BLOCKED� unui thread i-a fost schimbat prioritatea�

� Unui thread îi expir cuanta de timp�

Page 38: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Algoritmul de planificare

� Este selectat procesul cu prioritatea cea mai mare� fiecare prioritate are asociat o coad� �� procese din fiecare coad sunt procese în starea READY�

� �Procesele din aceea i coad sunt planificate �asem n tor cu Round-Robin� �

Page 39: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Priority boosting

� Unui proces îi este crescut pentru scurt timp prioritatea�� �Situa ii

� �la încheierea unei opera ii de I/E� �dup a teptarea la un obiect de sincronizare�� � �dup ce un proces din foreground a a teptat o opera ie blocant� �� thread-urile GUI sunt trezite� un thread nu a rulat în ultima perioad�

Page 40: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Priority boosting (2)

� � �Cre terea priorit ii este temporar� �� procesul ruleaz o singur cuant de timp� � �� �se decrementeaz prioritatea i se ruleaz înc o coad de � � � �

timp� se continu pân când se ajunge la prioritatea de baz� � �

� Prioritatea de baz este crescut , dar nu mai mult de 15� �

� � �La a teptarea I/E prioritatea este crescut în func ie de �dispozitiv

Page 41: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Planificarea execu iei în Linux

� Planificator preemptiv, time-sharing cu suport pentru procese real-time

� Kernel preemptiv de la versiunea 2.6

� Planificatorul gestioneaz 4 clase de procese�� real-time FCFS� real-time RR� interactive� batch

Page 42: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificarea proceselor interactive

� 2.6 � 2.6.23 � O(1) scheduler� Liste de procese pentru fiecare prioritate� Dou cozi de astfel de liste�

� �coada activ : procesele care nu i-au consumat cuanta�� �coada expirat : procesele care nu i-au expirat cuanta�

� � �Procesele sunt pedepsite (mic orarea priorit ii)�� �dac se folose te mai mult timp de procesor decât este disponibil�� �se scade prioritatea dinamic propor ional cu cea static� �� �se ine cont de istoria procesului

� �Opera iile de extragere/inserare în cozi se efectueaz în O(1)�

Page 43: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

CFS

� Completely Fair Scheduler� 2.6.23 � prezent� Time-ordered red-black tree� Virtual runtime

� �fiecare proces are un timp �virtual� de execu ie� cel mai din stânga proces are timpul virtual cel mai mic � va fi urm torul �

planificat� planificare: t_virtual_curent � t_virtual_stanga > threshold

� �Opera ii în O(log n)

Page 44: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificarea proceselor real-time

� Conform cu POSIX.1b

� FCFS� procesele au doar prioritate static , mai mare decât prioritatea proceselor �

time-sharing� este ales procesul cu prioritatea cea mai mare� �un proces din aceast clas va fi înlocuit doar dac efectueaz o opera ie � � � �

blocant�

� RR� �la fel ca FCFS, dar un proces va fi preemptat dac î i consum cuanta de � �

timp

Page 45: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Planificarea proceselor real-time (2)

� Procesele sunt planificate într-o manier RR�

� Cuanta de timp este mai mare decât pentru procesele interactive

� Procesele cu prioritate static minim sunt considerate procese � �batch

Page 46: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Cuvinte cheie

� �planificare execu ie� context switch� sheduler� dispatcher� CPU-bound� IO-bound� �timp de a teptare� turnaround time� echitate (fairness)

� productivitate (throughput)� interactivitate� cuant de timp�� time-sharing� prioritate� Round-Robin� FCFS� procese batch� procese real-time

Page 47: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Exerci iu 1

� Un kernel preemptiv cre te sau scade timpul de r spuns? Dar � �throughput-ul?

� De ce este dificil realizarea unei planific ri care s fie atât � � ��echitabil (fairness) cât i performant (throughput)?� �

Page 48: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

�Exerci iu 2

� Fie un sistem ce folose te algoritmul de planificare shortest �remaining time first. Calcula i turnaround time-ul pentru urm torul � �scenariu: J1(10, 0); J2(3, 3); J3(4, 3); J4(5, 6), unde un job este descris de J(timp de execu ie, timpul la care intr în sistem).� �

Page 49: Cursul 4 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3so/cursuri/04.Planificarea executiei.pdf · Tipuri de planificare a execu iei Cooperativ /preemptiv Cooperativ se face planificare

18.03.2009

Întreb ri�

?