Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki

Velikost: px
Začni prikazovanje s strani:

Download "Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki"

Transkripcija

1 Predavatelj: izr. prof. Uroš Lotrič Asistent: Davor Sluga

2 Tesno sklopljeni večprocesorki sistemi Več CPE povezanih preko vodila s skupim pomnilnikom Komunikacija poteka preko pomnilnika Do pomnilnika se dostopa izključno s pomočjo ukazov LOAD/STORE

3 Tesno sklopljeni večprocesorki sistemi Na takih sistemih lahko hkrati izvajamo več ločenih procesov Proces je v svoji osnovi izvajajoči se program Procese zna razvrščati in preklapljati OS OS določi kateri proces se bo v nekem trenutku izvajal in na kateri CPE POMEMBNO: vsak proces ima svoj ločen naslovni prostor sestavljen iz sklada, kopice, kode, statičnih spremenljivk Procesi med seboj lahko komunicirajo preko skupnega pomnilnika (shared memory segment), vendar je preklapljanje med procesi časovno in prostorsko drago Raje uporabimo niti

4 Niti Niti so sestavni deli nekega procesa Vsaki niti pripada lasten programski števec (PC), lasten sklad in lasten kazalec na sklad (SP), vendar si vse niti v procesu delijo isti kodni segment, isto kopico in statične podatke Niti se izvajajo v istem naslovnem prostoru, zato je komunikacija med njimi preko pomnilnika precelj bolj enostavna Moderni OS znajo razvrščati in preklapljati posamezne niti precej manj časovne in prostorske režije, kot pri procesih

5 Niti - procesi Proces: Nit:

6 Pthreads: POSIX Threads Pthreads je knjižnica funkcij jezika C, namenjena večnitnemu programiranju po standardu POSIX IEEE PORTABLE Operating System Interface (POSIX), standard Knjižnica vsebuje 60+ funkcij upravljanje z nitmi: ustvari, zaključi,... delo s ključavnicami... V programih moramo vključiti zaglavje pthread.h Prevedeno kodo moramo povezati s knjižnico pthread

7 Pthreads poimenovanje Podatkovni tipi: pthread_[object]_t Funkcije: pthread[_object]_action Konstante/Makroji: PTHREAD_namen Primeri: pthread_t : podatkovni tip nit pthread_create() : funkcija za ustvarjanje niti pthread_mutex_t : podatkovni tip ključavnica pthread_mutex_lock() : funkcija za zaklepanje ključavnice PTHREAD_MUTEX_INITIALIZER

8 Hello world #include <stdio.h> #include <pthread.h> #define NUM 100 void *print_msg(void *); main() { pthread_t t1, t2; /* dve niti*/ pthread_create(&t1, NULL, print_msg, (void *)"hello"); pthread_create(&t2, NULL, print_msg, (void *)"world"); } pthread_join(t1, NULL); pthread_join(t2, NULL); void *print_msg(void *message){ char* pstring = (char*) message; int i; } for (i = 0; i < NUM; i++) { printf("%s ", pstring); }

9 phread_create, pthread_join

10 pthread_create() NAMEN INCLUDE Ustvari novo nit pthread_create #include <pthread.h> UPORABA int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*func) (void *) void *arg); ARGUMENTI thread kazalec na spremenljivko tipa pthread_t attr kazalec na spremenljivko tipa pthread_attr_t ali NULL func funkcija, ki jo bo izvedla nit arg argumenti funkcije func VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija ustvari novo nit in znotraj ustvarjene niti pokliče funkcijo func z argumenti arg.

11 pthread_join() NAMEN INCLUDE Čaka, da se nit zaključi pthread_join #include <pthread.h> UPORABA int pthread_join(pthread_t *thread, void **retval); ARGUMENTI thread kazalec na spremenljivko tipa pthread_t retval kazalec na spremenljivko, ki sprejme povratno vrednost iz niti VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija povzroči, da klicoča nit čaka dokler se nit thread ne zaključi. Šele nato klicoča nit nadaljuje z izvajanjem.

12 errcode? The Ten Commandments for C Programmers (Henry Spencer) 6. zapoved: If a function be advertised to return an error code in the event of difficulties, thou shalt check for that code, yea, even though the checks triple the size of thy code and produce aches in thy typing fingers, for if thou thinkest ``it cannot happen to me'', the gods shall surely punish thee for thy arrogance.

13 errcode? #define errorexit(errcode, errstr) \ fprintf(stderr, "%s: &d\n", errstr, errcode); \ exit(1);

14 Hello world 2 #include <stdlib.h> #include <stdio.h> #include <pthread.h> #define NUM 5 #define errorexit(errcode, errstr) \ fprintf(stderr, "%s: &d\n", errstr, errcode); \ exit(1); void *print_msg(void *); int main(int argc, char* argv[]) { int errcode; pthread_t t1, t2; /* two threads*/ //skusaj ustvariti niti-ob napaki vpisi kodo napake v errcode, izpisi in se vrni: if (errcode = pthread_create(&t1, NULL, print_msg, (void *)"hello")) { errorexit(errcode, "pthread_create"); } if (errcode=pthread_create(&t2, NULL, print_msg, (void *)"world")) { errorexit(errcode, "pthread_create"); } // pocakaj, da se obe niti koncata: if (errcode = pthread_join(t1, NULL)) { errorexit(errcode, "pthread_join"); } if (errcode = pthread_join(t2, NULL)) { errorexit(errcode, "pthread_join"); } } // uspesno zakljuci proces: exit(0);

15 pthread_self() Vrne identifikator klicoče niti kadar koli med izvajanjem nit lahko ugotovi kdo je zelo uporabno, kadar želimo naslednji tok programa znotraj niti: Če sem nit X, delaj to, sicer delaj nekaj drugega pazi: identifikator niti je tipa pthread_t! Uporaba: pthread_t pthread_self(void)

16 O poteku izvajanja Ko glavna nit ustvari novo nit, nadaljuje z izvajanjem svoje programske kode Pravkar ustvarjena nit bo začela z izvajanjem podane funkcije POZOR: če se glavna nit predčasno zaključi, se prekine izvajanje vseh niti, ki jih je sama ustvarila! Pomnilnik je skupen za vse niti v istem procesu: Na ta način si lahko vse niti v procesu izmenjujejo podatke Katera koli nit lahko kadar koli piše v skupni pomnilnik in bere iz skupnega pomnilnika, kar lahko povzroči težave Na nek način bomo morali sinhronizirati dostope do skupnih podatkov

17 Prenos argumentov v funkcijo niti Funkcija, ki jo nit izvede, sprejme le en argument po referenci Več argumentov prenašamo s pomočjo struktur: struct params { double* parray1; // kazalec na del vektorja 1 double* parray2; // kazalec na del vektorja 2 int myid; // ID posamezne niti }; struct params args;... pthread_create(&threads[i], NULL, delaj_nekaj, (void *) &args);

18 Prenos argumentov v funkcijo niti V funkciji, ki jo izvaja nit, moramo opraviti cast argumentov: void *delaj_nekaj (void *arg) { } struct params *argumenti;... // CAST argumentov: argumenti = (struct params *) arg; // dostop do argumentov: argumenti ->...

19 O poteku izvajanja Ne pozabimo v glavni nit počakati, da se vse ustvarjene zaključijo! Najbolj pogosta napaka začetnikov Če pozabimo poklicati pthread_join(), bo verjetno glavna nit zaključila z izvajanjem svoje kode še preden se bodo zaključile vse ustvarjene niti le te se bodo nemudoma prekinile Ko ustvarjamo več niti, moramo paziti, da ima vsaka nit svoj identifikator tako bomo lahko za vsako nit posebej klicali pthread_join()

20 Medsebojna komunikacija Vse niti nekega procesa se izvajajo v skupnem naslovnem prostoru. Delijo si torej podatkovni(e) segment(e) nekega procesa. Vsaka nit vidi vse globalne spremenljivke. Lokalne spremenljivke so med nitmi nevidne, saj vsaka nit uporalja lasten skladovni segment. Komunikacija med nitmi torej lahko poteka preko spremenljivk v skupnem naslovnem prostoru. To pomeni, da lahko dve ali več niti naslavlja in dostopa do iste pomnilniške besede dostop je lahko bralni in/ali pisalni.

21 Medsebojna komunikacija - zgled Predpostavimo, da želimo v neki preprosti iteraciji implementirati števec program naj čim hitreje prišteje do N Ni pomembno, kje in zakaj bi to potrebovali, naj nam služi le kot zgled Namesto, da le ena nit povečuje vrednost števca do N, naj to počne NTHREADS niti Na tem zgledu bomo spoznali osnovne probleme pri uporabi skupnih spremenljivk in njihove rešitve

22 Zgled rešitev 1 Ustvarimo NTHREADS niti in vsaka poveča vrednost števca za 1 Vsaka nit izvede funkcijo: void *stej(void *); // funkcija, ki jo izvedejo niti Vsak nit dobi kot argument naslednjo strukturo: struct params { int niteracij; int myid; }; // kolikokrat steje posamezna nit // ID posamezne niti

23 Zgled rešitev 1 int main(int argc, char* argv[]) { int i; int errcode; struct params args[nthreads]; pthread_t threads[nthreads]; // NTHREADS argumentov funkcij // NTHREADS niti // inicializiraj stevec: counter = 0; //skusaj ustvariti niti - ob napaki vpisi kodo napake v errcode, izpisi in se vrni: for (i = 0; i < NTHREADS; i++) { // init parametrov za vsako nit: args[i].myid = i; args[i].niteracij = N / NTHREADS; } if (errcode = pthread_create(&threads[i], NULL, stej, (void *) &args[i])) { errorexit(errcode, "pthread_create"); } // pocakaj, da se vse niti koncajo: for (i = 0; i < NTHREADS; i++) { if (errcode = pthread_join(threads[i], NULL)) { errorexit(errcode, "pthread_join"); } } printf("stevec = %d\n", counter); } // uspesno zakljuci proces: exit(0);

24 Zgled rešitev 1 Funkcija za povečevanje števca: void *stej(void *args){ struct params *arguments = (struct params *) args; // cast argumentov // nazaj v pravi tip int j; int myid; int niteracij; myid = arguments->myid; niteracij = arguments->niteracij; } // stejemo... for (j = 0; j<niteracij; j++) { counter = counter + 1; //namenoma pustimo taksen zapis: vsaka nit mora //spremenljivko counter prebrati, pristeti 1 in //zapisati nazaj } PROBLEM: spremenljivka counter je globalna ena nit prebere vrednost v register in ji prišteje ena, druga ravno takrat prebere to vrednost iz pomnilnika, prva nit pa shrani rezultat nazaj vpomnilnik. Katero vrednost bo prebrala in povečala druga nit?!?

25 Sinhronizacija dostopov Dostope do neke skupne spremenljivke moramo na nek način sinhronizirati Problematični so predvsem dostopi tipa beri, spremeni, shrani. Taki dostopi lahko pripeljejo do TVEGANEGA STANJA (ang. race condition), saj rezultat ni jasen v naprej Rešitev tega problema predstavljajo KLJUČAVNICE Ključavnice omogočijo izvajanje določenega zaporedja ukazov le eni niti ostale morajo čakati Ena nit zaklene dostop do določenega dela programske kode ostalim nitim Programski kodi, ki jo zaklepamo rečemo KRITIČNA SEKCIJA

26 Ključavnice (medsebojno izključevanje) Ključavnica je ena pomnilniška beseda katere vsebina je binarna vrednost : ZAKLENJENO/ODKLENJENO Vsaka nit pred vstopom v kritično sekcijo preveri stanje ključavnice. Če je odklenjena, jo zaklene in vstopi v kritično sekcijo. Če je zaklenjena, čaka pred kritično sekcijo (v zanki) dokler se ne odklene Po izstopu iz kritične sekcije mora nit odkleniti ključavnico, da omogoči vstop drugim nitkam

27 Ključavnice (medsebojno izključevanje) Kako zaklenemo ključavnico? Nit mora vrednost ključavnice prebrati, spremeniti in shraniti nazaj Med branjem in shranjevanjem nazaj lahko še ena ali več niti prebere ODKLENJENO Zato morajo biti bralno-pisalni dostopi po vodilu do ključavnice neprekinjeni! Ko se začne bralni dostop do ključavnice, moramo onemogočiti vse druge prenose po vodilu, dokler se ne zaključi še pisalni dostop do ključavnice Procesorji imajo signal LOCK, ki se uporabi pri prenosih po vodilu

28 Ključavnice (medsebojno izključevanje) Kako zaklenemo ključavnico? Procesorji imajo posebne ukaze, ki aktivirajo signal LOCK To niso navadni ukazi za dostop do pomnilnika Uporabljajo se atomski ukazi (npr. test-and-set, fetch-and-add, compare-and-swap) ali par ukazov LL-SC (load linked, store conditional)

29 Ključavnice (medsebojno izključevanje) Medsebojno izključevanje (zaklepanje) Atomski ukaz naredi dve stvari vsebino pomnilniške lokacije prebere v register na pomnilniško lokacijo vpiše potrditev branja med tem na vodilu ni drugih operacij Ukaz Test-and-Set (TAS) Prebere vrednost pomnilniške lokacije če je prebrana vrednost 0 (odklenjeno), na lokacijo zapiše R (zaklenjeno) Primer: poskus: TAS R, L JNZ poskus kritično: MOV L, 0 ; čakaj, dokler ni odklenjeno; ko je, zakleni ; izvedi kritične operacije ; odkleni

30 Ključavnice (medsebojno izključevanje) Medsebojno izključevanje (zaklepanje) Pentium Nekateri ukazi zbirnika imajo predpono LOCK lock add $2, x ; prištej 2 v x Ukaz naredi dve operaciji na pomnilniku: branje stare in pisanje nove vrednosti Zaklene vodilo Večprocesorski sistemi: protokoli kot je MESI ali vohunjenje na vodilu (samo določeni registri)

31 Ključavnice v pthreads Pthreads omogoča uporabo enostavnih ključavnic za medsebojno zaklepanje Uporaba ključavnic v Pthreads: Mutex = Mutual Exclusion = medsebojno izključevanje Deklaracija ključavnice: pthread_mutex_t Inicijalizacija ključavnice: pthread_mutex_init() Zaklepanje: pthread_mutex_lock() Odklepanje: pthread_mutex_unlock() Sproščanje pomnilnika namenjenaga ključavnici: pthread_mutex_destroy()

32 pthread_mutex_lock() NAMEN INCLUDE UPORABA Zakleni ključavnico pthread_mutex_lock #include <pthread.h> int pthread_mutex_lock(pthread_mutex_t *lock); ARGUMENTI lock kazalec na ključavnico VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija zaklene ključavnico lock. Če je ključavnica odklenjena, jo zaklene in se vrne. Če je ključavnica lock že zaklenjena, potem se nit ustavi in čaka na odklenjeno ključavnico.

33 pthread_mutex_trylock() NAMEN INCLUDE UPORABA Zakleni ključavnico pthread_mutex_trylock #include <pthread.h> int pthread_mutex_lock(pthread_mutex_t *lock); ARGUMENTI lock kazalec na ključavnico VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija poskuša zakleniti ključavnico lock. Če je ključavnica odklenjena, jo zaklene in se vrne. Če je ključavnica lock že zaklenjena, potem se klic funkcije zaključi in klicoča nit nadaljuje z izvajanjem.

34 pthread_mutex_unlock() NAMEN INCLUDE UPORABA Odkleni ključavnico pthread_mutex_unlock #include <pthread.h> int pthread_mutex_unlock(pthread_mutex_t *lock); ARGUMENTI lock kazalec na ključavnico VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija odklene ključavnico lock. Če ostale niti čakajo na odklenjeno ključavnico, jo bo verjetno ena izmed njih takoj zatem zaklenila. Če ključavnice ne odklenemo (pozaba, napaka,...), se bodo vse niti, ki čakajo na odklenjeno ključavnico trajno ustavile... Lepa praksa: samo nit, ki je zaklenila ključavnico lock jo lahko odklene!

35 pthread_mutex_init() NAMEN INCLUDE UPORABA Inicializira ključavnico pthread_mutex_init #include <pthread.h> int pthread_mutex_init(pthread_mutex_t *lock const pthread_mutexattr_t *attr); ARGUMENTI lock kazalec na ključavnico attr atributi ključavnice; če je NULL, bodo prevzeti VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija inicializira ključavnico lock z atributi attr. Če je attr NULL, potem se ključavnico inicializira s prevzetimi vrednostimi in je po inicializaciji odklenjena. Inicializacijo ključavnice lahko opravimo na dva načina: statično (ob deklaraciji): pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; dinamično: pthread_mutex_init(&lock, NULL);

36 pthread_mutex_destroy() NAMEN INCLUDE UPORABA Odstrani ključavnico pthread_mutex_unlock #include <pthread.h> int pthread_mutex_destroy(pthread_mutex_t *lock); ARGUMENTI lock kazalec na ključavnico VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija odstrani ključavnico na katero kaže lock. Sprosti vire, ki jih uporablja ključavnica, ne pa pomnilniškega prostora same strukture. Isto ključavnico je zato mogoče spet uporabiti, ne da bi jo ustvarili. Pred ponovno uporabo jo moramo le inicializirati. Odstranjevanje zaklenjene ključavnice ni varno!!!

37 Zgled rešitev s ključavnico Vrimo se k našemu števcu Dostop do spremenljivke counter moramo sinhronizirati s ključavnico, ki jo najprej deklariramo in inicializiramo (ključavnica mora biti globalna!): pthread_mutex_t counter_lock = PTHREAD_MUTEX_INITIALIZER; Zaklenemo kritično sekcijo: //ZAKLENI DOSTOP DO SKUPNE SPREMENLJIVKE: if (errcode = pthread_mutex_lock(&counter_lock)){ errorexit(errcode, "pthread_mutex_lock"); } counter = counter + 1; // ODKLENI: if (errcode = pthread_mutex_unlock(&counter_lock)){ errorexit(errcode, "pthread_mutex_unlock"); }

38 Smrtni objem Smrtni objem je pojav, ko dve (ali več) niti skušata zakleniti dve kritični sekciji, vendar to počneta v različnem vrstnem redu. Posledica je t.i. smrtni objem, ko se dve niti ujameta v neskončnem čaklanju na prosto odklenjeno ključavnico Najboljši način, da se izognemo smrtnemu objemu je, da vse niti ključavnice zaklepajo v enakem vrstnem redu! Uporabimo t.i. hierarhijo ključavnic vse ključavnice številčimo v navideznem zaporedju Hierarhija ključavnic: posamezna nit naj nikoli ne skuša zakleniti ključavnice n, če ima zaklejeno ključavnico m, pri čemer je n<m!

39 Smrtni objem - zgled pthread_mutex_lock(&m1);... Nit 1 Nit 2 pthread_mutex_lock(&m2);... pthread_mutex_lock(&m2); pthread_mutex_unlock(&m2);... pthread_mutex_unlock(&m1); pthread_mutex_lock(&m1); pthread_mutex_unlock(&m1);... pthread_mutex_unlock(&m2); Možen scenarij: Nit 1 zaklene ključavnico m1. Preden ji uspe zakleniti še ključavnico m2, le to zaklene Nit 2. Nit 2 sedaj čaka, da se odklene ključavnica m1, vendar jo Nit 1 ne bo odklenila, dokler se ne odklene ključavnica m2 SMRTNI OBJEM!!!!

40 Pogojno zaklepanje Včasih se ne moremo držati hierarhije niti. Takrat se poslužimo pogojnega zaklepanja: Nit 1 Nit 2 pthread_mutex_lock(&m1);... pthread_mutex_lock(&m2); pthread_mutex_unlock(&m2);... pthread_mutex_unlock(&m1); while(1){ pthread_mutex_lock(&m2); // previdno poskusi zakleniti m1: if(pthread_mutex_trylock(&m1)==0) { // uspelo mi je zakleniti... break; // prekini while zanko } // Ni mi uspelo zakleniti m1, zato sprosti // m2 in poskusi vse se enkrat: pthread_mutex_unlock(&m2); } // tu se znajdem, ce mi je uspelo zakleniti obe. // in sprocesirati kriticno sekcijo. Zato ju // moram odkleniti: /*kriticna sekcija*/ pthread_mutex_unlock(&m1); pthread_mutex_unlock(&m2);

41 Ali res vedno potrebujem ključavnice? Ključavnice imajo veliko pomankljivost: nenehno zaklepanje kritičnih sekcij ZELO upočasni izvajanje kode Kritične sekcije naj bodo čim krajše! Zato, da jo posamezna nit čimprej zapusti in omogoči ostalim nitim nadaljevanje izvajanja Premislimo ali res potrebujemo kritično sekcijo in ključavnice Problem se velikokrat da rešiti z uporabo lastnih spremenljivk

42 Ali res vedno potrebujem ključavnice? V našem primeru štetja bi vsaki niti dodelili lasten števec Vsaka nit šteje v določenem obsegu in skrani prešteto vrednost v lasten lokalni števec Glavna nit main() počaka, da se vse niti zaključijo in nato sešteje vrednosti vseh lastnih števcev

43 Zgled rešitev z lastnimi spremenljivkami Vrimo se k našemu števcu Vsaka nit naj šteje v lasten števec in ga vrne klicoči niti. Zato ga damo v strukturo, s katero v nit prenašamo argumente: struct params { int niteracij; int myid; int mycounter; }; // kolikokrat steje posamezna nit // ID posamezne niti // lasten stevec vsake niti

44 Zgled rešitev z lastnimi spremenljivkami V funkciji štetja vsaka nit povečuje le lasten števec v podanem obsegu. Zato ni potrebe po zaklepanju: void *stej(void *args){ struct params *arguments = (struct params *) args; // cast int j; int myid; int niteracij; int errcode; myid = arguments->myid; niteracij = arguments->niteracij; } // stejemo... for (j = 0; j<niteracij; j++) { // vsaka nit pise neposredno v podano strukturo - na ta nacin se tudi // vrne vrednost stetja iz posamezne niti: arguments->mycounter = arguments->mycounter + 1; }

45 Zgled rešitev z lastnimi spremenljivkami int main(int argc, char* argv[]) { int i; int errcode; struct params args[nthreads]; pthread_t threads[nthreads]; // NTHREADS argumentov funkcij // NTHREADS niti // inicializiraj stevec: counter = 0; //skusaj ustvariti niti - ob napaki vpisi kodo napake v errcode, izpisi in se vrni: for (i = 0; i < NTHREADS; i++) { // init parametrov za vsako nit: args[i].myid = i; args[i].niteracij = N / NTHREADS; args[i].mycounter = 0; if (errcode = pthread_create(&threads[i], NULL, stej, (void *) &args[i])) { errorexit(errcode, "pthread_create"); } } } // pocakaj, da se vse niti koncajo... for (i = 0; i < NTHREADS; i++) { if (errcode = pthread_join(threads[i], NULL)) { errorexit(errcode, "pthread_join"); } } //...in nato sestej vse lokalne vrednosti stevcev: for (i = 0; i < NTHREADS; i++) { counter += args[i].mycounter; } // uspesno zakljuci proces: exit(0);

46 Nekaj problemov 1. Skalarni produkt Problem Imamo dva vektorja, zmnožiti moramo soležne elemente in zmnožke sešteti Ideje: Brez zaklepanja niti Zaklepanje z mutexom Neodvisno reševanje delov problema v posameznih nitih in seštevanje delnih rezultatov

47 Nekaj problemov 2. Pet filozofov, pet krožnikov špagetov in pet vilic Problem Za okroglo mizo zboruje pet filozofov, ki v več ciklih razmišljajo, so lačni, jejo, potem spet razmišljajo,... Jedo špagete, ki jih ima vsak na svojem krožniku. Pri jedi potrebuje vsak dvoje vilice, ki pa jih imajo skupaj na voljo samo pet! Uporabijo lahko samo vilice na svoji levi in vilice na svoji desni. Ideje Vilice opišemo s ključavnicami Ali lahko pride do smrtnega objema? Kako ga preprečiti?

48 Nekaj problemov 3. Pisatelji in bralci Problem: Imamo več bralcev, ki berejo tisto, kar napišejo pisatelji. Med pisanjem enega pisatelja ne sme pisati noben drug pisatelj. Noben pisatelj ne sme pisati med branjem. Ideja: Izvesti je potrebno učinkovit sistem zaklepanja s ključavnicami

49 Nekaj problemov 4. Izdelovalec odjemalec Problem Zagotoviti je treba, da odjemalec pobira izdelke iz skladišča v enakem vrstnem redu kot jih izdelovalec postavlja vanj. Izdelovalec ne sme dodajati izdelkov, če je skladišče polno, odjemalec pa jih ne sme jemati, če je skladišče prazno. Vzemimo, da je v skladišču eno samo mesto. Ideje: Brez zaklepanja niti Zaklepanje z enim mutexom Uvedemo spremenljivko, ki skrbi za določanje vrstnega reda izdelovalca in odjemalca Dve ključavnici narejeni z mutexi

50 Semaforji Standard predvideva, da ključavnico odklene tista nit, ki jo tudi zaklene če ključavnico odklepa druga nit, obnašanje ni definirano če nit odklepa že odklenjeno ključavnico, obnašanje ni definirano Bolj splošni od niti so semaforji Semaforji niso last niti ali procesov odklepanje/zaklepanje lahko izvajajo različne niti in celo različni procesi Pri medprocesorski komunikaciji je semaforje potrebno poimenovati (to bomo spustili) za razliko od ključavnic (binarne vrednosti odklenjeno/zaklenjeno) so semaforji števni

51 Semaforji Zgodovina Dijkstra, nizozemska, 1968 Semafor je podatkovna struktura, ki vključuje celoštevilčno spremenljivko s, nad spremenljivko s sta definirani dve atomski operaciji poskusi vstopiti (če s > 0 vstop in s s 1), sprosti (s s + 1). po atomski operaciji sprosti nit obvesti ostale nit spremenljivka s je inicializirana na neko začetno vrednost Semafor, ki lahko zavzame samo vrednosti 0 in 1 se imenuje binarni semafor bolj splošen od ključavnic (prejšnja stran)

52 Semaforji Semaforji niso del knjižnice pthreads, gre za njeno razširitev v pthreads so realizirani s ključavnicami in pogojnimi spremenljivkami (o teh kasneje) Zaglavje #include <semaphore.h> Pomembne funkcije

53 sem_init() NAMEN INCLUDE UPORABA Inicializira semafor sem_init #include <semaphore.h> int sem_init(sem_t * semaphore_p, int shared, unsigned initial_value); ARGUMENTI semaphore_p kazalec na semafor shared 0 semafor je namenjen samo enemu procesu, običajno v pthreads, 1 semafor se uporablja za komunikacijo med procesi initial_value začena vrednost semaforja VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija inicializira semafor semaphore_p

54 sem_wait() NAMEN INCLUDE UPORABA Inicializira semafor sem_wait #include <semaphore.h> int sem_wait(sem_t * semaphore_p); ARGUMENTI semaphore_p kazalec na semafor VRNE 0, če je klic uspel errcode, če klic ni uspel Če je vrednost semaforja več od 0, ga funkcija zmanjša. V primeru, da je semafor 0, se bo nit, se bo izvajanje niti zaustavilo.

55 sem_post() NAMEN INCLUDE UPORABA Inicializira semafor sem_post #include <semaphore.h> int sem_post(sem_t * semaphore_p); ARGUMENTI semaphore_p kazalec na semafor VRNE 0, če je klic uspel errcode, če klic ni uspel Ob klicu sem_post se vrednost semaforja poveča za 1 in ena od niti, ki so se ustavile pri sem_wait, lahhko nadaljuje z izvajanjem.

56 sem_destroy() NAMEN INCLUDE UPORABA Inicializira semafor Sem_init #include <semaphore.h> int sem_init(sem_t * semaphore_p); ARGUMENTI semaphore_p kazalec na semafor VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija sprosti vire, ki jih uporablja semafor na katerega kaže kazalec semaphore_p. Dejansko ne sprosti pomnilniškega prostora za strukturo semafor, zato moramo pred ponovno uporabo semafor le na novo inicializirati.

57 Nekaj problemov 4. Izdelovalec odjemalec Nepravilno z nitmi skladišče velikosti 1 in več Pravilno s semaforji skladišče velikosti 1 in več zaklepanje pri povečevanju oznake izdelka čez vse semaforje samo pri spreminjanju oznake več izdelovalcev in odjemalcev

58 Problem: prepreka V mnogih aplikacijah se morajo vse niti občasno počakati in potem skupaj nadaljevati delo Rešitev s ključavnicami trošimo CPU cikle med čakanjem v zanki Upočasnjeno delovanje, če je niti več kot procesorjev pri naslednji prepreki ne moremo uporabiti iste spremenljivke Rešitev s semaforji nimamo več čakanja v zanki še vedno imamo težave z uporabo iste spremenljivke

59 Pogojne spremenljivke Uporabljamo jih za zaustavitev in ponovni zagon niti v povezavi s ključavnicami Pogojna signalizacija Vedno v povezavi s ključavnicami Zaglavje: #include <pthreads.h> Spremenljivka je tipa pthread_cond_t Operacije: wait signal broadcast

60 ptread_cond_init() NAMEN INCLUDE UPORABA Pthread_cond_init Inicializira pogojno spremenljivko #include <thread.h> int pthread_cond_init(pthread_cond_t *condvar_p, pthread_condattr *attr); ARGUMENTI condvar_p kazalec na pogojno spremenljivko attr kazalec na atribute s katerimi inicializiramo spremenljivko VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija inicializira pogojno spremenljivko na katero kaže kazalec condvar_p.

61 ptread_cond_destroy() NAMEN INCLUDE UPORABA pthread_cond_destroy Ostrani pogojno spremenljivko #include <thread.h> int pthread_cond_destroy(pthread_cond_t *condvar_p); ARGUMENTI condvar_p kazalec na pogojno spremenljivko VRNE 0, če je klic uspel errcode, če klic ni uspel Funkcija sprosti vire, ki jih uporablja pogojna spremenljivka, na katero kaže kazalec condvar_p. Pred ponovno uporabo je treba spremenljivko samo inicializirati.

62 ptread_cond_wait() NAMEN INCLUDE UPORABA pthread_cond_wait ustavi izvajanje niti dokler ne dobi signala za nadaljevanje #include <thread.h> int pthread_cond_wait(pthread_cond_t *condvar_p, pthread_mutex *mutex_p); ARGUMENTI condvar_p kazalec na pogojno spremenljivko mutex_p kazalec na ključavnico VRNE 0, če je klic uspel errcode, če klic ni uspel Nit čaka v tej funkciji, dokler pogojna spremenljivka ne dobi signala za nadaljevanje. Nit se pri tem zaustavi in postavi v vrsto zaklenjenih niti (na zadnje mesto) Za uporabo funkcije je potrebno imeti zaklenjeno ključavnico; ko se nit zaustavi, odklene ključavnico, da druge niti lahko delajo naprej Ko pogojna spremenljivka prejme signal, se nit zbudi in ključavnica zaklene.

63 ptread_cond_signal() NAMEN INCLUDE UPORABA pthread_cond_signal Pošlje signal za nadaljevanje za eno nit #include <thread.h> int pthread_cond_signal(pthread_cond_t *condvar_p); ARGUMENTI condvar_p kazalec na pogojno spremenljivko VRNE 0, če je klic uspel errcode, če klic ni uspel Pogojni spremenljivki pošlje signal za nadaljevanje. Prva nit, ki čaka v vrsti pogojne spremenljivke, lahko nadaljuje svoje delo.

64 ptread_cond_broadcast() NAMEN INCLUDE UPORABA pthread_cond_broadcast Pošlje signal za nadaljevanje vsem nitim #include <thread.h> int pthread_cond_broadcast(pthread_cond_t *condvar_p); ARGUMENTI condvar_p kazalec na pogojno spremenljivko VRNE 0, če je klic uspel errcode, če klic ni uspel Pogojni spremenljivki pošlje signal, da lahko vse čakajoče niti nadaljujejo.

65 Problem: prepreka Rešitev s ključavnicami in pogojnimi spremenljivkami

66 Problem: semafor Semafor se da narediti s ključavnicami in pogojnimi spremenljivkami typedef struct Sem_t { int value; pthread_cond_t cond; pthread_mutex_t lock; } Sem_t; void Sem_init(Sem_t *s, int value) { s->value = value; pthread_cond_init(&s->cond, NULL); pthread_mutex_init(&s->lock, NILL); } void Sem_wait(Sem_t *s) { pthread_mutex_lock(&s->lock); while (s->value <= 0); pthread_cond_wait(&s->cond, &s->lock); s->value--; pthread_mutex_unlock(&s->lock); } void Sem_post(Sem_t *s) { pthread_mutex_lock(&s->lock); s->value++; pthread_cond_signal(&s->cond); pthread_mutex_unlock(&s->lock); }

67 Varno delo z nitmi ang. thread-safe Nekatere funkcije v C-ju si med klici zapomnijo vrednost (uporabijo spremenljivko deklarirano kot static) Spremenljivke deklarirane kot static so shranjene v deljenem pomnilniku Možne napake, če funkcijo kličejo različne niti Funkcije, ki niso ustrezne za delo z nitmi, imajo običajno tudi izboljšane različice Primer: strtok funkcija, ki iz niza izlušči ključne besede (nizi od separatorja do separatorja) strtok(char *string, const char *separators); strtok_r(char *string, const char *separators, char **saveptr_p); Novi argument nadomešča statično spremenljivko Na funkcije, za katere se je izkazale, da niso varne za delo z nitmi, prevajalniki velikokrat opozorijo (ang. deprecated)

Diapozitiv 1

Diapozitiv 1 9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Slide 1

Slide 1 Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi

Prikaži več

ARS1

ARS1 Nepredznačena in predznačena cela števila Dvojiški zapis Nepredznačeno Predznačeno 0000 0 0 0001 1 1 0010 2 2 0011 3 3 Pri odštevanju je stanje C obratno (posebnost ARM)! - če ne prekoračimo 0 => C=1 -

Prikaži več

Microsoft Word - vaje2_ora.doc

Microsoft Word - vaje2_ora.doc II UKAZI 1. Napišite zaporedje ukazov, ki vrednost enobajtne spremenljivke STEV1 prepiše v enobajtno spremenljivko STEV2. Nalogo rešite z neposrednim naslavljanjem (zaporedje lahko vsebuje le 2 ukaza v

Prikaži več

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki Predavatelj: izr. prof. Uroš Lotrič Asistent: Davor Sluga Več-računalniški sistemi Za razliko od sistemov z deljenim pomnilnikom so tu pomnilniki nepovezani Vsak procesor ima neposreden dostop samo do

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Programirljivi Digitalni Sistemi Digitalni sistem Digitalni sistemi na integriranem vezju Digitalni sistem

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - UP_Lekcija04_2014.docx 4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in

Prikaži več

Microsoft PowerPoint - Objekti_gradnja.ppt

Microsoft PowerPoint - Objekti_gradnja.ppt Naredimo razred Katera so stanja/lastnosti Kaj hočemo o objektih te vrste vedeti Kakšne lastnosti imajo Katere so metode Kakšno je znanje objektov Na katere ukaze se odzovejo Način predstavitve lastnosti

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - avd_vaje_ars1_1.doc ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov

Prikaži več

DES11_realno

DES11_realno Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Delovanje realnega vezja Omejitve modela vezja 1 Model v VHDLu je poenostavljeno

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Procesorji Model računalnika, mikrokrmilnik CPE = mikrosekvenčnik + podatkovna

Prikaži več

Strojna oprema

Strojna oprema Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT

Prikaži več

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajanje prekinitvene rutine Dogodek GLAVNI PROGRAM (MAIN-OB1)

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Vmesniki Vodila, vzporedni (paralelni) vmesniki Vmesniki in vodila naprava 1

Prikaži več

RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko

RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko andrej.taranenko@uni-mb.si kabinet: 0/95 govorilne ure: http://matematika-racunalnistvo.fnm.uni-mb.si/

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površe, pri tem pa zbrati čim več točk. Podobno igro najdemo tudi v knjigi Scratch (Lajovic, 2011), vendar

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani matej.kristan@fe.uni-lj.si Česa smo se naučili

Prikaži več

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

Spoznajmo PowerPoint 2013

Spoznajmo PowerPoint 2013 Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji

Prikaži več

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

Microsoft PowerPoint - Java_spremenljivke

Microsoft PowerPoint - Java_spremenljivke Java Spremenljivke, prireditveni stavek Spremenljivke Prostor, kjer hranimo vrednosti Ime Znak, števka, _ Presledkov v imenu ne sme biti! Tip spremenljivke int (cela števila) Vse spremenljivke napovemo

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

Diapozitiv 1

Diapozitiv 1 Pogojni stavek Pogojni (if) stavek Tip bool Primerjanje Uranič Srečo If stavek Vsi dosedanji programi so se izvajali zaporedoma, ni bilo nobenih vejitev Program razvejimo na osnovi odločitev pogojnega

Prikaži več

Microsoft PowerPoint - Java-rekurzija.ppt

Microsoft PowerPoint - Java-rekurzija.ppt Pesmica Živel je mož, imel je psa, lepo ga je učil. Nekoč ukradel mu je kos mesa, zato ga je ubil. Postavil mu je spomenik in nanj napisal: Živel je mož, imel je psa, lepo ga je učil. Nekoč ukradel mu

Prikaži več

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto

Prikaži več

Microsoft Word - M _mod..docx

Microsoft Word - M _mod..docx Državni izpitni center *M17278113* JESENSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Ponedeljek, 28. avgust 2017 SPLOŠNA MATURA Državni izpitni center Vse pravice pridržane. M172-781-1-3 2 IZPITNA POLA 1 1

Prikaži več

_ _BDA_CapitalSports_CS-Timer.indd

_ _BDA_CapitalSports_CS-Timer.indd 10028194 10029391 CS Timer 6 Spoštovani kupci, Čestitamo Vam za nakup. Prosimo, da skrbno preberete navodilo in da skrbite za nasvete o namestitvi in uporabi, da bi ste izognili tehničnim poškodbam. Za

Prikaži več

Podatkovni model ER

Podatkovni model ER Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Vgrajeni sistemi Uvod & ponovitev C

Vgrajeni sistemi Uvod & ponovitev C Analogno-digitalna pretvorba Vgrajeni sistemi 2015/16 Rok Češnovar STM32F4 in ADC imamo 3 ADC naprave (ADC1, ADC2, ADC3) vsaka naprava ima 16 vhodov 8 vhodov je vezanih na vse 3 naprave 8 vhodov je vezanih

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M15245112* JESENSKI IZPITNI ROK Izpitna pola 2 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali kemični svinčnik in računalo.

Prikaži več

Diapozitiv 1

Diapozitiv 1 RAČUNALNIŠKA ARHITEKTURA 9 Pomnilniška hierarhija RA - 9 2018, Škraba, Rozman, FRI Pomnilniška hierarhija - vsebina 9 Pomnilniška hierarhija - cilji: Osnovno razumevanje : Lokalnosti pomnilniških dostopov

Prikaži več

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov 4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenovalec, ter iz ulomkove črte. Racionalna števila so števila,

Prikaži več

Navodila:

Navodila: 1 Napišite zaporedje ukazov, ki vrednost enobajtne spremenljivke STEV1 prepiše v enobajtno spremenljivko STEV2. Nalogo rešite z neposrednim naslavljanjem (zaporedje lahko vsebuje le 2 ukaza v zbirniku

Prikaži več

Slide 1

Slide 1 Univerza v Ljubljani Fakulteta za elektrotehniko PROCES PISANJA PROGRAMOV Mitja Nemec Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška 25, 1000 Ljubljana, SLOVENIJA e-mail: mitjan@fe.uni-lj.si

Prikaži več

Diapozitiv 1

Diapozitiv 1 Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Trditev: idealni enosmerni tokovni vir obratuje z močjo

Prikaži več

Objektno usmerjeno programiranje

Objektno usmerjeno programiranje Objektno usmerjeno programiranje Izrazoslovje OOP Razred pomeni kategorijo stvari Ime razreda lahko v Javi uporabimo kot tip polja ali lokalne spremenljivke ali kot povratni tip funkcije (metode) Objekt

Prikaži več

Datum in kraj

Datum in kraj Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI

Prikaži več

Programska sprememba oddelka šole

Programska sprememba oddelka šole Pomoč uporabnikom Programska sprememba oddelka šole -NA-SI-355, V1.0 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Navodila... 1 2 Postopek...

Prikaži več

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvantnih celičnih avtomatov SEMINARSKA NALOGA Univerzitetna

Prikaži več

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo

Prikaži več

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila Programsko orodje LabVIEW za kreiranje, zajem in obdelavo signalov (statične in dinamične karakteristike hidravličnih proporcionalnih ventilov) Marko Šimic Telefon: +386 1 4771 727 e-mail: marko.simic@fs.uni-lj.si

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Uporaba storitve Office 365 v napravi iphone ali ipad Priročnik za hiter začetek dela Ogled e-pošte Nastavite napravo iphone ali ipad tako, da boste lahko pošiljali in prejemali e-pošto iz računa v storitvi

Prikaži več

ORA 1-3

ORA 1-3 OSNOVE RAČUNALNIŠKE ARHITEKTURE II 9 Glavni pomnilnik ORA 2-9 Igor Škraba, FRI Glavni pomnilnik in predpomnilnik Glavni pomnilnik je prostor iz katerega CPE bere ukaze in operande in vanj shranjuje rezultate.

Prikaži več

11. srednješolsko tekmovanje ACM v znanju računalništva Šolsko tekmovanje 22. januarja 2016 NASVETI ZA TEKMOVALCE Naloge na tem šolskem tekmovanju pok

11. srednješolsko tekmovanje ACM v znanju računalništva Šolsko tekmovanje 22. januarja 2016 NASVETI ZA TEKMOVALCE Naloge na tem šolskem tekmovanju pok 11. srednješolsko tekmovanje ACM v znanju računalništva Šolsko tekmovanje 22. januarja 2016 NASVETI ZA TEKMOVALCE Naloge na tem šolskem tekmovanju pokrivajo širok razpon težavnosti, tako da ni nič hudega,

Prikaži več

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti

Prikaži več

Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj

Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadaljevanju»naročnik«) in družbo VI NOVA d.o.o. (v nadaljevanje»ponudnik«).

Prikaži več

Vaja04_Ver02

Vaja04_Ver02 Vaja 04 Varnost: Zaščita aplikacije, omejitev dostopa 1. Uredite prijavo in odjavo uporabnika brez uporabe menuja Special/Security. Nadgradite aplikacijo iz vaje 2. Kreirajte okno tipa Replace Začetno

Prikaži več

CelotniPraktikum_2011_verZaTisk.pdf

CelotniPraktikum_2011_verZaTisk.pdf Elektrotehniški praktikum Osnove digitalnih vezij Namen vaje Videti, kako delujejo osnovna dvovhodna logi na vezja v obliki integriranih vezij oziroma, kako opravljajo logi ne funkcije Boolove algebre.

Prikaži več

Slide 1

Slide 1 Opolnomočenje učencev z izboljšanjem bralne pismenosti in dostopa do znanja PREDSTAVITEV ZA STARŠE ŠOLSKO LETO 2011/12 Operacijo delno financira Evropska unija iz Evropskega socialnega sklada ter Ministrstvo

Prikaži več

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Pomen posameznih oken uporabniškega vmesnika, urejevalnik

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1, TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03. 2019 KAZALO 1 Namen...3 2 Registracija...4 3 Vnos gesla in aktivacija računa...6 4 Prijava...7

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03.2019 Verzija 1.1 KAZALO 1 NAMEN...3 2 REGISTRACIJA...4 3 VNOS GESLA IN AKTIVACIJA RAČUNA...6

Prikaži več

Amadej Javornik SIMULATOR SINHRONIZACIJE PROCESOV Z MONITORJEM Diplomsko delo Maribor, april 2013

Amadej Javornik SIMULATOR SINHRONIZACIJE PROCESOV Z MONITORJEM Diplomsko delo Maribor, april 2013 Amadej Javornik SIMULATOR SINHRONIZACIJE PROCESOV Z MONITORJEM Diplomsko delo Maribor, april 2013 SIMULATOR SINHRONIZACIJE PROCESOV Z MONITORJEM Diplomsko delo Študent: Študijski program: Mentor: Amadej

Prikaži več

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, marec 2019 Vsebina 1 Dostop do aplikacije... 3 1.1 Android...

Prikaži več

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................

Prikaži več

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andraž Drčar Prevajanje javanskih programov z vstavljeno zložno kodo DIPLOMSKO DELO UNI

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andraž Drčar Prevajanje javanskih programov z vstavljeno zložno kodo DIPLOMSKO DELO UNI UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andraž Drčar Prevajanje javanskih programov z vstavljeno zložno kodo DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

Microsoft Word - Seštevamo stotice.doc

Microsoft Word - Seštevamo stotice.doc UČNA PRIPRAVA: MATEMATIKA UČNI SKLOP: Računske operacije UČNA TEMA: Seštevamo in odštevamo stotice Seštevamo stotice UČNE METODE: razlaga, prikazovanje, demonstracija, grafično in pisno delo UČNE OBLIKE:

Prikaži več

Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: T: Režim študija Predmet: Uvod

Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: T: Režim študija Predmet: Uvod Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: ksz@mf.uni-lj.si T: +386 1 543 7700 Režim študija Predmet: Uvod v medicino, modul Informatika Študijski program: EMŠ

Prikaži več

TNUV Lab

TNUV Lab TNUV - VAJA 5 doc. dr. Marko Meža 2013/14 Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html

Prikaži več

DKMPT

DKMPT Tračnice, na katere so moduli fizično nameščeni. Napajalniki (PS), ki zagotavljajo ustrezno enosmerno napajalno napetost za module. Centralne procesne enote (CPU Central Processing Unit). Signalni moduli

Prikaži več

NAVODILA AVTORJEM PRISPEVKOV

NAVODILA AVTORJEM PRISPEVKOV Predmetna komisija za nižji izobrazbeni standard matematika Opisi dosežkov učencev 6. razreda na nacionalnem preverjanju znanja Slika: Porazdelitev točk pri matematiki (NIS), 6. razred 1 ZELENO OBMOČJE

Prikaži več

Excel 2016

Excel 2016 PRIDOBIVANJE TEMELJN IH IN POKLICNIH KOMPETENC OD 2019 DO 2022 HIPERPOVEZAVA Gradivo za interno uporabo AVTOR: Belinda Lovrenčič Gradivo ni lektorirano V Maj 2019 Operacijo sofinancira Evropska unija,

Prikaži več

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft

Prikaži več

DES11_vmesniki

DES11_vmesniki Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Vmesniki in sekvenčna vezja Zaporedna in vzporedna vodila 1 Vmesniki in vodila

Prikaži več

DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in pr

DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in pr DZS, d. d. Spoštovani, pred vami je vzorčno poglavje dnevnih priprav. Priprave so uporabnikom na voljo v celoti in v obliki, ki omogoča urejanje in prilagajanje. Komplet sestavljajo: učbenik in delovni

Prikaži več

Microsoft PowerPoint - OAPS1- P12.ppt

Microsoft PowerPoint - OAPS1- P12.ppt Univerza v Ljubljani Fakulteta za računalništvo in informatiko Igor Rožanc Osnove algoritmov in podatkovnih struktur I (OAPS I) 2. letnik, VSP Računalništvo in informatika, vse smeri PROSOJNICE ZA 12.

Prikaži več

NAJRAJE SE DRUŽIM S SVIČNIKOM, SAJ LAHKO VADIM ČRTE IN KRIVULJE, PA VELIKE TISKANE ČRKE IN ŠTEVILKE DO 20. Preizkusite znanje vaših otrok in natisnite

NAJRAJE SE DRUŽIM S SVIČNIKOM, SAJ LAHKO VADIM ČRTE IN KRIVULJE, PA VELIKE TISKANE ČRKE IN ŠTEVILKE DO 20. Preizkusite znanje vaših otrok in natisnite NAJRAJE SE DRUŽIM S SVIČNIKOM, SAJ LAHKO VADIM ČRTE IN KRIVULJE, PA VELIKE TISKANE ČRKE IN ŠTEVILKE DO 20. Preizkusite znanje vaših otrok in natisnite vzorčne strani iz DELOVNIH LISTOV 1 v štirih delih

Prikaži več

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski

Prikaži več

Microsoft PowerPoint - IPPU-V2.ppt

Microsoft PowerPoint - IPPU-V2.ppt Informatizacija poslovnih procesov v upravi VAJA 2 Procesni pogled Diagram aktivnosti IPPU vaja 2; stran: 1 Fakulteta za upravo, 2006/07 Procesni pogled Je osnova za razvoj programov Prikazuje algoritme

Prikaži več

TNUV Lab5

TNUV Lab5 TNUV - VAJA 5 doc. dr. Marko Meža Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html

Prikaži več

Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta Bila je ena izmed prvih streljaških iger, v k

Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta Bila je ena izmed prvih streljaških iger, v k Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta 1978. Bila je ena izmed prvih streljaških iger, v kateri je igralec vodil laserski top ali vesoljsko ladjo,

Prikaži več

Elektrotehniški vestnik 76(1-2): 13 18, 2009 Electrotechnical Review, Ljubljana, Slovenija Ugotavljanje podatkovne odvisnosti za procesorje z naborom

Elektrotehniški vestnik 76(1-2): 13 18, 2009 Electrotechnical Review, Ljubljana, Slovenija Ugotavljanje podatkovne odvisnosti za procesorje z naborom Elektrotehniški vestnik 76(1-2): 13 18, 2009 Electrotechnical Review, Ljubljana, Slovenija Ugotavljanje podatkovne odvisnosti za procesorje z naborom ukazov SIMD Patricio Bulić, Tomaž Dobravec Univerza

Prikaži več

CT_SLO_White Paper_ENG

CT_SLO_White Paper_ENG UPORABNIŠKI PRIROČNIK //COMTRADE/ UPORABNIŠKI PRIROČNIK ZA PORTAL IN VARNOSTNO SHEMO MIZKŠ Priročnik za ravnatelje Priročnik pokriva glavne akcije, ki jih ravnatelji opravljajo v Varnostni shemi: upravljanje

Prikaži več

APS1

APS1 Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI Podatkovni tipi Razvil Pascal, Oberon itd. Software is

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Zaporedni vmesniki Zaporedni (serijski) vmesniki Zaporedni (serijski) vmesniki

Prikaži več

Orodje za izvoz podatkov

Orodje za izvoz podatkov Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...

Prikaži več

Teorija kodiranja in kriptografija 2013/ AES

Teorija kodiranja in kriptografija 2013/ AES Teorija kodiranja in kriptografija 23/24 AES Arjana Žitnik Univerza v Ljubljani, Fakulteta za matematiko in fiziko Ljubljana, 8. 3. 24 AES - zgodovina Septembra 997 je NIST objavil natečaj za izbor nove

Prikaži več

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju

Prikaži več

Prijetno dopoldan v vrtcu

Prijetno dopoldan v vrtcu DOPOLDANSKO DRUŽENJE TREH GENERACIJ V VRTCU (BRALNA DELAVNICA Z USTVARJANJEM) VRTEC PRI OŠ MILANA MAJCNA ŠENTJANŽ DIPL. VZG. VLADKA ŽAJBER PREDNOSTNO PODROČJE VRTCA V 2018/19 GOVORNO JEZIKOVNO Opažamo,

Prikaži več

Navodila za uporabo PROSTOSTOJEČE GARDEROBNO STOJALO IZDELANO V NEMČIJI myhansecontrol.com myhansecontrol.com Uporabniku prijazna navodila ID: #05000

Navodila za uporabo PROSTOSTOJEČE GARDEROBNO STOJALO IZDELANO V NEMČIJI myhansecontrol.com myhansecontrol.com Uporabniku prijazna navodila ID: #05000 Navodila za uporabo PROSTOSTOJEČE GARDEROBNO STOJALO IZDELANO V NEMČIJI myhansecontrol.com myhansecontrol.com Uporabniku prijazna navodila ID: #05000 Hitro in preprosto do cilja s kodami QR Ne glede na

Prikaži več

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc) 1. Pogoji uporabe programske opreme Pred uporabo programske opreme iz programa MSDNAA morate prebrati in se strinjati s pogoji in določili Licenčne pogodbe za končnega uporabnika programske opreme MSDN

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

Najprej si poglejmo učilnico. Za vse začetnike lahko tukaj najdete čudovito knjigo Python za programiranje. Poda odlično iztočnico za učenje. Priporoč

Najprej si poglejmo učilnico. Za vse začetnike lahko tukaj najdete čudovito knjigo Python za programiranje. Poda odlično iztočnico za učenje. Priporoč Najprej si poglejmo učilnico. Za vse začetnike lahko tukaj najdete čudovito knjigo Python za programiranje. Poda odlično iztočnico za učenje. Priporočam vam, da si v začetnih tednih vzamete par dni in

Prikaži več

STAVKI _5_

STAVKI _5_ 5. Stavki (Teoremi) Vsebina: Stavek superpozicije, stavek Thévenina in Nortona, maksimalna moč na bremenu (drugič), stavek Tellegena. 1. Stavek superpozicije Ta stavek določa, da lahko poljubno vezje sestavljeno

Prikaži več