Professional Documents
Culture Documents
Proçesori është një "objekt" i aftë të kryejë tranzicionet ndërmjet gjendjeve të proçesit sipas
funksionit të tranzicionit, d.m.th është makina e cila ekzekuton programin. Shënojmë se
programi është një ent statik, ndërsa proçesi është një ent dinamik që evoluon.
Në proçesin sekuencial operacionet kryhen sipas një radhe të përcaktuar, siç tregohet në figurën
3.46a, ku në mënyrë ciklike bëhet leximi Li, kryhet përpunimi Pi dhe shtypen përfundimet Si.
Në figuren 3.46b paraqitet një rast më kompleks, ku veprimet e leximit, përpunimit dhe shkrimit
mund të kryhen sipas një radhe jo detyrimisht sekuenciale, në veçanti, leximi i të dhënave Lipër
kryerjen e përpunimit Pi duhet të ndjekë leximin Li−1 , por përpunimi Pi mund të kryhet para,
gjatë ose pas përpunimit Pi−1e cila duhet të paraprijë Si−1 etj. Pra, kemi të bëjmë me një proçes
josekuencial, i cili mund të zbërthehet në proçese sekuenciale siç tregohet në figurën 3.47. Më
poshtë do të merremi vetëm me proçeset sekuenciale.
L1 L1
P1 L2 P1
S1 L3 P2 S1
L2 L4 P3 S2
P2
S2
Fig. 3.45a
L1 L2
… LN
P1 P1 PN
S1 S2 SN
L1 L2 LN
Fig. 3.45b
Kur disa proçese ekzistojnë njëkohësisht në të njëjtin proçesor ndërprerja e proçesit duhet të
shoqërohet me ruajtjen e reqjistrave, d.m.th. duhet të ruhet gjendja e proçesit.
Gjendjen e proçesit e ruajmë në një zonë të memories që quhet përshkrues i proçesit. Secili
proçes ka përshkruesin e vet. Përshkruesi përmban informacione të ndryshme, ndër të cilat më
kryesoret paraqiten në figurën 3.48.
Treguesi Dinamik
Emri
Prioriteti
Rregjistra
Fig. 3.48
Një proçes mund të ndodhet, nga pikëpamja logjike, në dy gjendje (fig. 3.49a):
në gjendjen "aktive"; kur ai mund të evoluojë;
në gjendjen "në pritje“ kur ai nuk mund të evoluojë, p.sh pret të dhënat etj.
Megjithatë, meqenëse jo të gjitha proçeset mund të evoluojnë njëkohësisht kur kemi vetëm një
proçes fizik, gjendja aktive duhet të zbërthehet në dy gjendjet e mëposhtme (fig. 3.49b):
gjendja "gati", kur proçesi është aktiv, por nuk po evoluon;
gjendja "në ekzekutim" kur proçesi evoluon:
Tranzicioni i parë ndodh kur proçesi ndërpritet dhe ka nevojë që të verifikohet ndonjë ndodhi e
jashtme. Tranzicioni i dytë ndodh kur ndodhia e sipër përmendur është verifikuar.
Tranzicioni i tretë ndodh kur bërthama i vë në dispozicion proçesit njësinë qëndrore të
përpunimit. Tranzicioni i katërt ndodh kur proçesit i hiqet njësia qëndrore e përpunimit për shkak
të ndonjë sinjali ndërprerës.
Në rastin e makinave "multiproçesor” nuk kemi ndonjë ndryshim logjik, përveç faktit se disa
proçese mund të ndodhen njëkohësisht në ekzekutim.
4
Aktiv Ne ekzekutim Gati
1 2
Ne pritje Ne pritje
(a) (b)
Fig.3.49
Dy proçese kooperojnë kur janë të lidhura logjikisht, p.sh: "që njëri prej tvre të evoluojë duhet që
tjetri të prodhojë të dhënat ".
Dy proçese interferojnë kur nga pikëpamja logjike mund të evoluojnë pavarësisht nga njëri-tjetri,
por që nuk arrijnë të evoluojnë dot, meqenëse numri i burimeve (periferikave, zonave bufer të
memories etj) në sistem është i kufizuar.
Shembulli më i thjeshtë i kooperimit është rasti prodhues konsumator. Një proçes P 1 prodhon të
dhëna dhe i regjistron në një memorie të përkohshme (Bufer); një proçes P 2 (duhet të lexojë të
dhënat dhe t'i përdorë ato (fig. 3.50).
Fig. 3.50
Pra, për të siguruar një funksionim të rregullt të sistemit është e nevojshme që në zonën bufer
veprimet të kryhen vetëm sipas rendit ''shkrim, lexim, shkrim, lexim . .. . ".
Shembulli më i thjeshtë i interferencës është rasti i përjashtimit të ndërsjelltë: dy ose më shumë
procese mund të kërkojnë njëkohësisht përdorimin e të njëjtit burim.
Në mënyrë që sistemi të funksionojë në rregull, është e nevojshme të përdoren teknika
sinkronizuese.
Semaforët përbëjnë mekanizmin kryesor për sinkronizimin e proçeseve. Semafori binar është një
ndryshore binare mbi të cilin kryhen dy veprime primitive të quajtura P dhe V . Skema logjike e
veprimeve P dhe V mbi një semafor S paraqitet në figurën 3.51.
Fig. 3.51
Fig. 3.53
Semafor i përgjithësuar është një ndryshore e plotë, jonegative mbi të cilën mund të kryhen dy
veprime primitive P e V , si në figurën 3,54.
Fig. 3.54
Fig. 3.55
Vlera
Tregues
Pershkrues
Pershkrues
Fig. 3.56
Si përgjigje ndaj SVC, njësia qëndrore kryen veprimet e paraqitura në figurën 3.57. Në figurën
3.57 eliminohet cikli pritës i figurës 3.54, pra është bërë virtualizimi.
Fig. 3.57
Termi ''Bufer" është emri simbolik i memories ndërmjetëse të komunikimit. "Zona l" dhe "Zona
2" janë dy zona pune përkatësisht të prodhuesit dhe të konsumatorit, nga ku merren dhe
vendosen të dhënat nëpërmjet primitivave (fig, 3.59). Struktura e dy proçeseve prodhuese dhe
konsumatore tregohet në figurën 3.60. Përdorimi i primitivave "Dërgo" dhe "Merr” lehtëson
programin. Këto primitiva mund të bëhen si proçedura të bërthamës (njësisë qëndrore), që
ekzekutohen sa herë që ka një SVC. Ekzekutimi i tyre bëhet me ndërprerje të çaktivizuar, për të
siguruar funksionimin e rregullt.
Tamponi i
komunikimit
Prodhuesi Konsumatori
S1
Zona 1 S2 Zona 2
D
Fig. 3.59
Prodhuesi Konsumatori
Për të shmangur këto të meta përdoret mekanizmi i komunikimit me "kuti postare" dhe
"mesazhe”. Kutia Postare është një strukturë të dhënash e përbërë nga:
një semafor S,
një tregues që adreson listën e mesazheve.
Në figurën 3.61 paraqitet struktura e primitivave "Dërgo" dhe "Merr", me kuti postale. Semafori
S inicializohet në 1. Konsumatori bllokohet kur kutia është bosh. Prodhuesi mund të prodhojë
një numër të pafund mesazhesh (fig. 3.61). Për të kufizuar gjatësinë e radhës së mesazheve deri
në M mesazhe, futet një semafor i dytë i inicializuar në vlerën M , mbi të cilën primitiva "Dërgo"
kryen veprimin P dhe "Merr" kryen veprimin V .
Semafori
Treguesi
Prodhuesi M1 Konsumatori
M1
M1 “Merr”
“Dergo”
Fig. 3.61
9. BLLOKIMI KRITIK
Sistemi operativ i organizuar me proçese duhet të projektohet në mënyrë të tillë që të mënjanojë
e rastet e mëposhtme:
" P 1 pret diçka nga P 2 dhe P 2 pret diçka nga P 1". Të tilla raste quhen "bllokime kritike".
Shqyrtojmë dy proçese P 1 e P 2 që përdorin dy burime Bl e B 2 sipas strukturës së treguar në
figurën 3.62.
P1 P2
P(S1) P(S2)
(fillon perdorimi i B1) (fillon perdorimi i B1)
. .
. .
. .
P(S2) P(S1)
(fillon perdorimi i B2) (fillon perdorimi i B2)
V(S1) V(S2)
V(S2) V(S1)
(lihen te lire B1 e B2) (lihen te lire B2 e B1)
Fig. 3.62
P 1 kryen P(S 1) ;
P 2 kryen P(S 2) ;
P 1 kryen P(S 2) ;
P 2 kryen P(S 1) ;
Sipas kësaj metode, proçcesit P që kërkon n burimet nëpërmjet primitivës "Kërkoj B1,
B2, .....Bn", i shërbehet në këtë mënyrë:
1. Në qoftë se të gjitha burimet e kërkuara janë të lira, ato i vihen në dispozicion proçesit;
"përndryshe, ndërprite proçesin derisa të gjitha burimet të jenë disponibël".
GRABITJA E PARAKOHËSHME.
Metoda e grabitjes së parakoheshme qëndron në marrjen "me forcë" të burimit ose burimeve nga
proçesi, atëherë kur verifikohet bllokimi kritik. Të zbulosh nëse sistemi ndodhet në gjendjen e
bllokimit kritik, nuk është diçka e lehtë.
ALGORITMI I BANKIERIT.
Algoritmi presupozon se njihet, për çdo proçes, numri maksimal i burimeve që ai mund të
përdorë. Algoritmi bazohet në kriterin e mëposhtëm:
"kur një proçes kërkon një ose disa burime, ato i caktohen vetëm në qoftë se numri i burimeve që
mbeten të lira është i mjaftueshëm të kënaqë kërkesën maksimale të paktën të njërit prej
proçeseve që disponon ndonjë burim".
P1 P2