Professional Documents
Culture Documents
SISTEMET OPERATIVE
DHE MENAXHIMI I SISTEMEVE
Kapitulli 3:
Proceset
Sistemet Operative dhe Menaxhimi i Sistemeve Prof. Ass. Dr. ArsimSusuri, 2018
Kapitulli 3: Proceset
Koncepti i procesit
Planifikimi i procesit
Operacionet në procese
Komunikimi ndërprocesor (IPC)
Shembuj të sistemeve IPC
Komunikimi në sistemet klient-server
3.2
1
Objektivat
Të njoftojë me kuptimin e procesit – program në ekzekutim e
sipër, i cili formon bazën e kompjuterikës
3.3
Koncepti i procesit
Një sistem operativ ekzekuton një shumëllojshmëri të programeve:
Batch sistemet – punët
Sistemet me ndarje kohore – programet e përdoruesit apo detyrat
3.4
2
Koncepti i procesit ...
Programi është entitet pasiv i ruajtur në disk (fajll të
ekzekutueshëm), procesi është aktiv
Programi bëhet proces kur fajlli i ekzekutueshëm të ngarkohet në
memorie
3.5
Procesi në memorie
3.6
3
Gjendja e procesit
Gjatë ekzekutimi të procesit, ai e ndryshon
3.7
3.8
4
Blloku i kontrollit të proceseve (PCB)
Informacioni lidhur me secilin proces
(i quajtur edhe bllok i kontrollit të
detyrave)
Gjendja e procesit – duke u ekzekutuar, pritur, etj.
Numëruesi i programit – lokacioni i instruksionit
tjetër për ekzekutim
CPU regjistrat – përmbajtjet e të gjitha regjistrave
në lidhje me proceset
Informacioni për planifikim të procesorit, planifikim
të treguesve të rreshtave
Informacion në lidhje me menaxhim të memories –
memoria e caktuar për procesin
Informacioni llogaridhënë – procesori i përdorur,
koha kaluar prej fillimit, kufizimet e kohës
Informacioni i gjendjes I/O – pajisjet të caktuara për
proces, lista e fajllave të hapur
3.9
3.10
5
Fillet
Deri më tani, procesi ka një fill të ekzekutimit
3.11
3.12
6
Planifikimi i proceseve
Maksimizo përdorimin e procesorit, ndërro shpejt proceset në
procesor për ndarje kohore
3.13
3.14
7
Paraqitja e planifikimit të proceseve
3.15
Planifikuesit
Planifikues afat-shkurtë (apo planifikues i procesorit) – selekton
cilat procese duhet të ekzekutohen në vijim dhe ia cakton procesorin
Ndonjëherë i vetmi planifikues në sistem
Planifikuesi afat-shkurtë invokohet shpesh (milisekonda) (duhet të
jetë i shpejtë)
Planifikues afat-gjatë (apo planifikues i punëve) – selekton cilat
procese duhet të sjellen në rreshtin e gatshëm
Planifikuesi afat-gjatë invokohet jo aq shpesh (sekonda, minuta)
(mund të jetë i ngadaltë)
Planifikuesi afat-gjatë kontrollon shkallën e multiprogramimit
Proceset mund të përshkruhen si:
Procese të lidhura me I/O – shpenzojnë më tepër kohë në I/O sesa në
llogaritje, shumë hove të shkurta të procesorit
Procese të lidhura me procesor – shpenzojnë më tepër kohë në
llogaritje; disa hove të gjata të procesorit
Planifikuesi afat-gjatë përpiqet për kombinim të mirë të proceseve
3.16
8
Shtimi i planifikimit afat-mesëm
Planifikuesi afat-mesëm mund të shtohet nëse shkalla e
programimit të shumëfishtë ka nevojë të zvogëlohet
Largo procesin nga memoria, ruaje në disk, ktheje prapa nga disku
për të vazhduar me ekzekutim: swapping
3.17
3.18
9
Ndërrimi i kontekstit
Kur procesori të kalojë në proces tjetër, sistemi duhet të ruajë
gjendjen e procesit të vjetër dhe të ngarkojë gjendjen e
ruajtur për procesin e ri përmes ndërrimit të kontekstit
3.19
Operacionet në procese
Sistemi duhet të ofrojë mekanizma për :
Krijim të proceseve
Përfundim të proceseve
3.20
10
Krijimi i proceseve
Procesi prind krijon procese fëmijë, të cilat në anën tjetër
krijojnë procese tjera, duke formuar një pemë të proceseve
Në përgjithësi, procesi identifikohet dhe menaxhohet përmes
një identifikuesi të procesit (pid)
Opcionet për përdorim të përbashkët të resurseve
Prindi dhe fëmija ndajnë të gjitha resurset
Fëmijtë ndajnë një nënset të resurseve të prindit
Prindi dhe fëmijët nuk ndajnë resurset
Opcionet për ekzekutim
Prindi dhe fëmijët ezkeutohen në paralel
Prindi pret deri sa fëmija të përfundojë
3.21
init
pid = 1
emacs tcsch
ps
pid = 9204 pid = 4005
pid = 9298
3.22
11
Krijimi i proceseve ...
Hapësira adresore
Duplikat i fëmijëve të prindit
Fëmija ka një program të ngarkuar në të
Shembujt UNIX
Thirrja sistemore fork() krijon një proces të ri
Thirrja sistemore exec() e përdorur pas një fork() për të
zëvendësuar thapësirën e memories së procesit me program
të ri
3.23
3.24
12
Krijimi i procesit të ri përmes Windows API
3.25
Përfundimi i procesit
Procesi ekzekuton deklaratën e fundit dhe më pas kërkonnga
sistemi operativ fshirjen përmes thirrjes sistemore exit()
Kten të dhënat e statusit nga fëmija te prindi (përmes
wait())
Resurset e procesit i rikthehen sistemit operativ
3.26
13
Përfundimi i procesit ...
Disa sisteme operative nuk lejojnë ekzistimin e fëmijës nëse pridni i
tij ka përfunduar. Nëse procesi përfundon, atëherë edhe fëmija i tij
duhet të përfundojë.
Përfundimi kaskadë. Të gjithë fëmijët, nipat/mbesat, etj. janë
të përfunduar.
Përfundimi inicohet nga sistemi operativ.
Procesi fëmijë mund të presë për përfundim të procesit fëmijë duke
përdorur thirrjen sistemore wait(). Thirrja e kthen informacionin
për gjendjen e statusit dhe pid-in e procesit të përfunduar
pid = wait(&status);
Nëse nuk ka prind në pritje (nuk invokoi wait()) procesi është
zombie
Nëse prindi përfundoi pa invokuar wait , procesi është orphan
3.27
3.28
14
Komunikimi mes proceseve (IPC)
Proceset brenda sistemit mund të jenë të pavarura apo kooperuse
Procesi kooperues mund të ndikojë apo të ndikohet nga proceset
tjera, përfshirë këtu përdorimin e përbashkët të të dhënave
Arsyet për proceset kooperuese:
Shkëmbimi i informacionit
Përshpejtimi i llogaritjes
Modulariteti
Lehtësia
Proceset kooperuese kanë nevojë për komunikim mes proceseve
(IPC)
Dy modele të IPC
Memoria e përbashkët
Pasimi i mesazheve
3.29
Modelet komunikuese
(a) Pasimi i mesazheve (b) Memoria e përbashkët
3.30
15
Proceset kooperuese
Procesi i pavarur nuk mund të ndikojë apo të ndikohet nga
ekzekutimi i ndonjë procesi tjetër
Procesi kooperativ mund të ndikojë ose të ndikohet nga ekzekutimi i
procesit tjetër
Përparësitë e kooperimit të proceseve
Shkëmbimi i informacionit
Përshpejtimi i llogaritjes
Modulariteti
Lehtësia
3.31
Problemi prodhues-konsumator
Paradigmë për procese kooperuese, procesi prodhues
prodhon informacion që konsumohet nga procesi
konsumator
Buffer-i jo i lidhur nuk kufizon madhësinë e buffer-it
3.32
16
Zgjihja buffer i lidhur – memoria e përbashkët
Të dhënat e përbashkëta
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
3.33
item next_produced;
while (true) {
/* produce an item in next produced */
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = next_produced;
in = (in + 1) % BUFFER_SIZE;
}
3.34
17
Buffer i lidhur - konsumatori
item next_consumed;
while (true) {
while (in == out)
; /* do nothing */
next_consumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
3.35
3.36
18
Komunikimi mes proceseve – pasimi i mesazheve
3.37
3.38
19
Pasimi i mesazheve ...
Implementimi i linkut komunikues
Fizik:
Memoria e përbashkët
Bus-i harduerik
Rrjeti
Logjik:
Direkt apo indirekt
Sinkron apo asinkron
Buffer-im automatik apo eksplicit
3.39
Komunikimi i drejtpërdrejtë
Proceset duhet të emërtojnë njëra tjetrën në mënyrë eksplicite:
send (P, message) – dërgon një mesazh te procesi P
receive(Q, message) – prano një mesazhnga procesi Q
3.40
20
Komunikimi jo i drejtpërdrejtë
Mesazhet drejtohen dhe pranohen nga mailbox-at (portet)
Secili mailbox ka një ID unike
Proceset mund të komunikojnë vetëm nëse najnë një mailbox
3.41
3.42
21
Komunikimi jo i drejtpërdrejtë ...
Ndarja e mailbox-it
P1, P2, dhe P3 ndajnë mailbox-in A
P1, dërgon; P2 dhe P3 pranojnë
Kush e merr mesazhin?
Zgjidhjet
Lejo një ink të asocijohet me më së shumti dy procese
Lejo vetëm një proces në kohë të ekzekutojë
operacionin receive
Lejo sistemin të selektojë arbitrarisht pranuesin.
Dërguesi njoftohet kush ishte pranuesi
3.43
Sinkronizimi
Pasimi i mesazheve mund të jetë bllokues ose jo-bllokues
Bllokues konsiderohet të jetë sinkronizues
Dërgimi bllokues – dërguesi është i bllokuar deria sa të
pranohet mesazhi
Pranimi bllokues – pranuesi është i bllokuar deri sa mesazhi
të jetë në dispozicion
Jo-bllokues konsiderohet asinkron
Dërgimi jo-bllokues – dërguesi dërgon mesazhin dhe
vazhdon
Pranimi jo-bllokues – pranuesi pranon:
mesazh valid, ose
mesazh Null
Kombinime të ndryshme të mundshme
Nëse edhe dërgimi dhe pranimi janë bllokues, atëherë kemi
një takim (rendezvous)
3.44
22
Sikronizimi ...
Prodhuesi-konsuatori bëhet i parëndësishëm
message next_produced;
while (true) {
/* produce an item in next produced */
send(next_produced);
}
message next_consumed;
while (true) {
receive(next_consumed);
3.45
Buffer-imi
Rresht i mesazheve të bashkangjtura me linkun
3.46
23
Shembuj të sistemeve IPC Systems - POSIX
3.47
3.48
24
Konsumatori IPC POSIX
3.49
3.50
25
Shembuj të sistemeve IPC – Windows
Me orientim në pasim të mesazheve përmes rrethinës
së avansuar të thirrjeve lokale të procedurave (LPC)
3.51
3.52
26
Komunikimet në sistemet klient-server
Socket-et
Thirrjet e procedurave në largësi (RPC)
Pipe-at
Invokimi i metodave në largësi (RMI - Java)
3.53
Socket-et
Një socket është e definuar si një pikë fundore komunikuese
3.54
27
Komunikimi i socket-eve
3.55
Socket-et në Java
Tri lloje të socket-eve
Me orientim në
koneksion (TCP)
Pa koneksion (UDP)
MulticastSocket
klasa – të dhënat mund
t’i dërgohen shumnë
pranuesve
Konsiderojeni si server i
“takimit”:
3.56
28
Thirrja e procedurave në largësi (RPC)
Thirrja e procedurave në largësi (RPC) abstragon thirrjet e
procedurave mes proceseve në rrejete kompjuterike
Prapë përdor porte për të dalluar shërbimet
3.57
3.58
29
Ekzekutimi i RPC
3.59
Pipe-at
Luan rolin e përçuesin që mundëson komunikimin mes dy
proceseve
Çështjet:
A është komunikimi një-drejtimësh apo dy-drejtimësh?
Në rast të komunikimit dy-drejtimësh, a është half-duplex apo full-
duplex?
A duhet të ekzistoë relacion (p.sh., prind-fëmijë) mes proceseve
komunikuese?
A mund të përdoren pipe-at nëpër rrjet kompjuterik?
30
Pipe-at e zakonshëm
Pipe-at e zakonshëm lejojnë komunikim në stilin e zakonshëm
prodhues-konsumator
Prodhuesi shkruan në njërin skaj (skaji write-end i pipe-it)
Konsumatori lexon nga skaji tjetër (skaji read-end i pipe-it)
Prandaj, pipe-at e zakonshëm janë një-drejtimësh
Ka nevojë për relacionin prind-fëmijë mes proceseve komunikuese
3.61
Pipe-at e emërtuar
Pipe-at e emërtuar janë më të fuqishëm se pipe-at e zakonshëm
3.62
31
Fundi i Kapitullit 3
Sistemet Operative dhe Menaxhimi i Sistemeve Prof. Ass. Dr. ArsimSusuri, 2018
32