Presentation is loading. Please wait.

Presentation is loading. Please wait.

Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat,

Similar presentations


Presentation on theme: "Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat,"— Presentation transcript:

1 Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat, CPU virtual) Procesi permban programin,input,output dhe nje gjendje Ne sist. Real-time, ngjarje te vecanta duhet te ndodhin brenda nje milisekonde,matje speciale meren me pas per te korrektuar Nje procesor mund te sharohet midis shume proceseve, me disa algoritma skedulimi qe percaktojne ku ndalon nje proces dhe kur te kaloj te tjetri

2 Ekzekutimi I proceseve me nje program counter real dhe me 4 program counter logjik
Vetem nje program ekzekutohet ne nje cast (multiprogramimi I 4 programeve)

3 Krijimi I proceseve 4 arsyet qe mund te lindi nje proces:
Inicializimi I sistemit Ekzekutimi i nje thirrje sistem per krijimin e nje procesi duke ekzekutuar nje proces Krijimi I nje procesi nga useri Inicimi I nje grumbulli pune (batch job) Proceset jane foreground dhe background(daemon)—ps dhe ctrl-alt-del

4 Llojet e proceseve ne ekzekutim
Proceset mund te ekzekutohen ne tre menyra: Procese qe ekzekutohen ne user space Kernel space(proceset sistem) Batch proces->batch sistem(mainframe)

5 Perfundimi I procesit Dalje normale (vullnetare)
Dalje nga 1 gabim (vullnetare) Dalje nga nje error fatal (jo vullnetare) Vrasja nga nje proces tjeter (jo vullnetare) Kompilatori sinjalizon SO me ane te nje thirrje sistem exit(Unix) dhe ExitProcess (Windows)

6 Gjendja e proceseve Proceset ne Unix kane hierarki, windows jo(megjithate procesi prind jep procesit femi nje shenje[handle],qe mund ta perdor per ta kontrolluar,por ai mund ta kaloje kete te disa procese te tjere 1.Ekzekutim(punon CPU-ja) 2.Gati(perkohesisht I ndaluar per te lejuar nje proces tjeter te punoje) Bllokuar(I pamundur deri ne ndodhjen e disa ngjarjeve te jashtme)

7 Skeduleri Skeduleri->shtresa me e ulet e SO(perfshin interruptet, skedulerin).Mbi kete shtrese jane proceset sekuenciale

8 Implementimi I proceseve
Hapat kur nje interrupt ndodh ne nivelin me te ulet te SO

9 Thread Tre procese me nga nje thread secili dhe nje proces me tre threade Cdo proces perbehet nga hapsira e adresave dhe nga thread kontrolli(grupi I burimve dhe ekzekutimi) Procesi perdoret per te grupuar se bashku burimet, kurse threaded jane elemente qe vendosen ne radhe per t`u ekzekutuar ne CPU Pavaresia e threadeve ne nje proces nuk eshte si pavaresia e proceseve te ndryshem ndaj njeri tjetrit Nuk ka mbrojtje midis threadeve:e pamundur dhe e panevojshme

10 Zonat e thread dhe procesit
Elementet e sharuara te gjithe threadeve ne nje proces, elementet privat te threadit. Threadet mund te jene:ekzekutim,bllokuar,gati,perfundim.

11 Stacku I thread-it Procedura librari: thread_create(emri I procedures per threadin e ri qe do te ekzekutohet) ka hapsiren e adresave te njente me prindin Ka dhe ska hierarki—thread_exit,thread_ wait, thread_yield(brenda procesit nuk ka interrupt--timesharing

12 Perdorimi I threadid Arsyeja e perdorimit te threadid eshte qe ne disa aplikime shume aktivitete ekzekutohen ne te njejten kohe->paralelizmi(sharimi I datave dhe adresave brenda nje procesi) Jane me te lehte per tu krijuar dhe zhdukur(100 here me te shpejte se procesi) sepse ato s`jane te lidhura(dedikuara)me ndonje burim Rritet performanca(ne I/O,aktivitet perllogaritese),nuk rritet kur ato jane te lidhur direkt me CPU-ne Jane shume te dobishem ne sistemet me multiprocesore

13 Implementimi I thread-eve
Behet ne tre menyra: 1.User Space, Kernel Space, Hibrid Space 1-kernel nuk dine asgje per paketat thread Avantazhet ne user space:paketat ne user space mund te implementohen dhe ne SO qe nuk suportojne threade Threaded ekzekutojne nje procedure sistemi run-time Te mirat e perdorimit te threadeve ne nivelin user space 1.Nese te gjithe threaded do te komutoheshin brenda user space do te ishte nje shpejtesi me e madhe se nje trap ne kernel 2.Ne nivelin user threaded lejojne qe cdo proces te kete algoritmin e skedulimit te vetin per cdo proces 3.Shkallezimi eshte me I lehte se ne nivelin kernel(kerkon me shume hapsire tabele dhe staku) Te metat:a.Problem ne implementimin e thirrjeve sistem bllokuese, ndryshime ne semantiken e komandes read do te kerkoje ndryshime te disa programe user,ose te tregohet ne avance qe nje thirrje mund te bllokoje---select. b.Page foult,c.mosdhenia vullnetare e CPU-se—te kerkohet nje sinjal interrupt brenda sistemit run time 2-threadi kur krijon ose fshin nje thread tjeter ben nje thirrje kernel 3-bashkepunim I dy implementimeve-ketu cdo thread ne nivel kernel ka nje bashkesi threadesh ne nivelin user qe mund ti perdore

14 Implementimet, shembulli

15 Aktivizimi I skedulerit
Qellimi eshte imitimi I funks. thread kernel me performance > me threade ne U Space —shmangia e tranzicionit nga U ne K space Kernel percakton nje CPU virtuale(ose me shume) per cdo proces—upcall Interrupt hardware ne thread user->CPU kmuton nag user ne kernel Principi I hierarkise nuk preket sepse shtresa n nuk therret nje procedure ne thirrjen n+1, por n ofron sherbime ne ate shtrese qe mund te therrese sherbime

16 Threadet Pop-Up(1) Pop-up threadet kane si qellim zvoglimin e latences midis dy proceseve(ardhjes se sms dhe perdorimit tij)—Keto nuk kane rregjistra,stack etj—ekzekutohen ne user dhe ne kernel space

17 Multithreaded(1) 1 proces->1 thread disa procedura (varibla lokal dhe global—errno) Konflikt midis threadeve nga perdorimi I nje variabli global

18 Multithread(2) Threaded kane variablat e tyre privat global Ishte:
1variabel lokal dukej vetem brenda nje procedure dhe 1 variable global dukej nga shume threade brenda 1 programi Eshte: Variablat jane te dukshem ne te gjitha procedurat e nje threadi, por jo jashte tij Hapat e nje variabli global:create_global(“bufptr”);set_global(“bufptr”,&buf);dhe bufptr=read_global(“bufptr”); Problemet: 1.Rishkrimi I gjithe librarise(malloc—linked list [tabela kritike—perdorin pointera invalid qe e cojne sist. ne crash]), 2.jacket(vendos nje bit ne proceduren librari ne ekzekutim),3.menaxhimi I stakut multithread ne nje sist. jo te tille,4.menaxhimi I sinjaleve eshte I veshtire si ne single ashtu dhe ne multithread, sidomos kur threaded ndodhen ne user space,sepse kernel nuk ka njohuri per threadin ne ate nivel.

19 Komunikimi nderprocesorial
Kushtet e shpejtesise Zona kritike Mutual exclusion me busy waiting C`aktivizimin e interrupteve,Variablat e mbyllur,Alternativat korrekte,Zgjidhjen e Petersonit,Instruksionin TSL Gjumi dhe zgjimin Problemi produkt-konsum Semaforet Zgjidhja e problemit me semaforet Mutekset Monitoret Kalimi I mesazheve Projektimi I rasteve per MPS,Problemi me MP Pengesat

20 Kushtet e shpejtesise dhe zonat kritike
Kur dy ose me shume procese simultane lexojne ose shkruajne disa data shared dhe rezultati final varet nga shpejtesia quhet kushtet e shpejtesise Pjesa e programit ku kerkohet aksesimi I nje zone sharuar quhet zona kritike 4 supozime: 1.Dy procese nuk mund te jene ne te njejten kohe ne nje zone kritike 2.Nuk mund te behet asnje supozim ne lidhje me ndikimin e shpejtesise apo nr e procesoreve te perdorur ne zonen kritike 3.Nuk mund te kete asnje proces jashte zones kritike qe te bllokoje proceset tjera 4Asnje proces nuk mund te pres pambarim te futet ne zonen kritike

21 Mutual exclusion me busy waiting(1)
C`aktivizimi I interrupteve Me kycje variablash Alternativa korrekte Zgjidhjen e Petersonit Instruksionet TSL(Test and set lock)

22 Mutual exclusion me busy waiting(2)
Te metat e c`aktivizimit te interrupteve jane mundesia e proceseve user te aktivizojne interruptet dhe jane te pavlefshme ne nje sistem me shume procesor->brenda sist operativ kjo metode eshte e vlefshme por jo ne proceset user(Zgjidhje Hardware) Nje zgjedhje software eshte kycja e variablave(varablat e sharuar).lock=0 ose 1(I lire/I zene)->kontroll I pare, kontroll para hyrjes per te eleminuar race me nje proces tjeter qe ka rradhen ne skeduler

23 Mutual exclusion me busy waiting(3)
Alternativa strikte turn -> ; Variablat lock qe punojne me busy waiting quhet spin lock--- Gjuha C nuk ka garbage Collection Zjgidhja e Petersonit eshte me dy thirrje procedure: enter_region dhe leave_region Instruksioni TSL(ndihme hardware – CPU kur ekzekuton kete instruksion kyc memory bus per te parandaluar CPU-te e tjera per te aksesuar memorjen, enter_region dhe leave_region ne te njejten kohe

24 Komunikimet nderprocesoriale vazhdim(1)
Sleep dhe wakeup(1 parameter,1 adrese memorje qe perdoret per te kombinuar sllep dhe wake up.--- problemi I prioritetit te kundert Semaforet(jane variabla qe tregojne nr e wake-up) down dhe up->kryejne veprim atomik te pandashem Mutex eshte nje variabel qe mund te jete ne nje nga dy gjendjet(lock dhe unlock)– mutex lock->kerkon nje zone kritike dhe mutex unlock per te gjithe proceset e tjere

25 Komunikimet nderprocesoriale vazhdim(2)
Monitor eshte nje bashkesi procedurash, variablash dhe strukturash data qe jane grupuar se bashku ne nje lloj special moduli—primitive me nje sinkronizim te larte. Monitoret jane konstrukte ne gjuhe programimi,ato jane te vecanta dhe te dallueshme nga kompilatori(1 proces mund te jete aktiv ne nje cast te kohes brenda tij) Kalimi mesazheve(jane thirrje sistem, jo si monitori) send dhe receive.—Authentikimi eshte I rendesishem ne MPS. Thirrje konfirmuese nga pritesi brenda nje t. Pengesat jane nje sjellje ku nese nje proces arrin barrieren, ai bllokohet deri sa te gjithe proceset te arrijne barrieren(ky eshte nje mekanizem sinkronizimi) Ne rastin e trete te gjithe proceset kane arritur ne barriere

26 Problemet ne IPC Problemi I darkes se filozofeve---Starvatation(cdo program vazhdon pambarim pa bere progres) Problemi I lexuesve dhe shkruesve Problemi I berberit gjumash

27 Problemi Darka e Filozofeve
Problemi I pazgjidhur I darkes se filozofeve

28 Skedulimi Skedulimi Round Robin Skedulimi me Prioritet
Skedulimi Multiple Queue Skedulimi Lottery (Video Stream)


Download ppt "Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat,"

Similar presentations


Ads by Google