Teorijski uvod Lockovi Uvod Dostignut teoretski maksimum single-thread performansi Rešenje je prona deno u paralelizmu uvo denjem više jezgara u

Величина: px
Почињати приказ од странице:

Download "Teorijski uvod Lockovi Uvod Dostignut teoretski maksimum single-thread performansi Rešenje je prona deno u paralelizmu uvo denjem više jezgara u"

Транскрипт

1

2 Thread i konflikti Thread predstavlja kontekst izvršavanja nekog programa Rešenje je prona deno u paralelizmu uvo denjem više Konflikt me du threadovima ne postoji ukoliko rade nad različitim jezgara u podacima jedan procesor ili nad disjunktnim celinama istih podataka/resursa Konflikt nastaje kada više threadova želi da vrši operacije nad Od sada istim pa podskupom na dalje posmatraćemo resursa sisteme koji u paralelno procesiranje

3 Bagovi Čak i kada konflikt postoji on se ne mora uvek ispoljiti Rešenje Zbog toga jebagove prona deno nije ulako paralelizmu reprodukovati uvo denjem više UPostoje obe prethodne problemi kao arhitekture deadlock, je postojala livelock i (i contention postoji) Debugging multi-thread programa je generalno veoma Od težak sada pa na dalje posmatraćemo sisteme koji u paralelno procesiranje

4 Thread safety U nastavku ćemo smatrati da su programi koje koristimo tačni To ne znači da oni neće izazvati konflikte kada se Uizvršavaju obe prethodne u više threadova arhitekture je postojala (i postoji) Zato treba da obezbedimo da oni budu thread-safe Od sada pa na dalje posmatraćemo sisteme koji u paralelno procesiranje

5 Primer arhitekture CPU CORE 1 CORE 2 CORE 8 RešenjeL1 jecache prona deno L1 CACHE u paralelizmu uvo L1 CACHE denjem više jezgara ul2 jedan CACHE procesor L2 CACHE L2 CACHE L3 CACHE MEMORY u paralelno procesiranje

6 Intel Haswell-E u paralelno procesiranje

7 Primer situacije Multi-thread program koji vrši neku komplikovanu Dostignut simulaciju teoretski maksimum single-thread performansi Za potrebe kasnije analize svaka iteracija simulacije se beleži u jedinstven log fajl koji je zajednički za sve threadove Rešenje je prona deno u paralelizmu uvo denjem više Samo beleženje se vrši pozivom konkretne funkcije writelog(text) U obe prethodne arhitekture je postojala (i postoji) Ceo mogućnost program multi-threadinga se izvršava na jednom CPU koji ima efektivno 8 jezgara podržavaju Koji su sve problemi multi-threading koje moramo da rešimo? Konkurentno pisanje u fajl? u paralelno procesiranje

8 writelog funkcija Najjednostavnija implementacija bila bi: jezgara u jedan void procesor writelog(char *text) { fprintf(out, "%s", text); U obe prethodne } arhitekture je postojala (i postoji) Od Šta sada je problem pa na ovde? dalje posmatraćemo sisteme koji u paralelno procesiranje

9 writelog funkcija cont d fprintf u ovom slučaju predstavlja critical section kod koji Dostignut samo jedan teoretski thread maksimum sme da single-thread izvršava u nekom performansi trenutku Stoga u kodu želimo da onemogućimo da više od jednog threada istovremeno piše u fajl Jedno potencijalno rešenje: void writelog(char *text) { U obe prethodne acquirelock(lock); arhitekture je postojala (i postoji) fprintf(out, "%s", text); releaselock(lock); Od sada pa} na dalje posmatraćemo sisteme koji Ali kako implementirati ove funkcije? u paralelno procesiranje

10 Prvi pokušaj void acquirelock(bool *lock) { while(true) Dostignut teoretski { maksimum single-thread performansi if(*lock == false) { *lock = true; Rešenje break; je prona deno u paralelizmu uvo denjem više jezgara } u jedan procesor } } void releaselock(bool *lock) { *lock Od sada = false; pa na dalje posmatraćemo sisteme koji } u paralelno procesiranje

11 Atomske operacije Kod sa prethodnog slajda nije tačan Potrebna Dostignutnam teoretski je posebna maksimum atomska single-thread (nedeljiva) performansi mašinska instrukcija! Za tu svrhu postoji compare_and_swap(destination, Rešenje Comparand, je prona Exchange) deno uatomska paralelizmu operacija uvokoja: denjem više jezgara postavi u jedan Exchange procesor na Destination ukoliko je prvobitna vrednost Destination bila jednaka sa Comparand U obe vrati prethodne trenutnu vrednost arhitekture Destination je postojala u suprotnom (i postoji) Ova instrukcija zavisi od arhitekture: Od sada InterlockedCompareExchange na dalje posmatraćemo MSDN sisteme operacija koji na podržavaju Windowsu multi-threading sync_val_compare_and_swap u slučaju GCC kompajlera na Linux sistemima u paralelno procesiranje

12 Test and set (TAS) lock void Dostignut acquirelock(bool teoretski maksimum *lock) { single-thread performansi while(cas(lock, false, true)) { /* Nothing */ } Rešenje je prona deno u paralelizmu uvo denjem više } void U releaselock(bool obe prethodne arhitekture *lock) { je postojala (i postoji) *lock mogućnost = false; multi-threadinga } u paralelno procesiranje

13 Test and test and set (TATAS) lock void Dostignut acquirelock(bool teoretski maksimum *lock) { single-thread performansi do { while(*lock) {} } Rešenje while(cas(lock, je prona deno false, u paralelizmu true)); uvo denjem više } void U releaselock(bool obe prethodne arhitekture *lock) { je postojala (i postoji) *lock mogućnost = false; multi-threadinga } u paralelno procesiranje

14 Problemi sa TATAS Izaziva takmičenje za isti resurs (cache liniju koja sadrži lock) blago poboljšanje u odnosu na TAS Ne postoji kontorla oko toga koji thread dobija lock (ne postoji jasna polisa zaključavanja kao na primer FCFS) Postoji problem stampeda svi threadovi istovremeno Od pokušaju sada pa da na dobiju daljelock posmatraćemo (kako ovo rešiti?) sisteme koji u paralelno procesiranje

15 Rešenje stampeda: TATAS Dostignut Možemo koristiti teoretski nekakav maksimum back-off single-thread algoritam: performansi Posmatramo lock s iteracija jezgara Ako u se jedan lock ne procesor oslobodi, čekamo lokalno w iteracija (bez posmatranja locka!) Generalno, vrednosti s i w biramo u zavisnosti od problema i Od to najčešće sada pa na koristeći dalje posmatraćemo ograničeni eksponencijalni sisteme koji back-off podržavaju (back-off se multi-threading resetuje kada se lock dobije) u paralelno procesiranje

16 Queue-based lockovi Svi threadovi koji žele da dobiju lock se postavljaju u red: odmah dobijamo first come first serve (FCFS) ponašanje Svaki thread se vrti lokalno na flagu u svom queue entry-ju: nemamo pristup dubljim slojevima memorije dok čekamo Osloba danje (release) locka budi sledeći thread direktno: Od nemamo sada pa stampeda na dalje posmatraćemo sisteme koji u paralelno procesiranje

17 MCS lock lock: Lock predstavlja rep liste QNode 1 QNode 2 QNode 3 mogućnost FALSE multi-threadinga FALSE FALSE OdGlava sada pa na dalje posmatraćemo sisteme koji Lokalni flag Rep u paralelno procesiranje

18 MCS lock acquire void acquiremcs(mcs *lock, QNode *qn) { QNode Dostignut *prev; teoretski maksimum single-thread performansi qn->flag = false; qn->next = NULL; while(true) Rešenje je prona { deno u paralelizmu uvo denjem više jezgara prev = u jedan lock->tail; procesor /* Label 1 */ U obe if(cas(&lock->tail, prethodne arhitekture prev, je postojala qn)) break; (i postoji) } if(prev!= NULL) { Odprev->next sada pa na= dalje qn; posmatraćemo /* Label 2 */ sisteme koji podržavaju while(!qn->flag) multi-threading { } // Spin } } u paralelno procesiranje

19 MCS lock release void releasemcs(mcs *lock, QNode *qn) { if(lock->tail = qn) { Rešenje if(cas(&lock->tail, je prona deno u paralelizmu qn, NULL)) return; uvo denjem više } while(qn->next == NULL) { } qn->next->flag U obe prethodne= arhitekture true; je postojala (i postoji) } u paralelno procesiranje

20 Proširimo problem Zamislimo da naš log fajl sada ima i programe koji on-line analiziraju (čitaju) log-fajl U jezgara ovom uslučaju jedan nam procesor nije dovoljno da imamo samo mutex (true/false lock) kao do sada (sem u slučaju jednog čitača) mogućnost Stoga uvodimo multi-threadinga koncept Reader-writer lockova lockova kod kojih omogućavamo da više čitača istovremeno Od pristupa sadafajlu pa na dalje posmatraćemo sisteme koji u paralelno procesiranje

21 Writer acquire i release void acquirewrite(int *lock) { do { if((*lock == 0) && (CAS(lock, 0, -1))) { break; } while(true); } void releasewrite(int *lock) { *lock = 0; } u paralelno procesiranje

22 Reader acquire i release void acquireread(int *lock) { do Dostignut { teoretski maksimum single-thread performansi int oldval = *lock; if((oldval >= 0) && Rešenje (CAS(lock, je prona deno oldval, u paralelizmu oldval+1))) uvo { denjem više jezgara break; u jedan procesor }} while (true); } void releaseread(int *lock) { FADD(lock, Od sada pa-1); na dalje // Atomic posmatraćemo fetch-and-add sisteme koji } u paralelno procesiranje

23 Drugi vidovi konkurentnog procesiranja Hijerarhijski lockovi uspostavljaju prostorno-lokalan redosled na threadove koji zahtevaju lock (npr. po jezgru na kome se izvršavaju) Čitanje U obe prethodne bez lockova arhitekture u slučajevima postojala gde se (i postoji) malo piše a puno mogućnost čita, koriste multi-threadinga se sheme kao verzioni brojevi (version number schemes) u paralelno procesiranje

24 Dodatni materijal "The art of multiprocessor programming", Herlihy & Shavit jako dobar pregled struktura podataka u deljenoj memoriji, sa praktične i teoretske tačke gledišta Uhttp:// obe prethodne arhitekture je postojala (i postoji) mogućnost synch.pdf multi-threadinga orignialni Mellor-Crummey i Scott rad iz u kojem uvode MCS lockove u paralelno procesiranje

25 Ostale teme za superskalare i Rešenjechip pronamultiprocesore deno u paralelizmu uvo denjem više

26 Ubacivanje instrukcija u prozor In order, pa to radi programski brojač, ako se nije skočilo Skakanje na osnovu predikcije! Širina reči instrukcijskog keša danas 128 do 192 bita tipično nekoliko instrukcija U slučaju da je RISC, tada su cele instrukcije u reči (bloku) Ako mogućnost je CISC multi-threadinga tada ne moraju instrukcije na početku i na kraju široke reči da budu cele!!! Moramo podržavaju da multi-threading znamo granice instrukcija, a to se može uraditi tek nakon bar delimičnog dekodovanja!!

27 Šta se ubacuje po ciklusu u prozor - RISC Pravila: 1. Ako je PC pokazao na početak bloka i nema skokova, učitavaju se dalje sve instrukcije iz bloka i šalju na paralelno dekodovanje 2. Ako je PC pokazao početak bloka, a u bloku je 1 instrukcija skoka => ako je predikcija da nema skoka učitavaju se sve instrukcije, a ako je predikcija da ima, učitavaju se sve instrukcije do instrukcije skoka i instrukcija skoka, a ostale ne ulaze u prozor 3. Ako Odje sada doskakanje pa na dalje negde posmatraćemo u sredinu sisteme bloka, ne kojiučitava se deo do tačke uskakanja, a za ostatak važi 2., ali od tačke uskakanja 3

28 Dva skoka u bloku? Kompajler može da pravi razmak između instrukcija skoka (selidbe operacija) od najmanje onoliko instrukcija koliko ih ima u bloku Rešenje je prona deno u paralelizmu uvo denjem više Limit zbog jedne predikcije po ciklusu, maksimalni U obe prethodne instrukcijski arhitekture jeparalelizam postojala (i postoji) je 6-9 instrukcija po ciklusu! (Samo DoAll traže više) Eksperimenti Od sada pa na sa daljeprediktorima posmatraćemo sisteme koji rade koji dve predikcije podržavajupo multi-threading ciklusu 4

29 Šta raditi sa CISC? Lepiti delove instrukcija iz susednih blokova, jer zauzimaju 1-17 bajta! Raditi paralelno određivanje granica instrukcija u blokovima Kako to uraditi? Prediktor nam dozvoljava da se zalećemo i da radimo prefetching i delimično dekodovanje U obe prethodne većeg arhitekture broja reči jeinstrukcijskog postojala (i postoji) keša u kompleksni mogućnostfifo multi-threadinga (in order issue) zbog paralelnog određivanja granica instrukcija Radimo prefetching većeg broja bazičnih blokova na dinamičkom tragu još pre instrukcijskog prozora!!! 5

30 Posledice dohvatanja većeg broja bazičnih blokova Potreban je trace multiportni cache za pamćenje dinamičkog traga unapred Multiportni, jer se paralelno čita na više dekodera da bi se dobile mikrooperacije to Udodaje obe prethodne protočne arhitekture stepene je postojala i povećava (i postoji) kaznu zbog mogućnost greške multi-threadinga u predikciji nije previše značajno Imamo Od sada ograničenje pa na dalje posmatraćemo u propusnosti sistemezbog koji grananja 6

31 Predobrada za instrukcijski prozor Rešenje: dohvatati reči sa instrukcijama unapred nekoliko bazičnih blokova i obezbediti brže određivanje granica instrukcija nego što će se na kraju Rešenje ubacivati je pronau deno prozor u paralelizmu Intel 50% uvoviše denjem više Sve se to radi u pipeline-u: prediktor određuje šta se Uubacuje, obe prethodne u pipeline-u arhitekturese je postojala određuju (i postoji) granice instrukcija mogućnosti multi-threadinga zatim radi dekodovanje, a na kraju postoji i queue mikroinstrukcija koje se tek onda ubacuju Od sadau pa ROB, na dalje odnosno posmatraćemo instrukcijski sistemeprozor koji (ugrađenu dataflow mašinu) 7

32 Trace Cache Ključna ideja: Pakovati više nesusednih bazičnih blokova u jednu susednu keš reč BR BR BR BR Jedno dohvatanje je dohvatanje više bazičnih blokova gube se granice bazičnih blokova Trace cache indeksira na osnovu startne adrese i sledećih n predikcija podržavaju grananja multi-threading Korišćeno od Pentium 4 procesora za čuvanje dekodovanih mikrooperacija BR BR 8

33 Trace Cache za Haswell Otkrivanje granica instrukcija Trace cache 9

34 Zavisnosti po podacima preko memorije Prave zavisnosti, antizavisnosti i izlazne zavisnosti, jer nema dinamičkog preimenovanja za memoriju Store instrukcije treba po originalnom redosledu izvršavati Rešenje je i tek prona kada denosu u paralelizmu in order (commit) uvo denjem više mali ROB jezgara za store, u jedanpa procesor zbog redosleda nema izlaznih zavisnosti Antizavisnosti U obe prethodne praktično arhitekturene je postojala mogu nastati, (i postoji) ako postoji mogućnost load multi-threadinga buffer (load nije zavisan po podacima iz registara, pa kreće odmah u izvršavanje ako nema pravih zavisnosti preko memorije) Ali tada imamo store load store problem 10

35 Load-Store redovi Zavisnosti preko memorije bi mogli da značajno ograniče performanse, zbog velike dužine pipelina za Load i Store, upisa tek kada je commit Store instrukcije i sporosti memorije Mora jezgara se ugraditi u jedan procesor kompleksna load-store reordering tehnika da se smanji efektivno kašnjenje U obe prethodne memorije arhitekture dozvoljavanjem je postojala (i postoji) spekulativnih load-a Zašto su spekulativni? ne znamo da li neka ranija store instrukcija ne menja sadržaj lokacije, jer može još da se izračunava adresa 11

36 Spekulativni Store Buffer Store Store Ne sme se menjati sadržaj memorije dok store Address Data instrukcija nije komitovana. Zato spekulativni Speculative store buffer čuva podatke spekulativnih store Store Buffer Dostignut teoretski podataka maksimum single-thread performansi V S Tag Data Tokom dekodovanja se redom zauzimaju ulazi V S Tag Data (lokacije) po programskom redosledu V S Tag Data Rešenje je prona deno Store uoperacija paralelizmu se deli uvo na store denjemaddress više i store V S Tag Data data mikro-operacije - Store address izvršavanje upisuje tag, a Store data izvršavanje Store U obe prethodne arhitekture upisuje podatke Commit je postojala (i postoji) mogućnost Path multi-threadinga Store se komituje kada se podaci i adresa za najstariji store upišu i instrukcija je komitovana Tags Od sada Data pa na dalje (ROB): posmatraćemo sisteme koji Ukloni se 1 za spekulativni bit S i komitovani L1 Data Cache podaci se upisuju u cache Moguć store abort reset valid bita V 12

37 Load bypass iz spekulativnog store buffera Speculative Load Address Store Buffer Dostignut teoretski maksimum single-thread L1 Data performansi Cache V S V S V S V V V S Tag Tag Tag Tags Data S Rešenje Tag je prona Data deno u paralelizmu uvo denjem više S jezgara Tag u jedan Data procesor Tag Data Data Data Data Load Data Ako mogućnost i store buffer multi-threadinga i cache imaju podatak, koji uzeti? Spekulativni store buffer Ako Od je dva sada puta paista naadresa dalje posmatraćemo u store bufferu, sisteme koji upis uraditi? koji Najnoviji podržavaju store multi-threading (jer je podatak ranije store operacije pokupljen iz spekulativnog store buffer-a) 13

38 Memorijske zavisnosti sd x1, (x2) ld x3, (x4) Kada se može raditi load? 14

39 In-Order Memory Queue Sve Load i Store operacije moraju po programskom redosledu => Rešenje Load i jestore prona deno ne mogu u paralelizmu da napuste uvo denjem ROB više dok sve jezgara prethodne u jedan procesor Load i Store operacije ne završe izvršavanje Load i Store mogu spekulativno u odnosu na ostale instrukcije 15

40 Konzervativno O-o-O Load Izvršavanje sd x1, (x2) ld x3, (x4) Može load pre store-a ako se za adrese zna da je x4!= x2 Svaka U obe load prethodne adresa arhitekture se poredi je postojala sa adresama (i postoji) svih prethodno nekomitovanih store operacija Ne Od raditi sadaload, pa na dalje ako je posmatraćemo bilo koja od sisteme prethodnih koji adresa podržavaju store-a multi-threading nepoznata 16

41 Adresna Spekulacija sd x1, (x2) ld x3, (x4) Pretpostavimo Rešenje je pronada deno je ux4 paralelizmu!= x2 uvo denjem više Izvrši se load pre nego što je poznata store adresa Moraju U obe prethodne se čuvati arhitekture sve nekomitovane je postojala (iload/store postoji) adrese mogućnost u programskom multi-threadingaredosledu Ako se dogodi da je x4==x2, obustavi load i sve prateće Od sada instrukcije pa na dalje posmatraćemo (load exception) sisteme koji => Velika kazna za grešku zbog netačne pretpostavke o različitosti adresa 17

42 Load Store kod Haswell prozoru!!! Tri jedinice adresnih generatora 4 porta za memoriju u instrukcijskom 18

43 Haswell prozor, registri i FJ Vektorski registri AVX i vektorske ALU 19

44 Multithreading i Multicore 20

45 Šta razmatramo kod Multithreading-a Pregled Threading Algoritama Hyper-Threading Koncepti Hyper-Threading Arhitektura Prednosti i mane 21

46 Threading Algoritmi Time-slicing Procesor se prebacuje između niti u fiksnim vremenskim intervalima. Visoka cena, naročito ako je jedan od procesa u stanju čekanja. Fine grain Switch-on-event Niti se menjaju u slučaju da se događa bilo koje čekanje u niti koji se izvršava Ako se čekaju podaci sa sporog izvora, CPU se predaje nekom od drugih procesa (ne OS). Coarse grain 22

47 Threading Algoritmi (2) Multiprocesiranje Ukupan posao se distribuira na više procesora Značajan dodatni trošak Simultaneous Multi-Threading (SMT) Više niti se izvršavaju na jednom procesoru bez mogućnost izmene konteksta multi-threadinga Osnova za Intelovu Hyper-Threading tehnologiju. 23

48 Hyper-Threading Concept U svakom trenutku u vremenu, samo deo procesorskih resursa se koristi za izvršavanje programskog kôda niti Neiskorišćeni resursi mogu biti istovremeno iskorišćeni za paralelno izvršavanje druge niti/aplikacije Kod servera ili klijentskih računara često postoji puno niti, pa je veoma korisno 24

49 Quick Recall: Many Resources IDLE! For an 8-way superscalar. Od sada pa na dalje posmatraćemofrom: sisteme Tullsen, koji Eggers, and Levy, Simultaneous Multithreading: Maximizing On-chip Parallelism, ISCA

50 26

51 jezgara (a) u jedan procesor (b) (c) (d) (a) Superskalarni procesor bez multithreading-a (b) Superskalarni procesor sa coarse-grain multithreading-om (c) Superskalarni procesor sa fine-grain multithreading-om (d) Superskalarni procesor sa simultaneous multithreading-om (SMT) 27

52 Simultaneous Multithreading (SMT) Primer: novi Intel procesori sa Hyperthreading - om Osnovna Dostignut ideja: teoretski Iskoristiti maksimum instrukcijski single-thread nivo paralelizma performansinad više niti istovremeno; tj. pretvoriti paralelizam na nivou niti u dodatni instrukcijski nivo paralelizma Iskoristiti sledeće osobine modernih procesora: Više funkcionalnih jedinica, pa postoji znatan višak FJ u odnosu na prosečne potrebe jedne niti Preimenovanje registara i dinamičko raspoređivanje (ugrađena Od sadadata pa naflow daljemašina) posmatraćemo - Više sisteme instrukcija koji iz više nezavisnih podržavaju niti multi-threading mogu da koegzistiraju i da se istovremeno izvršavaju, uz veći ukupni paralelizam dva smanjena nepovezana dinamička DDG! 28

53 Hyper-Threading Arhitektura Prvo se pojavila kod Intel Xeon MP procesora Stvara iluziju kojom se jedan fizički procesor javlja kao više (2) logička procesora Svaki Rešenje logički je prona procesor deno uima paralelizmu kopiju arhitekturalnog uvo denjem više stanja Logički procesore dele jedan zajednički skup fizičkih resursa za izvršavanje 29

54 Hyper-Threading Arhitekture Operativni sistemi i korisnički konkurentni programi mogu da rasporede procese ili niti na logičke procesore kao da se raspoređuju na multiprocesorski Rešenje je prona deno sistem u paralelizmu sa istim uvo brojem denjem više fizičkih procesora Kako U obe logički prethodne procesori arhitekturemogu je postojala da koriste (i postoji) deljene resurse: Cache, izvršne jedinice, Prediktore grananja, kontrolnu logiku, OoO logiku, magistrale, fizičke registre,... 30

55 Power 5 dataflow... Zašto samo mogućnost dve niti? multi-threadinga Sa 4, neki od deljenih resursa (fizički registri, cache, memorijski propusni opseg) Od sada bi postao pa na usko dalje grlo posmatraćemo sisteme koji Cena: Power5 jezgro je oko 24% veći od Power4 jezgra zbog podrške za simultani multithreading 31

56 Prednosti Kod nekih procesora je dodatna površina na čipu oko 5% Nema gubitka performansi ako je samo jedna nit aktivna, a poboljšane performanse sa dve niti (dva manja nepovezana DDG niti istovremeno) Bolje iskorišćenje resursa 32

57 Mane Da se iskoristi, mora da bude konkurentni program Niti nisu determinističke i mora pažljivi dizajn jezgara aplikacije u jedan procesor Niti imaju dodatnu kontrolnu logiku Konflikti deljenih resursa cache i memorija pre svega Ukupni dobitak je mali, ali će rasti sa veličinama instrukcijskog prozora! 33

58 Multicore Multiprocesori na čipu UMA multiprocesori (symmetric multiprocessing) 34

59 Osnovna Shared Memory Arhitektura Procesori svi povezani na veliku deljenu memoriju Gde su cache memorije? P1 P2 Pn interconnect memory Koja su ograničenja, kako su napravljeni, limiti, programiranje? 35

60 Kako i gde Cache??? P 1 P n $ $ Bus Mem I/O devices Za visoke performanse sa deljenom memorijom: koristi cacheeve! Svaki jezgara procesor u jedan ima procesor jedan ili više svojih cache-eva Stavi podatke iz memorije u cache Writeback U obe prethodne cache: nemoj arhitekture slati sve jepodatke postojala preko (i postoji) bus-a u memoriju Cache-evi smanjuju srednje kašnjenje memorijskog sistema Automatska replikacija bliže procesoru Važnije podržavaju za multiprocesor multi-threading nego za jedan procesor: veća su kašnjenja Normalan uniprocesorski mehanizam za dohvatanje podataka Problem: Koherencija Cache-eva! 36

61 Primer problema koherencije Cache-a P 1 4 $ $ 5 $ P 2 P 3 u =? u =? 3 Dostignut u :5 teoretski maksimum single-thread performansi u :5 u = 7 Rešenje je prona deno u paralelizmu uvo I/O devices denjem više 1 2 jezgara u jedanu :5 procesor Memory Processori U obe prethodne mogu da vide arhitekture različite jevrednosti postojala u (inakon postoji) događaja 3 Sa write mogućnost back cache-evima, multi-threadinga vrednost upisana u memoriju zavisi od toga koji cache i kada da upiše u memoriju Kako Od ovo sada popraviti pa na dalje na bus-u: posmatraćemo Coherence sisteme Protocol koji Upotrebiti podržavajubus multi-threading da emituje (broadcast) upise ili invalidacije Jednostavni protokoli zasnovani na braodcast-u na bus-u Bus može do processora (max) 37

62 Ograničenja Bus-Based Shared Memory 140 MB/s 5.2 GB/s I/O MEM MEM Dostignut teoretski maksimum => 1.2 GB/s single-thread data BW at 30% performansi load-store Assume: 1 GHz processor w/o cache => 4 GB/s inst BW per processor (32-bit) Suppose 98% inst hit rate and 95% data hit rate Rešenje je prona deno u => paralelizmu 80 MB/s inst BW uvo per denjem processor više jezgara cache u jedan cache procesor => 60 MB/s data BW per processor 140 MB/s combined BW PROC PROC Assuming 1 GB/s bus bandwidth \ 8 processors will saturate bus 38

63 39

64 Cache Organizacija za Multi-core L1 cache je uvek privatan za core L2 cache može biti privatan ili deljeni Prednosti deljenog L2 cache-a: efikasna dinamička alokacija prostora za svaki core Podaci deljeni od strane više core-ova se ne repliciraju Prednosti privatnog L2 cache-a: brzi pristup privatnom L2 dobro za male programe privatan je bus do privatnog L2 manje sačekivanja 40

65 Podsetnik: SMT (Simultaneous Multi Threading) SMT vs. CMP 41

66 A Single Chip Multiprocessor Superscalar (SS) SMT CMP 42

67 Superskalar i SMT vs. CMP Zašto Core-ovi: Problemi hardverskog projektovanja (za SS i SMT): Površina čipa raste kvadratno sa kompleksnošću core-a Broj registara O(Instruction window size) Broj registarskih portova - O(broj izdatih instrukcija po ciklusu) CMP rešava problem (~ linearna zavisnost od ukupno izdatih instrukcija) Sporiji takt Produžavaju se žice zbog puno MUX Veliki mogućnost bufferi, multi-threadinga redovi i registarski file-ovi Da bi stalo na IK, smanjuje se ILP, skraćuje Pipeline, pa Branch mispredication Od sada pa na kazne daljesu posmatraćemo manje sisteme koji CMP brži takt, manji, oslanja se više na kompiler i na load balancing Kompleksni dizajn i verifikacija 43

68 Budućnost TLP (Thread Level Paralelizam) i PLP (Process Level Paralelizam) postaju Dostignut neminovnost teoretski u budućnosti maksimumi favorizuju single-thread CMP performansi i SMT na procesorima. Kako iskoristiti - KDP, ali se mora obezbediti i balansiranje opterećenja Rešenje procesora je prona deno u paralelizmu uvo denjem više SMT jezgara (Hyperthreading) u jedan procesor se adaptira na broj procesa i dinamički hardverski i transparentno deli procesorske resurse prema zahtevima U obe2 prethodne procesa. arhitekture je postojala (i postoji) Kada mogućnost nema multiprocesnog multi-threadinga rada, superskalari i SMT procesori su bolji od jednostavnih procesora u CMP Kompajleri i dalje igraju veliku ulogu prevode tako da kod u instrukcijskom prozoru u svakom trenutku bude što paralelniji, ali ograničenje je nepoznavanje svih zavisnosti u vreme prevođenja 44

69 SMT Dual-core: sve četiri niti mogu da se izvršavaju konkurentno L1 D-Cache D-TLB L1 D-Cache D-TLB Integer Floating Point Integer Floating Point L2 Cache and Control Bus Schedulers Schedulers Uop queues Rename/Alloc Rename/Alloc BTB Trace Cache Od sada pa na daljerom posmatraćemo sisteme koji Decoder Decoder BTB and I-TLB ucode L2 Cache and Control Bus BTB Uop queues Trace Cache BTB and I-TLB ucode ROM 45 Thread 1 Thread 3 Thread 2 Thread 4

70 I Haswell core-a 8 thread-ova (2 po core-u) Niz vektorskih instrukcija Multiply-Add Enkripcija i digitalno potpisivanje u hardveru postaju deo instrukcijskog seta Grafičke funkcije visokog nivoa kao instrukcije iako ima zaseban grafički procesor 46

Algoritmi i arhitekture DSP I

Algoritmi i arhitekture DSP I Univerzitet u Novom Sadu Fakultet Tehničkih Nauka Katedra za računarsku tehniku i međuračunarske komunikacije Algoritmi i arhitekture DSP I INTERNA ORGANIACIJA DIGITALNOG PROCESORA A OBRADU SIGNALA INTERNA

Више

_sheets.dvi

_sheets.dvi Zavod za elektroniku, mikroelektroniku, 28. studenog 2008. računalne i inteligentne sustave 2. me duispit iz Arhitekture računala 2, teorijski dio 1. Koja komponenta modernih računala nije bila prisutnau

Више

Vezbe_AOR1_2014_V1.0

Vezbe_AOR1_2014_V1.0 АРХИТЕКТУРА И ОРГАНИЗАЦИЈА РАЧУНАРА 1 Верзија 2014 1.0 САДРЖАЈ Садржај... 3 Кеш меморија (Cache Memory)... 5 Задатак 1.... 5 Задатак 2.... 6 Задатак 3.... 9 Задатак 4.... 12 Задатак 5.... 15 Задатак 6....

Више

Edukacioni racunarski sistem

Edukacioni racunarski sistem ТРАНСЛАЦИЈА ИНСТРУКЦИЈА 1. Разматра се рачунарски систем у коме се извршавање одређене инструкције одвија у 6 фаза помоћу измењеног процесора са стандардном проточном обрадом (слика 1.). У процесор са

Више

IV Spekulativno I predikatsko izvršavanje

IV Spekulativno I predikatsko izvršavanje Instrukcijski nivo paralelizma 42 Spekulativno izvršavanje 4. Spekulativno izvršavanje Pod spekulativnim izvršanjem podrazumevamo izvršavanje operacije unapred, uprkos tome što možda nije uopšte trebala

Више

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000 Zadatak 2.1 1. T=5: Jedinica WBSD propušta vred 0000 0003 Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000 0003 koja je pročitana u taktu 5 (prethodno pitanje)

Више

IV Spekulativno I predikatsko izvršavanje

IV Spekulativno I predikatsko izvršavanje Instrukcijski nivo paralelizma 42 Spekulativno izvršavanje 4. Spekulativno izvršavanje Pod spekulativnim izvršanjem podrazumevamo izvršavanje operacije, koja možda nije uopšte morala da se izvrši. Pritom,

Више

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa. 13E114PAR, 13S113PAR 29.04.2019. DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa. U okviru svake grupe data je doall ili doacross petlja

Више

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako se razmatraju samo zavisnosti po podacima, je srazmeran

Више

PowerPoint Presentation

PowerPoint Presentation УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe

Више

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan Nastavna cjelina: 1. Osnove IKT-a Kataloška tema: 1.6. Paralelni i slijedni ulazno-izlazni pristupi računala 1.7. Svojstva računala Unutar računala podatci su prikazani električnim digitalnim signalima

Више

PowerPoint Presentation

PowerPoint Presentation VMware Horizon 7 What s New Bojan Andrejić i Stefan Đoković COMING Computer Engineering Uvod u VMware Horizon 7 Obezbeđuje unapređeno i bezbedno upravljanje i isporučivanje Windows ili Linux desktopova,

Више

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Generated by Foxit PDF Creator Foxit Software   For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS Operativni sistem U računarstvu, operativni sistem (OS) je kompleksan programski sistem koji kontroliše i upravlja uređajima i računarskim komponentama i obavljanje osnovne sistemske radnje. Operativni

Више

Programiranje za UNIX Okruženje unix procesa

Programiranje za UNIX Okruženje unix procesa Programiranje za UNIX Okruženje unix procesa Sadržaj Memorijska slika UNIX procesa Argumenti naredbenog retka i varijable okruženja Životni ciklus procesa Izlazni status procesa 2 Memorijska slika UNIX

Више

Zbirka resenih zadataka iz arhitekture racunara

Zbirka resenih zadataka iz arhitekture racunara Ј. ЂОРЂЕВИЋ, З. РАДИВОЈЕВИЋ, М. ПУНТ, Б. НИКОЛИЋ, Д. МИЛИЋЕВ, Ј. ПРОТИЋ, А. МИЛЕНКОВИЋ АРХИТЕКТУРА И ОРГАНИЗАЦИЈА РАЧУНАРА ПРЕКИДИ, МАГИСТРАЛА И УЛАЗ/ИЗЛАЗ ЗБИРКА РЕШЕНИХ ЗАДАТАКА Београд 2013. i САДРЖАЈ

Више

Увод у организацију и архитектуру рачунара 1

Увод у организацију и архитектуру рачунара 1 Увод у организацију и архитектуру рачунара 2 Александар Картељ kartelj@matf.bg.ac.rs Напомена: садржај ових слајдова је преузет од проф. Саше Малкова Увод у организацију и архитектуру рачунара 2 1 Секвенцијалне

Више

PowerPoint Presentation

PowerPoint Presentation Java konkurentno programiranje Životni ciklus niti i problemi sinhronizacije resursa Multitasking Multithreading Životni ciklus niti http://www.roseindia.net/java/thread/lifecycle-of-threads.shtml Životni

Више

P3.2 Paralelno programiranje 2

P3.2 Paralelno programiranje 2 Paralelno programiranje II Analiza zavisnosti Struktura algoritma Pomoćne strukture Komunikacioni šabloni 1 4 Koraka paralelizacije programa 2 Evo algoritma. Gde je paralelizam? Dekompozicija zadataka

Више

Microsoft Word - 11 Pokazivaci

Microsoft Word - 11 Pokazivaci Pokazivači U dosadašnjem radu smo imali prilike da koristimo promenljive koje smo deklarisali na početku nekog bloka. Prilikom deklaracije promenljiva dobija jedinstveni naziv i odgovarajući prostor u

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno

Више

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode] ij Cilj: Dobiti što više informacija o ponašanju digitalnih kola za što kraće vreme. Metod: - Detaljni talasni oblik signala prikazati samo na nivou logičkih stanja. - Simulirati ponašanje kola samo u

Више

PROMENLJIVE, TIPOVI PROMENLJIVIH

PROMENLJIVE, TIPOVI PROMENLJIVIH PROMENLJIVE, TIPOVI PROMENLJIVIH Šta je promenljiva? To je objekat jezika koji ima ime i kome se mogu dodeljivati vrednosti. Svakoj promenljivoj se dodeljuje registar (memorijska lokacija) operativne memorije

Више

RAČUNALO

RAČUNALO RAČUNALO HARDVER + SOFTVER RAČUNALO HARDVER strojna oprema računala tj. tvrdi, materijalni, opipljivi dijelovi računala kućište i sve komponente u njemu, vanjske jedinice SOFTVER neopipljivi dijelovi računala

Више

P1.0 Uvod

P1.0 Uvod Системска програмска подршка у реалном времену 1 Миодраг Ђукић miodrag.djukic@rt-rk.uns.ac.rs www.rt-rk.uns.ac.rs 1 Системска програмска подршка у реалном времену 1 програмска подршка = софтвер Системски

Више

P11.3 Analiza zivotnog veka, Graf smetnji

P11.3 Analiza zivotnog veka, Graf smetnji Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode] Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija

Више

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera CILJ VEŽBE Cilj ove vežbe je da se studenti kreiranjem

Више

Slide 1

Slide 1 Što, zašto i kako? Noviteti Ispod haube... Malo reklame... Malo stvarnosti... Q&A Najbolje Oracle database rješenje za: Data Warehousing OLTP Konsolidaciju baza Najbolje Oracle database rješenje za: Data

Више

PowerPoint Presentation

PowerPoint Presentation Mehanizmi čuvanja podataka baznog sustava za potrebe Billing aplikacije Autor: Domagoj Dukarić, HEP ODS d.o.o. Koautor: Mario Blažanović, HEP ODS d.o.o. Ukratko o Oracle bazi Instanca memorijske strukture

Више

P2.1 Projektovanje paralelnih algoritama 1

P2.1 Projektovanje paralelnih algoritama 1 Projektovanje paralelnih algoritama I Uvod Osnove dinamičke paralelizacije 1 Primer: Fibonačijev niz Primer rekurz. računanja Fibonačijevih brojeva: F 0 = 0; F 1 = 1; F i = F i -1 + F i -2 za i 2 Algoritam

Више

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

POSLOVNI INFORMACIONI SISTEMI  I RA^UNARSKE ZNAČAJ RAČUNARSKIH KOMUNIKACIJA U BANKARSKOM POSLOVANJU RAČUNARSKE MREŽE Računarske mreže su nastale kombinacijom računara i telekomunikacija dve tehnologije sa veoma različitom tradicijom i istorijom.

Више

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати истинитоносне таблице изведених логичких везника (НИ,

Више

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog sistema. U hijerarhijskom (slojevitom) modelu, jezgro je

Више

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt Projektovanje integrisanih kola Delimično projektovanje po narudžbini Sadržaj: Sadržaj: I. I. Uvod Uvod - sistem projektovanja II. II. CMOS Analiza Proces kola primenom računara III. III. Potpuno Optimizacija

Више

PowerPoint Presentation

PowerPoint Presentation TRANSPORTNI SLOJ Predmet: Aktivni mrežni uređaji Predavač: dr Dušan Stefanović ENKAPSULACIJA DATA SEGMENT S.P / D.P. / S.N. / Ack # / DATA IPv / HLEN / Flag / S. IP / D. IP / PACKET DATA (SEGMENT) Frame

Више

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizovanih u obliku softvera) organizovanih radi vršenja automatske

Више

06 Poverljivost simetricnih algoritama1

06 Poverljivost simetricnih algoritama1 ЗАШТИТА ПОДАТАКА Симетрични алгоритми заштите поверљивост симетричних алгоритама Преглед биће објашњено: коришћење симетричних алгоритама заштите како би се заштитила поверљивост потреба за добрим системом

Више

Slide 1

Slide 1 OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik

Више

P9.1 Dodela resursa, Bojenje grafa

P9.1 Dodela resursa, Bojenje grafa Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.

Више

Орт колоквијум

Орт колоквијум Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат

Више

Microsoft PowerPoint - C-4-1

Microsoft PowerPoint - C-4-1 Pregled iskaza u C-u Izraz; Iskaz dodele, serijski komponovani iskaz; blok Uslovni iskazi i izrazi; složeno grananje Iterativni iskazi Iskaz dodele Promena vrednosti a = Ψ; Izračunava vrednost izraza Ψ,

Више

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe 6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju

Више

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Mreže računala Završni ispit Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Predajete samo papire koje ste dobili. Rezultati, uvid u ispit i upis ocjena:... Zadatak

Више

Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос

Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити основне концепте мрежног модела 3. Објаснити основне

Више

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt Uvod u operativne sisteme v.as.mr. Samir Lemeš slemes@mf.unze.ba Univerzitet u Zenici 2009 Operativni sistemi i mreže: način realizacije vježbi Tokom semestra 3 periodična testa (Operativni sistemi, Mrežni

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode] Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева

Више

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Brkić SI 29/15 Zrenjanin 2018. Softversko inženjerstvo

Више

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode] Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба

Више

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трајно чувају податке. Привремено чување података карактерише

Више

Slide 1

Slide 1 predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni

Више

RA

RA ELEKTRONSKI SISTEMI PLAĆАNJA NА INTERNЕTU ELEKTRONSKI SISTEMI PLAĆАNJA NА INTERNЕTU U zavisnosti od novčanog iznosa koji je predmet plaćanja, ona se generalno mogu podeliti u dve kategorije: makroplаćаnjа

Више

Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova k

Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova k Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova komponenta računarskog sistema se zove SOFTVER(software

Више

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)

Више

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić projektni zadatak projektovanje programa (algoritmi) pisanje programskog koda, izvorni kod,

Више

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da

Више

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su međusobno povezane preko sistemske magistrale. Tajmer

Више

PowerPoint Presentation

PowerPoint Presentation Prof. dr Pere Tumbas Prof. dr Predrag Matkovid Identifikacija i izbor projekata Održavanje sistema Inicijalizacija projekata i planiranje Implementacija sistema Dizajn sistema Analiza sistema Faze životnog

Више

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati na Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja 2019. Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na papirima". 1. (2) Opisati pristupni sklop za izravni

Више

PowerPoint Presentation

PowerPoint Presentation Tehnička škola 9. maj Bačka Palanka Programiranje III razred Tok izvršavanja programa Tok izvršavanja programa Dosadašnji kod se izvršavao praktično linearno. Nije postojala nikakva uslovna ili brojačka

Више

Повезивање са интернетом

Повезивање са интернетом Драгана Стопић Интернет Интернет је најпознатија и највећа светска мрежа која повезује рачунаре и рачунарске мреже у једну мрежу, у циљу сарадње и преноса информација употребом заједничких стандарда. INTERnational

Више

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode] 1. Broj bitova koji se jednovremeno prenosi i obrađuje unutar procesora naziva se: a) radni takt b) procesorski kod c) procesorska reč d) procesorski takt 1. Broj bitova koji se jednovremeno prenosi i

Више

PHP kod

PHP kod PHP kod Fajl test.txt kreiran u Notepad-u Ugrađene funkcije u php-u fopen() otvara datoteku fclose() zatvara datoteku Primjer pokazuje kako se može najprije otvariti datoteka "test.txt" za čitanje, zatim

Више

PowerPoint Presentation

PowerPoint Presentation Fakultet za kompjuterske nauke, Univerzitet Megatrend Uvod u računarstvo u oblaku Virtuelizacija (I deo: osnovni pojmovi) Nemanja Maček 1 Sadržaj Pojam virtuelizacije Arhitekture sa i bez virtuelizacije

Више

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена 23.01.2017.) Прва година: ПРВА ГОДИНА - сви сем информатике Име предмета Датум и термин одржавања писменог дела испита

Више

PowerPoint Presentation

PowerPoint Presentation Колоквијум # задатак подељен на 4 питања: теоријска практична пишу се програми, коначно решење се записује на папиру, кодови се архивирају преко сајта Инжењерски оптимизациони алгоритми /3 Проблем: NLP:

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa

Више

Microsoft Word - Projekat iz MIPS-a - simCPU.doc

Microsoft Word - Projekat iz MIPS-a - simCPU.doc UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU MIKROPROCESORSKI SISTEMI simcpu Mentor Prof. dr. Mile Stojčev Marko Ilić 9921 Nebojša Pejčić 9738 Aleksandar Stojadinović 10085 Bojan Janićijević

Више

Prezentacija 1. i 2. cas

Prezentacija 1. i 2. cas Uvod Osnovi informatike Nastavnik: Doc. dr Milutin Radonjić Saradnik: mr Boris Marković Fond časova: 2P+1V Nakon svakog predavanja studenti mogu dobiti slajdove Obaveze studenta u toku nastave: pohađa

Више

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 07 - Podstrukture, const, reference v2018/2019. Sastavio: Zvonimir Bujanović Podstrukture Član

Више

LAB PRAKTIKUM OR1 _ETR_

LAB PRAKTIKUM OR1 _ETR_ UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET STUDIJSKI PROGRAM: ELEKTRONIKA, TELEKOMUNIKACIJE I RAČUNARI PREDMET: OSNOVE RAČUNARSTVA 1 FOND ČASOVA: 2+1+1 LABORATORIJSKA VJEŽBA BROJ 1 NAZIV: REALIZACIJA

Више

Logicko projektovanje racunarskih sistema I

Logicko projektovanje racunarskih sistema I PRIMERI SA PREDAVANJA 17 Beta asembler Zadatak 1. Posmatrajmo sledeću funkciju napisanu u programskom jeziku C, za računanje najvećeg zajedničkog delioca dva pozitivna cela broja: int gcd(int a, int b)

Више

zad_6_2.doc

zad_6_2.doc .. S- i S- komunikacioni standardi Zadatak. Pomoću MX i čipa, potrebno je realizovati konvertor S- na S-. MX ima raspored pinova kao na slici..,0μf +V +V ULZ V CC T IN T IN OUT IN T OUT 0 9 OUT IN T OUT

Више

P1.2 Projektovanje asemblera

P1.2 Projektovanje asemblera ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)

Више

Pojačavači

Pojačavači Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici dr Dejan S. Aleksić, vanredni profesor Kabinet 307 (treći sprat), lab. za elektroniku

Више

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode] Osnove programiranja Funkcije - Metode Prenos parametara Po vrednosti Po referenci Po izlazu Sadržaj Opseg važenja promenljive u drugim strukturama Rekurzije Prenos parametara Metoda može vratiti isključivo

Више

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,

Више

Introduction to Programming

Introduction to  Programming SQL Indeksi Uloga Indeksa o Kako baza postaje sve veća dizajn baze postaje sve važniji o Indeksi igraju značajnu ulogu u brzini rada same baze jer pomažu DBMS da brže pronađe ono što tražimo o Slični su

Више

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode] OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni

Више

Microsoft Word doc

Microsoft Word doc Luka Bar AD Bar Broj: Mjesto i datum: Bar, 30.07.2019. god. Luka Bar AD Bar objavljuje: JAVNI POZIV ZA NABAVKU SERVERA I USLUGU MIGRACIJE AKTIVNOG DIREKTORIJUMA strana 1 od 7 I Podaci o naručiocu Naručilac:

Више

Microsoft PowerPoint - GR_MbIS_12_IDEF

Microsoft PowerPoint - GR_MbIS_12_IDEF Menadžment poslovnih informacionih sistema - 12 metode modeliranja funkcija pripremila Doc. dr Gordana Radić Integfated DEFinition Definicija: je metoda (jezik) modeliranja bazirana je na kombinaciji grafike

Више

Slide 1

Slide 1 Osnove industrijskog inženjerstva Proučavanje međuzavisnosti zahvata Sinhronizacija resursa Dragoslav Slović Proučavanje međuzavisnosti zahvata Transportne staze M-S UM IM M RS ulaz - izlaz radnika IM

Више

Slide 1

Slide 1 Funkcionalno programiranje Interoperabilnost jezika Scala i Java, 2019. Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

Више

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 006/007 године разред. Електрични систем се састоји из отпорника повезаних тако

Више

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме 1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме Програмирање добијања награда омогућује ученицима да

Више

Logicko projektovanje racunarskih sistema I

Logicko projektovanje racunarskih sistema I POKAZNA VEŽBA 10 Strukture za računanje Potrebno predznanje Urađena pokazna vežba 8 Poznavanje aritmetičkih digitalnih sistema i aritmetičko-logičkih jedinica Osnovno znanje upravljačkih jedinica digitalnih

Више

Microsoft PowerPoint - Strukturni dijagrami, Gantogram - Planiranje [Compatibility Mode]

Microsoft PowerPoint - Strukturni dijagrami, Gantogram - Planiranje [Compatibility Mode] + Metode i tehnike planiranja projekta + Projektne strukture + Tehnike struktuiranja projekta Breakdow strukture strukture za dekomponovanje Matrice WBS: Project Work Breakdown Structure OBS: Organization

Више

Microsoft PowerPoint - JavaP9_2019

Microsoft PowerPoint - JavaP9_2019 Programski jezik JAVA PREDAVANJE 9 2019 www.etf.ac.me Datoteke u Javi U paketu java.io nalaze se klase za rad sa datotekama i direktorijumima. Funkcionalnost koju omogućavaju te klase sastoji se od kreiranja,

Више

Посебни услови пружања TOTAL GROUP услуге

Посебни услови пружања TOTAL GROUP услуге Posebne uslove korišćenja Dopuna tarifnih planova za korisnike usluge Dopuna (1) Posebnim uslovima za korišćenje Dopuna tarifnih planova za korisnike usluge Dopuna (u daljem tekstu: Posebni uslovi) uređuju

Више

Орт колоквијум

Орт колоквијум II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу

Више

Microsoft Word - III godina - EA - Metodi vjestacke inteligencije

Microsoft Word - III godina - EA - Metodi vjestacke inteligencije Школска година 2018/2019. Предмет Методи вјештачке интелигенције Шифра предмета 2284 Студијски програм Електроенергетика и аутоматика Циклус студија Година студија Семестар Број студената Број група за

Више

2015_k2_z12.dvi

2015_k2_z12.dvi OBLIKOVANJE I ANALIZA ALGORITAMA 2. kolokvij 27. 1. 2016. Skice rješenja prva dva zadatka 1. (20) Zadano je n poslova. Svaki posao je zadan kao vremenski interval realnih brojeva, P i = [p i,k i ],zai

Више

ZA MEDICINSKE USTANOVE INTELIGENTAN WI-FI d'.;,.. SISTEM ZA ZADOVOLJNE PACIJENTE I POSETIOCE

ZA MEDICINSKE USTANOVE INTELIGENTAN WI-FI d'.;,.. SISTEM ZA ZADOVOLJNE PACIJENTE I POSETIOCE ZA MEDICINSKE USTANOVE INTELIGENTAN WI-FI d'.;,.. SISTEM ZA ZADOVOLJNE PACIJENTE I POSETIOCE WI-FI ZA MEDICINSKE USTANOVE Brza i pouzdana WiFi mreža je danas očekivana u medicinskim ustanovama. Besplatan

Више

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике I година Математика 1 2225 20.06.2019. 9:00 04.07.2019. 9:00 све Основи електротехнике 1 2226 17.06.2019. 9:00 01.07.2019. 13:00 све Програмирање 1 2227 21.06.2019. 9:00 05.07.2019. 9:00 све Основи рачунарске

Више

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике I година Математика 1 2225 05.09.2019. 9:00 19.09.2019. 9:00 све Основи електротехнике 1 2226 02.09.2019. 9:00 16.09.2019. 9:00 све Програмирање 1 2227 06.09.2019. 9:00 20.09.2019. 9:00 све Основи рачунарске

Више

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике I година Математика 1 2225 07.02.2019. 9:00 21.02.2019. 9:00 све Основи електротехнике 1 2226 04.02.2019. 9:00 18.02.2019. 9:00 све Програмирање 1 2227 08.02.2019. 9:00 22.02.2019. 9:00 све Основи рачунарске

Више

FTDI DRAJVER uputstvo za instalaciju NEMANJINA 57 A, POŽAREVAC TEL: FAX:

FTDI DRAJVER uputstvo za instalaciju NEMANJINA 57 A, POŽAREVAC TEL: FAX: FTDI DRAJVER uputstvo za instalaciju NEMANJINA 57 A, 12000 POŽAREVAC TEL: 012 541 022 FAX: 012 541 026 WWW.AIS.D-LOGIC.RS FTDI DRAJVER uputstvo za instalaciju www.ais.d-logic.rs AIS FREE SOFTVER uputstvo

Више

Прилог аутоматској паралелизацији секвенцијалног машинског кода

Прилог аутоматској паралелизацији секвенцијалног машинског кода УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА Владимир Маринковић Прилог аутоматској паралелизацији секвенцијалног машинског кода ДОКТОРСКА ДИСЕРТАЦИЈА Ментор: проф. др Мирослав Поповић Нови Сад, 2018

Више

Основна школа Дринка Павловић Ул. Косовска 19, Београд Датум: год. Број: /18-7 У складу са чланом 63. став 3, а у вези става 2

Основна школа Дринка Павловић Ул. Косовска 19, Београд Датум: год. Број: /18-7 У складу са чланом 63. став 3, а у вези става 2 Основна школа Дринка Павловић Ул. Косовска 19, 11000 Београд Датум: 18.02.2019. год. Број: 1.1.5./18-7 У складу са чланом 63. став 3, а у вези става 2. Закона о јавним набавкама ( Сл. гласник РС бр. 124/2012,

Више

Microsoft PowerPoint - X i XI termin - odredjivanje redosleda poslova [Compatibility Mode]

Microsoft PowerPoint - X i XI termin - odredjivanje redosleda poslova [Compatibility Mode] ODREĐIVANJE REDOSLEDA POSLOVA DŽONSONOV METOD P očetak k k k m in t i1 m a x t i2 ili m in t i3 m a x t i2 R e š e n je tre b a tra žiti n a d ru g i n ač in S vođenje p ro b le m a n x3 n a fik tiv a

Више