210 likes | 658 Views
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 )
E N D
Sinkronizimiiproceseve Sistemeshfrytezimi Leksion5 Iralda Mitro
Situata per studim • Proceset • bashkeveprojne • perdorintenjejtenhapesirekujtese • perdorintenjejtattedhena (me aneteskedareve) • Aksesiinjekohshemitedhenaveteperbashketadhemodifikimiityre, mundtecojne ne parregullsitetedhenave. Iralda Mitro
Situata per studim • Mirembajtja e konsistences se tedhenavekerkonmekanizma per tesiguruarekzekutimin e rregulltteprocesevebashkevepruese • Procesetbashkeveprueseikemiilustruar me shembullinProdhues-Konsumator Iralda Mitro
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
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
Konsumatori while (1) { while (count == 0) ; // do nothing nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count--; /* consume the item in nextConsumed } Iralda Mitro
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
Seksionikritik • Cdoprocesduhettekerkojeleje per tehyre ne seksionin e vet kritik • Pjesa e koditqeimplementonketekerkesequhetseksionihyres • Pas seksionithyresvjenseksionikritik, dhe pas tijvjenseksioniidaljes • Pjesa e mbeturquhetseksioniimbetur Iralda Mitro
Seksionikritik Iralda Mitro
Zgjidhja e problemitteseksionitkritik Duhetteplotesohen 3 kushte: • Perjashtimireciprok • NqsprocesiPipoekzekutohet ne seksionin e vet kritik, atehereasnjeprocestjeternukmundteekzekutohet ne seksionin e vet kritik Iralda Mitro
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
Zgjidhja e problemitteseksionitkritik 3. Pritja e fundme • Duhetteekzistojenjenumerifundemhereshqeprocesetlejohentehyjne ne seksionin e tyrekritik, qengamomentiqenjeproces Pi ka berenjekerkese per tehyre ne seksioninkritik, dhenukieshtedheneakomaleja. Iralda Mitro
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
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
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
Zgjidhja Peterson e permbledhur Iralda Mitro
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
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
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
Instruksioni Swap void Swap(boolean*a, boolean*b) { booleantemp = *a; *a = *b; *b = temp: } Iralda Mitro