Konkurentno programiranje
Opis predmeta
Konkurentnost i paralelizam procesa u mreži: istodobnost poziva i usluga, unutarnji paralelizam procesa poziva i usluga, konkurentnost u tokovima upravljanja. Komunicirajući procesi, međuprocesna komunikacija, paralelizam i konkurentnost. Jezici za programiranje telekomunikacijskih funkcija: definicija procesa, asinkrona komunikacija, stvarno vrijeme, neprekidnost operacija. Paralelizam procesa i raspoređivanje poslova. Načela konkurentnog i distribuiranog programiranja. Konkurentnost u objektno orijentiranim jezicima. Sinkronizacijski i višenitni mehanizmi. Reaktivno programiranje. Programski jezici Erlang i Java. Razvojno okružje.
Opće kompetencije
Studenti će steći temeljna znanja o načelima konkurentnosti i paralelizma u sustavima i mreži, konkurentnom i distribuiranom programiranju, jezicima za programiranje konkurentnih i distribuiranih sustava, međuprocesnoj komunikaciji te sinkronizacijskim i višenitnim mehanizmima.
Ishodi učenja
- prepoznati različite oblike konkurentnosti
- objasniti mehanizme konkurentnost
- upotrijebiti mehanizme konkurentnosti u programskoj podršci
- analizirati različite probleme u konkurentnim programima
- povezati različite mehanizme za konurentnost i razviti programsko rješenje
- usporediti dobra i loša svojstva nekog rješenja
Oblici nastave
Predavanja
tjedna predavanja
Provjere znanjazadaće, međuispit i završni ispit
Laboratorijske vježberad u laboratoriju
Demonstracijske vježbena predavanju
Konzultacijetjedne
Programske vježbekroz zadaće
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 0 % | 20 % | 0 % | 20 % | ||
Domaće zadaće | 0 % | 10 % | 0 % | 10 % | ||
Međuispit: Pismeni | 0 % | 30 % | 0 % | |||
Završni ispit: Pismeni | 0 % | 30 % | ||||
Završni ispit: Usmeni | 10 % | |||||
Ispit: Pismeni | 0 % | 60 % | ||||
Ispit: Usmeni | 10 % |
Napomena / komentar
Na usmenom je minimum za prolaz 50%. Sve zadaće moraju biti predane i s uspješnim prolazom.
Tjedni plan nastave
- Uvodna razmatranja. Programski jezici - konkurentnost i paralelizam. Razvoj programskih jezika, vrste i značajke jezika s motrišta primjene. Razine upravljanja u mreži, modeli procesorskih i programskih sustava.
- Procesi i međuprocesna komunikacija izmjenom poruka. Predočavanje paralelizma u programskim jezicima, komunikacija i sinkronizacija.
- Deklarativni konkurentni jezici. Programski jezik Erlang.
- Konkurentno programiranje u Erlangu. Kreiranje procesa, uspoređivanje uzoraka, selektivni i neselektivni prijam poruka, vremenska kontrola, registrirani procesi.
- Raspodijeljeno programiranje u jeziku Erlang. Referencijska transparentnost, ugrađene funkcije, robustnost, povezanost procesa.
- Erlang OTP: programski okvir za razvoj pouzdanih sustava s tolerancijom neispravnosti, studijski primjer
- Povezivanje programskih jezika Erlang i Java: vrata (port), Socket/UDP, JInterface, Thrift
- Međuispit
- Konkurentnost u objektno orijentiranim jezicima. Proširenja i modeli konkurentnosti za objektno orijenitrane jezike. Konkurentnost u jeziku Java. Niti u Javi, njihova stanja, prioriteti, sebične niti.
- Konkurentno programiranje u jeziku Java. Sinkronizacijski i višenitni mehanizmi (brojeći semafor, sinkroniziranje kolekcija podataka, sinkronizacija repa, izmjenjivač podataka, prepreka, uzorak zaključavanja, recikliranje niti).
- Primjena konkurentnih mehanizama u Javi, grafika, mrežni poslužitelj, udaljen poziv procedura, alarmi.
- Konkurentni model na webu (Java EE, AJAX)
- Konkurentnost web-poslužitelja: dugo prozivanje, WebSocket, bazeni konekcija, pozivi web-usluga.
- Studijski slučaj: iskustva iz industrije i novi trendovi
- Završni ispit
Studijski programi
Sveučilišni diplomski
Telekomunikacije i informatika (profil)
Predmeti specijalizacije profila
(3. semestar)
Literatura
I. Lovrek, G. Ježić, S. Dešić, M. Kušek (2009.), Konkurentno programiranje: Skripta za 1. ciklus predavanja, FER - skripta
M. Kušek (2008.), Konkurentno programiranje: Skripta za 2. ciklus predavanja, FER - skripta
I. Lovrek, G. Ježić, M. Kušek (2008.), Konkurentno programiranje: Skripta za 3. ciklus predavanja, FER - skripta
Nositelji
Laboratorijske vježbe
Izvedba
ID 127420
Zimski semestar
4 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Auditorne vježbe
15 Laboratorijske vježbe
0 Konstrukcijske vježbe
Ocjenjivanje
85 izvrstan
75 vrlo dobar
65 dobar
55 dovoljan