Dallimi midis semaforit dhe monitorit

Dallimi midis semaforit dhe monitorit
Dallimi midis semaforit dhe monitorit

Video: Dallimi midis semaforit dhe monitorit

Video: Dallimi midis semaforit dhe monitorit
Video: SHENJAT E RREZIKUT - (Ngjyre te Kuqe) 2024, Korrik
Anonim

Semaphore vs Monitor

Semaphore është një strukturë të dhënash që përdoret për t'u siguruar që procese të shumta të mos kenë akses në një burim të përbashkët ose në një seksion kritik në të njëjtën kohë, në mjedise programimi paralel. Semaforët përdoren për të shmangur bllokimet e vdekura dhe kushtet e garës. Monitori është një konstrukt i gjuhës programuese që përdoret gjithashtu për të shmangur aksesin e proceseve të shumta në një burim të përbashkët në të njëjtën kohë, prandaj garanton përjashtimin reciprok. Monitorët përdorin variabla të kushtëzuar për të arritur këtë detyrë.

Çfarë është një semafor?

Semaphore është një strukturë të dhënash që përdoret për të siguruar përjashtimin reciprok të seksioneve kritike. Semaforët mbështesin kryesisht dy operacione të quajtura pritje (historikisht e njohur si P) dhe sinjal (historikisht i njohur si V). Operacioni i pritjes bllokon një proces derisa semafori të jetë i hapur dhe operacioni i sinjalit lejon një proces tjetër (thread) të hyjë. Çdo semafor shoqërohet me një radhë procesesh pritjeje. Kur operacioni i pritjes thirret nga një thread, nëse semafori është i hapur, filli mund të vazhdojë. Nëse semafori mbyllet kur operacioni i pritjes thirret nga një thread, thread-i bllokohet dhe duhet të presë në radhë. Operacioni i sinjalit hap një semafor dhe nëse ka një thread tashmë që pret në radhë, ai proces lejohet të vazhdojë dhe nëse nuk ka fije që presin në radhë, sinjali mbahet mend për thread-ët e ardhshëm. Ekzistojnë dy lloje semaforësh të quajtur semaforë mutex dhe semaforë numërues. Semaforët Mutex lejojnë një akses të vetëm në një burim dhe semaforët e numërimit lejojnë temat e shumta të aksesojnë një burim (i cili ka disa njësi në dispozicion).

Çfarë është një monitor?

Një monitor është një konstrukt i gjuhës programuese që përdoret për të kontrolluar aksesin në të dhënat e përbashkëta. Monitorët përmbledhin strukturat e përbashkëta të të dhënave, procedurat (që funksionojnë në strukturat e përbashkëta të të dhënave) dhe sinkronizimin ndërmjet thirrjeve të procedurave të njëkohshme. Një monitor sigurohet që të dhënat e tij të mos përballen me aksese të pastrukturuara dhe garanton që hapat (të cilët aksesojnë të dhënat e monitorit përmes procedurave të tij) ndërveprojnë në një mënyrë legjitime. Një monitor garanton përjashtimin reciprok duke lejuar vetëm një thread të ekzekutojë çdo procedurë monitorimi në një kohë të caktuar. Nëse një thread tjetër përpiqet të thërrasë një metodë në monitor, ndërsa një thread tashmë po ekzekuton një procedurë në monitor, atëherë procedura e dytë bllokohet dhe duhet të presë në radhë. Ekzistojnë dy lloje të monitorëve të quajtur monitorët Hoare dhe monitorët Mesa. Ato kryesisht ndryshojnë në semantikën e tyre të planifikimit.

Cili është ndryshimi midis Semaforit dhe Monitorit?

Edhe pse të dy semaforët dhe monitorët përdoren për të arritur përjashtimin e ndërsjellë në mjediset e programimit paralel, ato ndryshojnë në teknikat e përdorura për të arritur këtë detyrë. Tek monitorët, kodi që përdoret për të arritur përjashtimin e ndërsjellë është në një vend të vetëm dhe është më i strukturuar, ndërsa kodi për semaforët shpërndahet si thirrje të funksionit të pritjes dhe sinjalit. Gjithashtu, është shumë e lehtë të gabosh gjatë implementimit të semaforëve, ndërkohë që ka shumë pak mundësi të gabosh gjatë implementimit të monitorëve. Më tej, monitorët përdorin variabla të gjendjes, ndërsa semaforët jo.

Recommended: