Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 92

Protočnost

TEHNIČKA ŠKOLA
RUĐERA BOŠKOVIĆA ZAGREB
MILAN KORAĆ, dipl.ing., prof.savjetnik
Protočnost (engl. pipelining)

 Definiramo kao poseban oblik paralelizma


 Istodobno izvođenje više operacija koji se dobiva
rastavljanjem nekog složenijeg zadatka na manje
zadatke (podzadatke)
 Podzadaci jedan drugoga slijede određenim redom i
koji se izvršavaju u dodijeljenim samostalnim
jedinicama

2
Samostalne jedinice

 Samostalne jedinice, koje se nazivaju protočni


segmenti, istodobno su aktivne tako da se
izvršavanje podzadataka prekriva u vremenu
 Niz međusobno povezanih protočnih segmenata, pri
čemu je izlaz prethodnog ulaz u sljedeći protočni
segment, oblikuje protočnu strukturu

3
Pravila pri rastavljanju zadatka
na podzadatke
 Konačan rezultat izvođenja slijeda podzadataka u
protočnoj strukturi mora biti jednak rezultatu
izvođenja cjelovitog zadatka
 Ulazi u protočni segment i su izlazi iz prethodnog
protočnog segmenta i - 1
 Osim izmjene ulaznih i izlaznih podataka ne
zahtijeva se drugi način međudjelovanja protočnih
segmenata
 Vrijeme potrebno pojedinim protočnim segmentima
za izvođenje podzadatka treba biti za sve protočne
segmente približno jednako
4
Protočne strukture u računarskom sustavu

 Postupak rastavljanja zadataka može provesti na


različitim razinama organizacije računarskog
sustava
 Procesor Pentium II koristi protočnu izvedbu
memorijske sabirnice koja dopušta do osam
istodobnih sabirničkih prijenosa, odnosno
sabirničkih transakcija
 Zadatak sabirničke transakcije ostvaruje se sa šest
protočnih segmenata

5
Protočna izvedba priručne memorije

 Sastoji se od četiri protočna segmenta


 adresna translacija
 dekodiranje retka i čitanje

 dekodiranje stupca i izbor

 usporedba značke i utvrđivanje valjanosti

6
Protočnost upravljačke jedinice

 Protočnost je naročito važna u izvedbi upravljačke


jedinice
 Broj identičnih zadataka koji se izvode vrlo, vrlo
velik
 Zadatak izvođenja instrukcije može se rastaviti na
veći broj podzadataka
 Podzadaci slijede u nizu i pogodni su za
izvođenje u sklopovsko ostvarenim protočnim
segmentima

7
Instrukcijska protočna struktura

 Rastavljanjem osnovne funkcije upravljačke jedinice –


izvođenje instrukcija – dobivamo instrukcijsku
protočnu strukturu

 Protočni segmenti potpuno su samostalni – moguće


preklapanje

8
Protočnost

 Protočnost (u kontekstu izvođenja instrukcija) -


tehnika koja iskorištava paralelizam između
instrukcija u slijednom instrukcijskom toku
 Aktivnosti u protočnoj strukturi možemo prikazati
Ganttovim dijagramom

9
Podrobniji dijagram stanja
instrukcijskog ciklusa

 Da bi se postigao faktor ubrzanja obrade veći od 2,


potrebno je povećati broj protočnih segmenata u
instrukcijskoj protočnoj strukturi
 Broj protočnih segmenata i njihove funkcije - na
temelju podrobnijeg dijagrama stanja instrukcijskog
ciklusa
 Dijagram stanja instrukcijskog ciklusa sastoji se od dva
stanja PRIBAVI i IZVRŠI
 Možemo ga rastaviti na veći broj stanja koja odgovaraju
slijedu aktivnosti tijekom instrukcijskog ciklusa
10
Podrobniji dijagram stanja
instrukcijskog ciklusa

 podrobniji dijagram stanja instrukcijskog ciklusa koji će


nam poslužiti za određivanje broja i funkcija protočnih
segmenata
11
Višestruko ponavljaje stanja

1. Računanje adrese operanda


2. Dohvat operanda
3. Izvođenje operacije na operandima
4. Računanje adrese rezultata
5. Pohranjivanje rezultata

12
Slijed sastavljen od podzadataka

1. Pribavljanje instrukcije
2. Dekodiranje instrukcije
3. Izvršavanje instrukcije, tj. izvođenje operacije
na operandima te
4. Upis rezultata
Ovaj slijed bi oblikovao instrukcijsku protočnu
strukturu sastavljenu od četiri protočna
segmenta
13
Višestruko ponavljaje stanja

Na način grupiranja stanja u dijagramu


stanja instrukcijskog ciklusa i
Na broj protočnih segmenata

utječe i to temelji li se procesor na:


 RISC ili
 CISC konceptima

14
Instrukcijska protočna struktura
za RISC procesore

 Značajke pojednostavnjuju izvedbu instrukcijske


protočne strukture i izravno djeluju na povećanje
performanse procesora
 Protočna struktura sastoji se od sljedećih
protočnih segmenata:
1. Pribavljanje instrukcije (IF)
2. Dekodiranje instrukcije i dohvat operanada (ID-OF)
3. Izvršavanje instrukcije (EX)
4. Pristup memoriji (ME) i
5. Upis rezultata ili podatka dohvaćenog iz memorije
(WB)
15
Simbolički prikaz instrukcijske
protočne strukture RISC procesora

 Da bi se djelotvorno iskoristila protočna izvedba,


potrebne su određene preinake u arhitekturi RISC
procesora
16
Instrukcijska protočna struktura
za RISC procesore

 “Glatki” jednolični protok slijeda instrukcija kroz 5-


segmentnu instrukcijsku protočnu strukturu

17
Ostvarivanje cilja: jedna instrukcija u
jednoj periodi signala vremenskog vođenja

 Započinjanje izvođenja nove instrukcije u svakoj


periodi signala vremenskog vođenja
 Generiranje rezultata u svakoj periodi signala
vremenskog vođenja
 Postiže se prividno izvođenje instrukcije u jednoj
periodi signala vremenskog vođenja

18
Ostvarivanje cilja: jedna instrukcija u
jednoj periodi signala vremenskog vođenja

 Posebni napori trebaju se uložiti u oblikovanje


memorijske jedinice
 Svojom brzinom mora podržavati brzinu protočne
strukture
 protočna izvedba memorije

 protočna izvedba priručne memorije

 Ako se to ne postigne, onda se vrijeme obrade


uvjetuje upravo brzinom najsporije komponente u
izvršavanju instrukcija – memorije
19
Instrukcijska protočna
struktura za CISC procesore

 Procesori CISC arhitekture imaju u svom raskošnom


skupu instrukcija one koje variraju po razini složenosti:
 od vrlo jednostavnih koje se izvode za samo nekoliko
perioda signala
 do onih koje zahtijevaju nekoliko desetaka pa i stotinu
perioda signala vremenskog vođenja
 Raznolikost u složenosti instrukcija u skupu instrukcija
CISC procesora negativno se odražava na propusnost
instrukcijske protočne strukture

20
Instrukcijska protočna
struktura za CISC procesore

 Izvođenje slijeda instrukcija u neprotočnoj izvedbi

 Izvođenje slijeda instrukcija i1, i2, i3, i4 u protočnoj


strukturi

21
Instrukcijska protočna
struktura za CISC procesore
 Negativni utjecaj različitih razina složenosti pojedinih
instrukcija
 Pojavljuje se dodatno kašnjenje u njihovom izvođenju
 Vrijeme potrebno za izvođenje slijeda instrukcija i1, i2,
i3, i4 u protočnoj strukturi iznosi 36 perioda signala
vremenskog vođenja
 Faktor ubrzanja obrade u odnosu na neprotočnu
strukturu je 64/36 = 1.77, što je vrlo daleko od
teorijskog ubrzanja koje bi trebalo biti jednako broju
protočnih segmenata, tj. 5.

22
Hazardi u instrukcijskoj protočnoj
strukturi

 Istodobno izvođenje više instrukcija u protočnoj


strukturi može dovesti do :
 situacije u kojima se ne može izvesti sljedeća
instrukcija u slijedu instrukcija
 Takvi događaji nazivaju se hazardi
 Postoje tri vrste hazarda:
 strukturni hazard
 podatkovni hazard (engl. data hazard)
 upravljački hazard (engl. control hazard)

23
Superskalarni procesori

Označava posebnu vrstu procesora koji se


koriste tzv. skalarnim tipovima podataka
– podacima jednostavne strukture kao što su,
na primjer, cjelobrojni (integer) ili brojevi s
pomičnim zarezom (floating-point)
Postoje i strukturni tipovi podataka kao
što su vektori, dvo- i višedimenzionalna polja
podataka, nizovi i skupovi

24
Osnovna značajka superskalarnih
procesora
 Prosječan broj perioda po instrukciji (CPI) manji od jedan
 To znači da se tijekom jedne periode signala vremenskog
vođenja izdaje i izvršava veći broj instrukcija
 Superskalarni procesor iskorištava implicitni paralelizam
koji je sadržan u slijedno napisanim programima
 Slijed instrukcija koje bi se trebale izvršavati sekvencijalno
 Superskalarnost zahtijeva od procesora da detektira i iskoristi
skriveni paralelizam na razini instrukcija u programima
 Superskalarni procesor mora imati veći broj izvršnih
jedinica od kojih je svaka izvedena kao protočna
 Ima veći broj nezavisnih instrukcijskih protočnih struktura

25
Načelna organizacija superskalarnog
procesora

 sastoji se od:
 jednog zajedničkog protočnog segmenta zaduženog za
istodobno pribavljanje tri instrukcije (jedinice za
pribavljanje instrukcija) i
 tri nezavisne instrukcijske protočne strukture

26
Izvođenje slijeda instrukcija u
superskalarnom procesoru

 istodobno u svakoj
periodi signala
vremenskog vođenja
iz tri nezavisne
protočne strukture
“izlaze” rezultati
triju instrukcija

27
Načelna organizacija superskalarnog RISC
procesora

28
Izvršne jedinice po skupini

 PCU (engl. Program control unit) - upravljačka


jedinica koja se sastoji od:
 Protočnog segmenta IF i ID
 Instrukcijskog spremnika
 PCU istodobno otprema veći broj (q>1) instrukcija u
različite jedinice:
 Load/store jedinica – zadužena za izvršavanje load i store
instrukcija
 Dvije nazavisne jedinice za cjelobrojne operacije (engl. integer
unit)
 Jedinica za zbrajanje brojeva s pomičnim zarezom
 Jedinica za množenje brojeva s pomičnim zarezom
Faktor ubrzanja
 Teoretski, superskalarni procesor, koji npr. ima q protočnih
jedinica, pri čemu je svaka od njih n protočnih segmenata,
ima faktor ubrzanja obrade jednak q × n u odnosu na
procesor koji ne koristi paralelizam na razini instrukcija
 Superskalarni procesor
organizacije prikazane
na slici imao bi faktor
ubrzanja obrade jednak
q × n = 3 × 5 = 15

30
Primjer izvršavanja instrukcije
Ograničenja superskalarnih procesora

 Kažemo da postoji paralelizam na razini


instrukcija kada su instrukcije u slijedu nezavisne
i kada se mogu izvesti paralelno.

 Razina paralelizma određena je sljedećim


ograničenjima/hazardi:
 Stvarna zavisnost podataka (engl. True data dependency),
 Postupkovna zavisnost (engl. Procedural dependency),
 Resursni konflikti,
 Izlazna zavisnost (engl. Output dependency),
 Antizavisnost (engl. Antidependency).
Način izdavanja i završavanja instrukcija u
superskalarnoj arhitekturi procesora

 Performanse supersklarnih procesora ne ovisi samo o


broju nezavisnih protočnih struktura i
protočnih segmenata već i o tome je li processor
sposoban naći paralelizam na razini
instrukcija i u skladu s njim uspješno kordinirat
izvršavanje više instrukcija odjednom.

 Superskalarni procesor ima ugrađene mehanizme


kojima može “gledati unaprijed” (engl. Look
ahead) i otkriti intrukcije koje se mogu paralelno
izvoditi.
PCU (engl. Program control unit)

 odvaja protočni segment za dekodiranje od


protočnog segmenta za izvršavanje
 Instrukijski spremnik se konstantno puni
instrukcijama
 Instrukcijski spremnik se prazni ukoliko su ispunjena
dva uvjeta:
 Funkcijska jedinica koju zahtjeva instrukcija je slobodna,
 Nema resursnih konflikata niti međuzavisnosti podatka za tu
instrukciju.
Osnovna načela izdavanja i završavanja
instrukcija

 Tri su osnovna načela:


 Izdavanje i završavanje instrukcija u redosljedu u kojem se
pojavljuju i u programu (engl. In-order issue with in-order
completion)
 Izdavanje instrukcija u redosljedu, ali sa završavanjem izvan
redosljeda (engl. In-order issue with out-of-order completion)
 Izdavanje i završavanje instrukcija izvan redosljeda(engl. Out-
of-order issue with out-of-order completion)
Izdavanje instrukcija u redosljedu, ali sa
završavanjem izvan redosljeda

 Koristimo u skalarnim RISC i superskalarnim


procesorima

 Postižemo djelotvornije iskorištenje protočnih


segmenata u pojedinim protočnim strukturama.
Oblici i razine paralelizma
 U povijesti računarskih sustava možemo uočiti različite razine
paralelizma koje se pojavljuju u procesoru
 U početku - oblik paralelizma temeljio se na bitovnoj razini
(engl. bit- level)
 Očitovao se u povećanju duljine riječi procesora: od 4-
bitnih, 8-bitnih, 16-bitnih pa sve do 32- ili 64-bitnih procesora
 Zahtjevi koji su pratili razvoj arhitekture procesora i koji su
koristili paralelizam na razini bita bili su:
 povećanje izravno adresirljivog prostora (prije nego
izravno povećanje performanse procesora)
 poboljšani načini prikaza i rukovanja brojevima s
pomičnim zarezom

37
Oblici i razine paralelizma

Kada govorimo o paralelizmu, razlikujemo dva različita


konteksta:
raspoloživi paralelizam u programima i
iskorišteni paralelizam koji se pojavljuje
tijekom izvođenja programa

38
Raspoloživi paralelizam

Raspoloživi paralelizam sadržan je u biti


samog problema i njegovom programskom
rješenju
Može se govoriti o:
 raspoloživom funkcijskom paralelizmu i
 raspoloživom podatkovnom paralelizmu

39
Raspoloživi funkcijski paralelizam

Raspoloživi funkcijski paralelizam očituje se


u logičkom rješenju problema
Pojavljuje se u formalnim opisima rješenja
problema kao što su dijagrami toka,
grafovi toka podataka (engl. dataflow graph),
programi i sl.

40
Raspoloživi funkcijski paralelizam

Može se predočiti razinama koje se izražavaju


sa zrnatosti:
 Na razini instrukcija
 Na razini programskih petlji

 Na razini procedura, funkcija ili potprograma


 Na razini programa

41
Razlikujemo četiri razine
raspoloživog funkcijskog paralelizma:

paralelizam na razini instrukcija


paralelizam na razini programskih petlji
(engl. loop-level parallelism)
paralelizam na razini procedura, funkcija ili
potprograma
paralelizam na razini programa

42
Raspoloživi podatkovni paralelizam

 Raspoloživi podatkovni paralelizam izvire iz:


 same prirode podataka svojstvenih problemu
 iz struktura podataka koje se rabe u rješenju
problema te koje dopuštaju paralelne operacije na
njihovim elementima
 Podatkovni paralelizam svojstven je:
 digitalnoj obradi slike

 problemima u kojima se rukuje strukturama


podataka kao što su vektori i matrice

43
Paralelizam na razini instrukcija

Paralelizam na razini instrukcija (ILP-


Instruction Level Parallelism)
ILP jest mjera broja operacija koje računalo
(procesor) može izvesti paralelno, odnosno
istovremeno

44
Iskorišteni paralelizam

Iskorišteni paralelizam jest onaj koji se


pojavljuje tijekom izvođenja programa
Ima četiri razine:
 paralelizam na razini instrukcija

 paralelizam na razini dretvi (engl. thread)

 paralelizam na razini procesa


 paralelizam na korisničkoj razini

45
Iskorišteni paralelizam
Paralelizam na razini instrukcija isključivo se
koristi u arhitekturi procesora
Paralelizam na razini dretvi i procesa iskorištava
u arhitekturi, ali i u operacijskom sustavu
Paralelizam na korisničkoj razini koristi se na
razini operacijskog sustava:
 višezadaćni rad (engl. multitasking)
 višeprogramski rad (engl. multiprogramming)
 obrada dodjeljivanjem vremena (engl. time-sharing)

46
Podatkovni se paralelizam može
iskoristiti na dva načina
izravno uporabom arhitekture procesora koje
podržavaju paralelne operacije na
podatkovnim elementima (npr. procesori
SIMD arhitekture, procesori upravljani tokom
podataka (engl. data-flow))
pretvorbom raspoloživog podatkovnog
paralelizma u funkcijski tako da se uporabom
naredbi iz viših programskih jezika označe
paralelno izvodljive operacije na podatkovnim
elementima

47
Paralelizam na razini instrukcija
 Jednako značajan za RISC i CISC procesore
 Ova razina paralelizma podloga je za izvedbu
superskalarnih procesora
 Paralelizam na razini instrukcija je implicitni
paralelizam koji prevodilac ili sklopovlje procesora
mora detektirati u slijednom programu
- statički tijekom prevođenja programa ili
- dinamički tijekom izvođenja samog programa

48
Odnos udjela perioda signala perioda ovisno o
broju instrukcija koje se mogu izvesti paralelno
Paralelizam na razini instrukcija
Djelotvornije iskorištenje paralelizma na razini
instrukcija može se postići uporabom
eksplicitnog ili izravno izraženog paralelizma u
samoj specifikaciji instrukcije ili niza instrukcija
Ovaj pristup u arhitekturi računarskog sustava
poznat je pod nazivom VLIW (Very Long
Instruction Word) arhitektura ili EPIC
(Explicitly Parallel Instruction Computing)

50
VLIW arhitektura
(Very Long Instruction Word)

 Arhitektura procesora s vrlo dugim instrukcijskim


riječima (VLIW) temelji se na tri ustaljena koncepta:
 horizontalno mikroprogramiranje
 superskalarna obrada i
 višestrukost funkcijskih jedinica
 Osnovna značajka VLIW procesora je vrlo duga
instrukcijska riječ kojom se određuju višestruke
operacije koje se mogu istodobno izvesti
 Programer ili prevodilac (što je češći slučaj) izravno
specificiraju operacije koje se mogu izvesti istodobno

51
VLIW arhitektura

 Procesor ima višestruke funkcijske jedinice


koje dijele veliki zajednički skup registara
 Svaka funkcijska jedinica izvedena je kao
protočna jedinica
 Operacije koje se izvode istodobno u funkcijskim
jedinicama sinkronizirane su VLIW instrukcijama
koje su duljine npr. 256, 512 ili 1024 bita

52
Arhitektura VLIW procesora i format VLIW
instrukcije

53
Paralelizam na razini dretvi i procesa

 Dretva (engl. Thread) je logički procesor koji dijeli


jedan skup izvršnih resursa fizičkog procesora.

 Izvođenje programa možemo promatrati kao da


procesor povlači kroz program slijed instrukcija
(“nit”) ili instrukcjisku dretvu.

54
Računalni proces vs. Dretva

 Program = jedan ili više procesa.

 Proces = minimalno jedna instrukcijska dretva.

 Dretva = izvršljivi program/odsječak kojem su


dodjeljeni programsko brojilo, adresni prostor,
registri i varijable.

 U konačnici znači da svaki proces ima svoj virtualni


procesor.
Jednoprocesorki računani sustav

 Stvarni procesor mora se dijeliti između više procesa


prijenosom upravljanja s procesa na process (engl.
process switching).

 Samo se jedan proces izvodi u vremenu!


Višeprogramski način rada
Računalni proces

 Priduruženi vremenski atributi


 Trenutak početka izvođenja, zaustavljanja izvođenja, trenutak
završetka i trajanje izvođenja.

 Stanje procesa:
 Aktivno stanje procesa (engl. Running)
 Pripravno stanje procesa (engl. Ready)
 Blokirani process (engl. Blocked)
Dijagram stanja procesa
Računalni proces

 Operacijski sustav održava “tablicu procesa”:


 Infromacija za rukovanje procesom,
 Infromacija za rukovanje memorijom,
 Infromacija za rukovanje datotekama.

 Sva informacija koja se odnosi na određeni process


mora se pohraniti natrag u tablicu procesa i to
svaki put kada process iz aktivnog stanja prelazi u
stanje pripravnosti ili blokiranosti.
Višeprocesorski sustav

 Moguće svakom procesu dodjeliti procesor umjesto


virtualnog procesora. Moguće istodobno izvoditi
nezavisne procese.

 Današnji operacisjki sustavi podržavaju više dretvi u


jednom procesoru.
Tri procesa u računalnom sustavu
Jedan process s tri dretve
Dretva

 Prisutnost više dretvi u jednom procesoru zahtjeva


“tablicu dretve”:
 Identifikator dretve
 Pripradnost dretve određenom procesu
 Stanje dretve
 Prioritet dretve
 Sadržaj PC
 Sadržaj registara
 Adrese adresnog prostora
Višedretveni rad (engl. Multithreading)

 Potupno iskorištenje paralelizma na razini dretvi


postiže se u višeprocesorskom računalnom sustavu.

 Svaki procesor je zadužen za jednu od više


raspoloživih dretvi u procesu.

 Često se naziva i engl. Hyperthreading.


Paralelizam na korisničkoj razini

 Korišten u obliku višeprogramskog rada.

 Procesor se djelotvorno koristi tako da se oblikuju


pripravni procesi koji pripadaju različitim
korisničkim programima.
Višeprogramski rad

 Kada jedan od pripravnih procesa postane blokiran,


zato što čeka određen događaj, procesor se dodjeljuje
drugom pripravnom procesu.

 Višezadaćni rad (engl. Multitasking) -


istodobno aktivni procesi prpadaju istom korisniku,
štoviše vrlo često pripadaju i istom korisničkom
programu.
Višezadaćni rad (engl. Multitasking)

 Svakom se korisniku jamči odgovarajuće vrijeme


odgovora (engl. Response time)

 Svakom se od procesa neizmjenice dodjeljuje


procesorsko vrijeme i ostali računalni resursi.
Paralelne arhitekture

 Tri su kategorije koje se odnose na paralelne


računarske sustave:
 MISD (Multiple Instructions Stream Single Data Stream)
 SIMD (Singe Instructions Stream Multiple Data Stream)
 MIMD (Multiple Instructions Stream Multiple Data Stream)

 Do sada smo vidjeli paralelizam na razini instrukcija


koje koristimo u protočnim strukturama RISC i CISC
procesora koji se obično razvrstavaju u MISD
kategoriju.
Višeprocesorski SIMD sustavi

 Istodobno izvođenje iste instrukcije od strane


većeg broja procesora koji djeluju na različitim
višestrukim tokovima podataka.

 Iskorištavaju podatkovni paralelizam.


Organizacija višeprocesorskog SIMD
računarskog sustava
Višeprocesorski SIMD sustavi

 Središnja upravljačka jedinica pribavlja


instrukcije iz jedne programske memorije i odašilje ih
procesorima.

 Svi procesori istodobno i izvode istu instrukciju, ali


nad različitim podacima koji se dohvaćaju iz privatnih
memorija podataka.
Višeprocesorski SIMD sustavi

 Svi su procesori identični i preko prespojne mreže


međusobno izmjenjuju podatke.

 Takva arhitektura u nekoliko je posljednjih godina


dobila na značaju, posebno u multimedijskoj primjeni
(računalna grafika).
Vektorski procesori

 Najdjelotvorniji način iskorištavanja podatkovnog


paralelizma.

 Osnovna značajka vektorskog procesora je da rukuje


strukturiranim tipom podataka – vektorima.

 Vektori
 Jednodimenzionalna polja koja se satoje od istovrsnih
elemenata – skalarnog tipa podataka
 Svaki element jedinstveno određen pomoću indeksa
Vektorski procesori

 Danas vektorska obrada nije rezerviran samo za


superračunala, već se pojavljuje i u procesorima koji
se rabe u multimedijskim aplikacijama i procesorima
namijenjenim igraćim konzolama.
Višeprocesorski MIMD sustavi

 Obilježen višestrukim instrukcijskim tokom i


višestrukim tokom podataka.

 Svaki od procesora pribavalja i izvršava svoje vlastite


instrukcije na svojim podacima.

 Iskorištava paralelizam na razini procesa i dretvi.


Višeprocesorski MIMD sustavi

 Multiprocesorski se sustavi mogu klasificirati u


slijedeće skupine:
 UMA (engl. Uniform Memory Access)
 NUMA (engl. Nonuniform Memory Access)
 COMA (engl. Cache-Only Memory Aechitecture)
Sinkronizacija procesa i dretvi

 Paralelni procesori zahtjevaju međusobno


komuniciranje procesa ili dretvi.

 Primjer: tijekom izvođenja proces2 u nekom trenutku


treba podatke koji generira proces1.
Sinkronizacija procesa i dretvi

 Komunikacija između procesa temelji se na


osnovnom aksiomu da se ne mogu predvidjeti ili
pretpostaviti relativne brzine procesa.

 Što znači:
 oba procesa moraju biti sinkronizirana.

 Sinkronizacija je ostvarena satnim mehanizmom –


signalom vremenskog vođenja.
Sinkronizacija procesa i dretvi

 Komunikacija između procesa temelji se na


osnovnom aksiomu da se ne mogu predvidjeti ili
pretpostaviti relativne brzine procesa.

 Što znači:
 oba procesa moraju biti sinkronizirana.

 Sinkronizacija je ostvarena satnim mehanizmom –


signalom vremenskog vođenja.
Sinkronizacija procesa i dretvi

 Procesi se međusobno mogu natjecati ili konkurirati


 Primjerice dva procesa se međusobno mogu natjecati za
dobivanje nekog resursa
Sinkronizacija procesa i dretvi

 Razlikujemo dvije vrste sinkronizacije:


 Međusobno isključivanje (engl. Mutual exclusion)
 Uvjetovana sinkronizacija (engl. Condition synchronization)
Slučaj kada se dva procesa međusobno
natječu za neki resurs
Slučaj kada se dva procesa međusobno
natječu za neki resurs

 Oba procesa su konkurentna te ne možemo


pretpostaviti brzine njihovih izvršavanja, može se
dogoditi da se instrukcije dvaju programskih
odsječaka međusobno isprepliću što dovodi do
nepredvidljivog rezultata.
Slučaj kada se dva procesa međusobno
natječu za neki resurs

 Da bi se zadovoljili uvijeti nedjeljivosti programskog


odsječka i njihovo međusobno isključivanje
upotrebljava se mehanizam zaključavanja (engl.
locking).
Mehanizam zaključavanja

 Svakom procesu dodjeljuje se “ključ” k i dvije


operacije:
 Lock (k)
 Unlock (k)

 operacija lock postavlja k u 1 čime onemogućava


ostalim procesima da izvedu opreaciju lock. Bilo koji
drugi proces sada mora čekati da isti proces postavi k
u 0 odnosno obavi operaciju unlock.
Mehanizam zaključavanja
Problem uvjetovane sinkronizacije

 Proces1 i proces2 su kooperativni procesi odnosno


međusobno surađuju.

 Proces1 generira niz rezultata I pohranjuje ih slijedno


u D, a proces2 slijedno uzima te podatke iz niza.

 Problem: registar D može primiti samo jednu


vrijednost.
Problem uvjetovane sinkronizacije

 Moramo osigurati sljedeće:


 Kada proces1 generira vrijednost Vi smješta je u D, on čeka sve
dok proces2 ne konzumira vrijednost Vi. Tek će poslije toga
pohraniti slijedeću vrijednost Vi+1 u D.
 Nakon što proces2 konzumira vrijednost Vi iz D, on čeka sve
dok proces1 ne generira sljedeću vrijednost Vi+1. Tek poslije
toga ponovno čita iz D.

 Možemo vidjeti kako proces1 mora kasniti sa


upisivanjem u D dok nije određen uvijet postavljen od
procesa2.
Problem uvjetovane sinkronizacije

 Koristimo dva “ključa” k1 i k2 koji su priključeni


strukturi D.

 Proces1 otključava k2 time signalizira procesu2 da je


pohranio novu vrijednost u D.
 Proces2 otključava k1 da bi obavijestio proces1 o
konzumiranju vrijednosti iz D.
Problem uvjetovane sinkronizacije
Mehanizam vrste sinkronizacije

 Sinkronizacija uporabom dijeljenih varijabli (engl.


shared variables).

 Sinkronizacija na temelju prosljeđivanja poruka.

You might also like