You are on page 1of 54

SKEDULIMI CPU-së

LEKSION 6
L i b r i : “ O p e r a t i n g S y s t e m C o n c e p t s ” S i l b e r s c h a t z , A . , G a l v i n , P. a n d G a g n e , G .
(Faqe:203-230)
MULTIPROGRAMIMI
Multiprogramimi
›Në sistemet me një procesor, normalisht ekzekutohet vetëm një proces. Proceset e tjera duhet të
presin derisa të jetë e lirë CPU. Qëllimi i multiprogramimit është që në të njejtin moment të jenë në
ekzekutim disa procese që të maksimizohet përdorimi i CPU.

›Një proces ekzekutohet derisa të vijë koha e pritjes për plotësimin e disa kërkesave I/O.

›CPU qëndron si i “papunë”. Pra kemi një kohë të humbur sepse nuk do kryheb asnjë punë tjetër CPU.
Me anë të multiprogramimit , shfrytëzohet kjo kohë që të jetë sa më produktive.

›Disa procese mbahen në memorie në të njëjtin moment. Kur një proces është në statusin wait,
sistemi i shfrytëzimit e kalon CPU tek një proces tjetër. Ky model ndiqet sa herë një proces kalon në
statusin wait (pritje).
Multiprogramimi
Skedulimi i kësaj procedure është

një ndër funksionet më të rendesishme te

sistemit të operimit.

CPU është ndër burimet primare që duhet të

skedulohet përpara perdorimit.

CPU burst është koha gjatë së cilës procesi

përdor CPU.

Wait burst është koha që procesi pret për

perfundimin e veprimit I/O.


SKEDULUESI
I
PROCESEVE
Skeduluesi i Proceseve
›Skeduluesi i proceseve përzgjedh nga proceset në rradhën gati duke i dhënë kontrollin e CPU njërit
prej tyre. Rradha mund të renditet në disa mënyra.

›Vendimet e skeduluesit të CPU ndodhin kur një proces:


→ Kalon nga gjendja e ekzekutueshme (running) në gjendjen e pritjes (wait)
→ Kalon nga gjendja e ekzekutueshme (running) në gjendjen gati (ready)
→ Kalon nga gjendja e pritjes (wait) në gjendjen gati (ready)
→ Përfundon ekzekutimin e tij

›Skedulimi për pikat 1 dhe 4 është jo-ndalues (non-preemptive).


›Skedulimi për pikat 2 dhe 3 është ndalues (preemptive). Në këtë rast procesit mund t'i hiqet koha e
CPU përpara përfundimit të tij.
Kriteret e skedulimit
i.Përdorimi i CPU-së → CPU shfrytëzohet ne maksimum. Në sistemet e sotme, përdorimi i CPU

varion 40%-80%.

ii.Throughput → Numri i proceseve që përfundojnë ekzekutimin për njësi të kohës.

iii.Turnaround time → Koha totale që nevojitet për ekzekutimin e një procesi specifik. Eshtë
iv. Turnaround time = koha e ngarkimit në memorie + koha e pritjes në listën gati + koha e procesorit + koha I/O

v.Waiting time → Koha totale e pritjes së një procesi në rradhën gati (ready queue).

vi.Response time → Koha e përgjigjes së parë; jo detyrimisht është output-i.


Kriteret e Optimizimit të Algoritmeve të Skedulimit

i. Maksimizim i përdorimit të CPU

ii. Maksimizim i numrit të proceseve të cilët përfundojnë ekzekutimin për njësi të kohës

iii. Minimizim i kohës që nevojitet për ekzekutimin e një procesi specifik

iv. Minimizim i kohës së pritjes së një procesi në rradhën gati

v. Minimizim i kohës së përgjigjes së parë; jo detyrimisht është outputi përfundimtar.

Kriteri përdoret në sistemet interaktive për të parë kohën e përgjigjes së këtyre sistemeve

ndaj kërkesave.
ALGORITME
SKEDULUES
Algoritmet Skedulues

SJF
O SR
L IF T

Pri
FS

ori
FC

tet
Koncepte
›Arrival time = Arritja (AT)
›Burst Time = Koha Ekzekutimit (BT)
›Completion Time = Koha përfundimit (CT)
›Turn Around Time (TAT) = sasia e kohës që duhet për të përmbushur kërkesën nga procesi

TAT = CT - AT
›Waiting time/Koha e pritjes (WAT) = është koha e kaluar nga një proces në radhë në pritje për t'u

ekzekutuar. WAT = TAT - BT


First Come First Served (FCFS)
First Come First Served (FCFS)
›Detyrat skedulohen sipas rradhës së mbërritjes
›Non-preemptive (jo ndaluese)

›Avantazh:
› Shumë i thjeshtë

›Disavantazh:
› Koha mesatare e pritjes varet nga rradha e mbërritjes
FCFS - Shembull 1 (AT = 0)

PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 10

P2 0 3

P3 0 5

Proceset mbërrijnë në rradhën: P1, P2, P3.


FCFS - Shembull 1 (AT = 0)
Ndërtojmë Gantt Chart për skedulimin.
Hapat:
1. Për të ndërtuar Gantt Chart, na duhet koha e përfundimit (CT, Completion Time)

BT(P1) = 10 »» P1 = 0 + 10 = 10

BT(P2) = 3 »» P2 = 10 + 3 = 13

BT(P3) = 5 »» P3 = 13 + 5 = 18

P1 P2 P3
0 10 13 18
FCFS - Shembull 1 (AT = 0)

Për secilin proces, gjejmë TAT, WAT dhe AWAT (average WAT).

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 10 10
P2 0 3 13
P3 0 5 18

Koha mesatare e pritjes (AWAT, Average WAT) = ?


FCFS - Shembull 1 (AT = 0)

Procesi Arritja (AT) Koha Ekzekutimit (BT)


Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 10 10 10 (10-0) 0 (10-10)

P2 0 3 13 13 (13-0) 10 (13-3)

P3 0 5 18 18 (18-0) 13 (18-5)

Koha mesatare e pritjes (AWAT, Average WAT) është:


= (P1 + P2 + P3) / 3
= (0 + 10 + 13) / 3
= 7.67
FCFS - Shembull 2 (AT ≠ 0)

PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 2 2

P2 5 6

P3 0 4

P4 0 7

P5 7 4
FCFS - Shembull 2 (AT ≠ 0)

Ndërtojmë Gantt Chart për skedulimin.


Hapat:
1. Renditja e proceseve do të bëhet në bazë të AT. Procesi që ka vlerë më të vogël, do të
renditet i pari.
2. Për të ndërtuar Gantt Chart, na duhet koha e përfundimit (CT, Completion Time)
BT(P3) = 4 »» P3 = 0 + 4 = 4
BT(P4) = 7 »» P4 = 4 + 7 = 11
BT(P1) = 2 »» P1 = 11 + 2 = 13
BT(P2) = 6 »» P2 = 13 + 6 = 19
BT(P5) = 4 »» P5 = 19 + 4 = 23
FCFS - Shembull 2 (AT ≠ 0)
BT(P3) = 4 »» P3 = 0 + 4 = 4
BT(P4) = 7 »» P4 = 4 + 7 = 11
BT(P1) = 2 »» P1 = 11 + 2 = 13
BT(P2) = 6 »» P2 = 13 + 6 = 19
BT(P5) = 4 »» P5 = 19 + 4 = 23

P3 P4 P1 P2 P5
0 4 11 13 19 23
FCFS - Shembull 2 (AT ≠ 0)

Për secilin proces, gjejmë TAT, WAT dhe AWAT (average WAT).

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 2 2 13

P2 5 6 19

P3 0 4 4

P4 0 7 11

P5 7 4 23

Koha mesatare e pritjes (AWAT, Average WAT) = ?


FCFS - Shembull 2 (AT ≠ 0)
Koha përfundimit TAT WAT
Procesi Arritja (AT) Koha Ekzekutimit (BT) (CT-AT) (TAT-BT)
(CT)
P1 2 2 13 13-2=11 11-2=9

P2 5 6 19 19-5=14 14-6=8

P3 0 4 4 4-0=4 4-4=0

P4 0 7 11 11-0=11 11-7=4

P5 7 4 23 23-7=16 16-4=12

Koha mesatare e pritjes (AWAT, Average WAT)


= (P1 + P2 + P3 + P4 + P5) / 5
= (9 + 8 + 0 +4 +12) / 5
= 6.6 ms.
FCFS - Ushtrim 1
PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 8

P2 0.4 4

P3 1.05 1

1. Ndërtojmë Gantt Chart për skedulimin.


2. Gjejmë vlerën e TAT dhe WAT.
3. Gjejmë vlerën e Average WAT (AWAT).
FCFS - Ushtrim 2
PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 2

P2 1 10

P3 5 6

1. Ndërtojmë Gantt Chart për skedulimin.


2. Gjejmë vlerën e TAT dhe WAT.
3. Gjejmë vlerën e Average WAT (AWAT).
Last In First Out (LIFO)
Last In First Out (LIFO)
LIFO - Last In First Out
◦ Detyrat e reja vendosen në krye të rradhës me statusin ready (gati)

Problem:
◦ Proceset e para mund të mos e arrijnë asnjëherë CPU
LIFO - Shembull 3 (AT=0)

PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 10

P2 0 3

P3 0 5

P3 P2 P1
0 5 8 18
LIFO - Shembull 3 (AT=0)

Gantt Chart
BT(P3) = 0 »» P3 = 0 + 5 = 5
BT(P2) = 3 »» P4 = 5 + 3 = 8
BT(P1) = 5 »» P1 = 8 + 10 = 18

P3 P2 P1
0 5 8 18
LIFO - Shembull 3 (AT=0)

Koha përfundimit TAT WAT


Procesi Arritja (AT) Koha Ekzekutimit (BT) (CT) (CT-AT) (TAT-BT)

P1 0 10 18 18 8

P2 0 3 8 8 5

P3 0 5 5 5 0

Koha mesatare e pritjes është:

=(P1 + P2 + P3)/3
=(8+5+0)/3=4.3ms
LIFO - Shembull 4 (AT≠0)

P1 P2 P3
0 10 13 18
LIFO - Shembull 4 (AT≠0)

PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 10

P2 7 3

P3 1 5

P1 P2 P3
0 10 13 18
LIFO - Shembull 4 (AT≠0)

Ndërtojmë Gantt Chart për skedulimin.

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 10 10 10 0
P2 7 3 13 6 3
P3 1 5 18 17 12

Koha mesatare e pritjes është:

=(P1 + P2 + P3)/3
=(0+3+12)/3=5ms
Shortest Job First (SJF)
Shortest Job First (SJF)
SJF - Shortest Job First
◦ Zgjidhet detyra me kohën më të shkurtër të ekzekutimit
◦ Më optimali për minimizimin e kohës mesatare të pritjes
◦ Algoritëm jo ndalues (non preemptive)

Problem:
◦ E vështirë perllogaritja e kohës së ekzekutimit për procesin e rradhës
SJF - Shembull 4

P2 P3 P1
0 3 6 30
SJF - Shembull 4
PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 24

P2 0 3

P3 0 3

P2 P3 P1
0 3 6 30
SJF - Shembull 4
Ndërtojmë Gantt Chart për skedulimin.

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 24 30 30 6
P2 0 3 3 3 0
P3 0 3 6 6 3

Koha mesatare e pritjes është:

=(P1 + P2 + P3)/3
=(6+0+3) / 3 = 3ms
Shortest Remaing Time (SRT)
Shortest Remaing Time (SRT)

SRT- Shortest Remaing Time (SJF-preemptive)

Shtohet rëndësia e kohës së mbërritjes së proceseve dhe koncepti i

skedulimit ndalues
SRT - Shembull 5

P1 P2 P3 P4
0 2 6 8 13
SRT - Shembull 5
PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 7

P2 2 4

P3 4 2

P1 P2 P3 P4
0 2 6 8 13
SRT - Shembull 5
Ndërtojmë Gantt Chart për skedulimin.

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 7 13 13 6
P2 2 4 6 4 0
P3 4 2 8 4 2

Koha mesatare e pritjes është:

=(P1 + P2 + P3)/3
=(6+0+2)/3=2.67ms
Round Robin (RR)
Round Robin (RR)
Çdo proces merr kontrollin e CPU për një kohë të paracaktuar (quantum q), zakonisht 10-100 milisekonda. Pas
kësaj kohe ndërpritet ekzekutimi i procesit i cili shtohet në fund të rradhës gati (ready queuE)

Nëse janë n procese në rradhën gati dhe koha quantum është q atëherë asnjë proces nuk pret më shumë se
(n-1)q njësi kohore
Pas çdo njësie kohore (quantum) skedulohet një proces tjetër
Performanca
q i lartë -> FIFO
q i vogël -> q duhet të jetë mjaftueshëm i madh krahasuar me kohën e nevojshme për ndryshimin e
kontekstit
RR - Shembull 6

P1 P2 P3 P1
0 4
RR - Shembull 6
PROCESI ARRITJA (AT) KOHA EKZEKUTIMIT (BT)

P1 0 24

P2 1 3

P3 2 3

P1 P2 P3 P1
0 4
RR - Shembull 6
Ndërtojmë Gantt Chart për skedulimin.

Procesi Arritja (AT) Koha Ekzekutimit (BT) Koha përfundimit TAT WAT
(CT) (CT-AT) (TAT-BT)

P1 0 24 30 30 6

P2 1 3 7 6 3

P3 2 3 10 8 5

Koha mesatare e pritjes është:

=(P1 + P2 + P3)/3
=(6+3+5)/3=4.67ms
Algoritmi Skedulues me Prioritet
Algoritmi Skedulues me Prioritet
•Një numër prioriteti (integer) i bashkëngjitet çdo procesi
•Kontrolli i CPU i kalohet procesit me prioritetin më të lartë (numri më i vogël integer = prioriteti
më i lartë)
•Jo-ndalues - SJF një rast i veçantë i algoritmit me prioritet

Problemet
Starvation - Proceset me prioritet më të ulët mund të mos ekzekutohen asnjëherë Zgjidhja
Aging - Me kalimin e kohës, rritet prioriteti i proceseve
Algoritmi Skedulues me Prioritet

P2 P5 P1 P3 P4
0 1 6 16 18 19
Algoritmi Skedulues me Prioritet

Procesi Prioriteti Koha Ekzekutimit


(BT)

P1 3 10

P2 1 1

P3 4 2

P4 5 1

P5 2 5
Algoritmi Skedulues me Prioritet

Procesi Prioriteti Koha Ekzekutimit (BT) Koha përfundimit TAT WAT


(CT) (CT-AT) (TAT-BT)

P1 3 10 16 16 6
P2 1 1 1 1 0
P3 4 2 18 18 16
P4 5 1 19 19 18
P5 2 5 6 6 1
PYETJE?
jora.banda@uet.edu.al
B502
FALEMINDERIT!

You might also like