1 / 20

Sinkronizimi i proceseve

Sinkronizimi i proceseve. Sisteme shfrytezimi Leksion 5. Situata per studim. Proceset bashkeveprojne perdorin te njejten hapesire kujtese perdorin te njejtat te dhena (me ane te skedareve )

dino
Download Presentation

Sinkronizimi i proceseve

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sinkronizimiiproceseve Sistemeshfrytezimi Leksion5 Iralda Mitro

  2. Situata per studim • Proceset • bashkeveprojne • perdorintenjejtenhapesirekujtese • perdorintenjejtattedhena (me aneteskedareve) • Aksesiinjekohshemitedhenaveteperbashketadhemodifikimiityre, mundtecojne ne parregullsitetedhenave. Iralda Mitro

  3. Situata per studim • Mirembajtja e konsistences se tedhenavekerkonmekanizma per tesiguruarekzekutimin e rregulltteprocesevebashkevepruese • Procesetbashkeveprueseikemiilustruar me shembullinProdhues-Konsumator Iralda Mitro

  4. Zgjidhja • Per terregulluarproblemin e ketijshembulliofrohetkjozgjidhje: • Mbajmenjenumer integer count, qepercaktonnumrin e buffers qejane plot. • Ne fillim: count = 0 • Inkrementohetngaprodhuesikurprodhonnje buffer teri • Dekrementohetngakonsumatoripasikykonsumonnje buffer • Count duhettemanipulohetvetemnganjeproces ne nje moment tecaktuar, jongatedynjeheresh Iralda Mitro

  5. Prodhuesi while (true) { /*produce an item and put in nextProduced while (count == BUFFER_SIZE) ; // do nothing buffer [in] = nextProduced; in = (in + 1) % BUFFER_SIZE; count++; } Iralda Mitro

  6. Konsumatori while (1) { while (count == 0) ; // do nothing nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count--; /* consume the item in nextConsumed } Iralda Mitro

  7. Seksionikritik • Marrim ne konsideratenjesistem me n-procese (P0, P1, …, Pn) • Cdoproces ka njepjesezkoditequajturseksionkritik, ne tecilinprocesimodifikonvariablat e perbashket me proceset e tjere • Neqoftesenjeriprejprocesevegjendet ne seksionin e vet kritik, asnjeprocestjeternukmundtendodhet ne tenjejtenkohe ne seksionin e vet kritik Iralda Mitro

  8. Seksionikritik • Cdoprocesduhettekerkojeleje per tehyre ne seksionin e vet kritik • Pjesa e koditqeimplementonketekerkesequhetseksionihyres • Pas seksionithyresvjenseksionikritik, dhe pas tijvjenseksioniidaljes • Pjesa e mbeturquhetseksioniimbetur Iralda Mitro

  9. Seksionikritik Iralda Mitro

  10. Zgjidhja e problemitteseksionitkritik Duhetteplotesohen 3 kushte: • Perjashtimireciprok • NqsprocesiPipoekzekutohet ne seksionin e vet kritik, atehereasnjeprocestjeternukmundteekzekutohet ne seksionin e vet kritik Iralda Mitro

  11. Zgjidhja e problemitteseksionitkritik 2. Progresi • Nqsnuk ka procese ne ekzekutimqejane ne seksionin e vet kritik, dheekzistojneproceseqeduantefuten ne seksioninkritik, ateherezgjedhja e procesitqe do tehyje ne seksioninkritiknukmundteshtyhetpergjithmone Iralda Mitro

  12. Zgjidhja e problemitteseksionitkritik 3. Pritja e fundme • Duhetteekzistojenjenumerifundemhereshqeprocesetlejohentehyjne ne seksionin e tyrekritik, qengamomentiqenjeproces Pi ka berenjekerkese per tehyre ne seksioninkritik, dhenukieshtedheneakomaleja. Iralda Mitro

  13. Zgjidhja Peterson • Zgjidhje per 2 procese • Instruksionet LOAD dhe STORE janeatomike; pranukmundtenderpriten • Procesetndajne 2 variabla: • int turn; • Boolean flag[2] • turnpercakton se kush e ka rradhen per tehyre ne seksioninkritik • flagarray perdoret per tepercaktuarnesenjeproceseshtegati per tehyre ne seksionkritik • flag[i] = true do tethoteqePieshtegati! Iralda Mitro

  14. Algoritmi per ProcesinPi do { flag[i] = TRUE; turn = j; while ( flag[j] && turn == j); CRITICAL SECTION flag[i] = FALSE; REMAINDER SECTION } while (TRUE); Iralda Mitro

  15. Kushtet per zgjidhjen Peterson • Perjashtimireciprok • Plotesohetsepsevlera e turn nukmundteketenjekohesishtedhevlereniedhe j. • Progresi • Te paktennjerihyn ne seksionkritik, oseiose j • Pritja e pafundme • Sic shikohetkeminjepritjetealternuar, sepsepasi Pi del ngaseksionikritik, flag[i]=false dhelejonPjtehyje ne seksionkritik. Iralda Mitro

  16. Zgjidhja Peterson e permbledhur Iralda Mitro

  17. Sinkronizimii Hardware • HW ka disacilesiqe e bejneprogramin me tethjeshte • Ekzistojnedisainstruksione HW teciletperdoren per tezgjidhurproblemin e seksionitkritik • Kypoblemzgjidhetshumethjeshtnesesistemieshte me njeprocesortevetem • Mjaftonqetemoslejohettendodhenje interrupt ne momentinqepondryshohendisavariablateperbashket • Keshtusigurohemiqevariablat e perbashketmostendryshohen ne menyretepaparashikueshme Iralda Mitro

  18. Sinkronizimii Hardware • Kjomenyrenukeshte e pershtatshme per sisteme me shumeprocesore • Mesazhiduhettekaloje ne cdoprocesor => • Caktivizimiiinterrupteve do teshkaktontevonesa => • Dergimi I mesazhevevononhyrjen ne seksioninkritik => • Renie e efikasitetittesistemit Iralda Mitro

  19. Sinkronizimii Hardware • Disamakinakanenjeinstruksion special HW qetestondhemodifikonvleren e njevariabli, oseshkembenvlerat midis 2 fjaleve • Ketoinstruksioneekzekutohen ne menyreatomike booleanTestAndSet (boolean *target) { booleanrv = *target; *target = TRUE; return rv: } Iralda Mitro

  20. Instruksioni Swap void Swap(boolean*a, boolean*b) { booleantemp = *a; *a = *b; *b = temp: } Iralda Mitro

More Related