Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

4.

1 Mekanizmat e komunikimit që përdorin sinkronizimin implicit janë Shared Memory dhe


Message Queues. Ky mekanizëm ndan një pjesë të memories dhe proceset mund të lexojnë dhe
shkruajnë pa nevojën e thirrjeve të sistemit System Calls.Sinkronizimi ndodhe kur te te behen send
te dhenat, me pas ne recive leshohen
4.2 Dallimet mes Pipes dhe MessageQueues jane: 1.Pipes jane unidirectional ndersa MQ jo. 2.Te
dhenat nga Pipes mund te lexohen edhe vetem disa bytes te caktuara, ndersa te dhenat ne MQ
lexohen ashtu siq jane te shkruara. 3. Pipes per te funksionuar, duhet qe edhe lexuesi edhe shkruesi
te jete te hapura, MQ nuk ka nevoje. Pipes perdoren per kommunikim në mes të procesve
„farefisnore“(procese qe jane brenda nje kompjuteri) ndersa Named Pipes pervec kesaj perdoret
edhe per komunikim ne mes proceseve “jo farefisnore” (ne kompjutera te ndryshem ne rrjet).
4.3 Malloc eshte nje teknike qe perdoret per alokim dinamik te memories. Perdoret ne rastet kur
shfrytezuesi nuk e din sa memorie nevoijtet per ate proces. Duhet pasur parasysh numrin e bajteve
qe alokojne(si dhe mos te harrojme ta lirojme memorien pastaj). Memory leaks ndodh kur
programuesit krijojnë një memorie në heap dhe harrojnë ta fshijnë atë. Pasojat e memory leaks
janë se zvogëlon performancën e kompjuterit duke zvogëluar sasinë e memories së disponueshme.
4.4 Shared Memory ndahet me qëllim të komunikimit ndërmjet proceseve. Dhe problemet
kryesore janë se dy procese mund të shkruajnë/lexojne në të njëjtin vend dhe të dhënat nuk do të
jenë të besueshme, dhe kjo mund të shkaktojë humbje të të dhënave. Shared Memory përdor Mutex
për sinkronizim. Shared Memory mbështet sinkronizimin implicit.
4.5 Deadlock eshte nje gjendje kur nje proces ose nje thread pret per nje resurs qe eshte duke u
mbajtur nga nje proces/thread tjeter e i cili gjithashtu eshte duke pritur nje resurs qe eshte duke e
mbajtur nga nje pale e trete.
4.5 Critical Section një proces gjendet në seksioni kritik kur ai i qaset resourseve (shenimeve) të
perbashketa (shared memory).
4.5 Mutual Exclusion pengon qasjen e njekohësishme në resurse sepse në të njejten kohe vetem
një proces guxon të gjindet në seksionin kritik dhe qasja në seksionin kritik duhet te behet në
menyre të renditur.
1. Simoli & quhet operatori i adresës dhe përdorët për ta lexuar adresën memorike të një variable.
Simboli * quhet operatori i dereferencimit dhe përdorët për ta deklaruar një variabël pointerike.
Operatori i dereferencimit (*) përdorët për t’ju qasur vlerës së adresës kur tregon variabla
pointerike.
2. Dallimi mes variablave pointerike dhe varialave te zakonshme eshte se variablat pointerike
deklarohen njësoi si variablat normale, por para emrit vendoset operatori * dhe ruajnë si «vlerë»
të tyre adresa memorike. Madhësia e variablave pointerike është e barabartë me numrin e bitave
të address bus-it. Madhesia e variables pointerike e ruajtur ne makine 64-bit eshte 8
3. Sistem operativ preemptive eshte nje teknike e punes se procesorit ku procesori e ndane kohen
ne intervale per secilin proces te caktuar. Kjo teknike perdoret kur procesi kalon nga running state
ne ready state ose nga waiting state ne ready state.
4. Gjendjet e procesit ne sistemin e 5 niveleve jane: 1.New -
eshte gjendja ku sistemi operativ e ka krijuar procesin.
2.Ready - procesi është i gatshem për ekzekutim dhe pret për
tu ekzekutuar nga CPU. 3.Running - procesi është në posedim
të CPU dhe është në ekzekutim. 4.Blocked - procesi pret për
një event (ngjarje) (p.sh. perfundimi i një operacioni I/O) –
procesi nuk është në gjendje për tu ekzekutuar. 5.Exit - kjo
gjendje mbrihet gjatë terminimit të procesit.Procesi nuk ekzekutohet më tutje. Informatat e procesit
ka gjasa të shfrytëzohen prej programeve tjera. Informatat e procesit fshihen atëherë kur ato nuk
nevojiten më.
5. fork – perdoret per te krijuar një proces qe e ekzekuton të njejtin program sikurse edhe procesi
i cili e ka krijuar ate. Procesi i ri i krijuar eshte procesi Child ndersa procesi i cili ekzekuton fork
eshte procesi Parent. Procesi femij dhe prind i kane te njejtat variabla përveq variables pid. pid e
dallon procesin prind prej atij femijë. pid i processit femij është 0, ndersa i procesit prind është
numer i plote pozitiv jo-zero. Dallimi mes fork dhe wait eshte sepse fork - krijon një proces te ri
ndersa wait- pret per perfundimin e procesit femije.
6. Shared memory nuk mund te perdoret pa ndonje mekanizem shtese sepse paraqiten problemet
te sinkronizimit dhe te adresimit te memories. Nese ne shared memory nuk perdoren teknika te
sinkronizimit te qasjes ne memorien e perbashket rrezikohet konsistenca dhe integriteti i te
dhenave qe ruhen aty. Rrjedhimisht shfaqen edhe probleme te tjera perfshire: deadlock, race
conditions, degradimi I kohes se qasjes, moskoherenca e te dhenave si shkas i ndryshimit te tyre
dhe degaradimit gjate shkruarjes ne te njejtin lokacion memorik njekohesisht nga disa procese.
7. Mutex eshte nje menyre qe mundeson sinkronizimin ne mes te threads, pra ai mundeson
“mbrojtjen” e resursit nga threads tjere perderisa eshte duke u perdorur nga nje thread aktual.
8. Free eshte nje funksion qe na ndihmon ta lirojme memorien nga alokimet e meparshme
9. Pipes jane kanale kommunikim në mes të procesve „farefisnore“
10. Message queue eshte nje forme e komunikimit asinkron ne mes te proceseve qe i ruan mesazhet
ne linked list. Eshte bidireksional qe dmth qe te dhenat levizin ne te dy drejtimet.
11. Mekanizmat per komunikim te proceseve perdoren ne menyre qe te mundesohet komunikimi
midis dy ose me teper proceseve ne kryerjen e nje taske te caktuar me crast ato duhet te ndajne te
dhenat e perbashketa (share). IPC jane: pipes, named pipes (FIFO), message queues, shared
memory, sockets dhe semaphores (komunikim dhe sinkronizim)
12. Mekanizmat per sinkronizim: Sinkronizimi qofte eksplicit apo implicit eshte nje norme ose
protokoll i cili percakton se si te behet shkembimi i infomacionit ne mes te proceseve
komunikuese.-Barriers, -Mutex,-Semaphores,-Spinlock (si busy waiting),-Condition variables, -
File locks. Call by value ndodh kur funksioni yne pranon parametra lokal te cileve nuk
mund te ju nderroj vleren. Kurse Call by reference ndodh kur funksioni yne pranon
parametra te cileve ju nderron vleren..psh parametra ka pointeret.

You might also like