distribuirani procesi vježbe 01 –uvod i threadovi vinko …vpetrice/dp/vjezbe1.pdfdistribuirani...
TRANSCRIPT
Distribuirani pro
cesi
Vježbe 01 –
Uvod i
threadovi
Vin
ko
Pe
trič
ev
ićV
ink
o P
etr
iče
vić
Gradivo i način polaganja
�g
rad
ivo
: o
sn
ov
e j
ez
ika
C#
po
tre
bn
e z
a
raz
um
ijev
an
je d
istr
ibu
ira
no
g p
rog
ram
ira
nja
na
čin
vje
žb
i –
sv
ak
i 3
. tj
ed
an
3 s
ata
u
�n
ač
in v
jež
bi
–s
va
ki
3.
tje
da
n 3
sa
ta u
ko
ma
du
�N
a p
rak
tik
um
u 3
će
se
de
taljn
ije r
ad
iti
C#
Sintaksa
�V
rlo
slič
na
C+
+-u
, c
as
e s
en
sit
ive
�.n
et
fra
me
wo
rk i
de
nti
ča
n z
a s
ve
.n
et
ala
te
�G
oto
vo
sv
i ti
po
vi
po
da
tak
a s
u G
C p
ok
az
iva
či
(cla
ss
–
GC
po
ka
ziv
ač
, z
au
zim
a p
ros
tor
na
he
ap
u,
ne
mo
ra s
e
un
išti
ti o
dm
ah
na
za
vrš
etk
u p
rog
ram
sk
og
blo
ka
; s
tru
ct
–u
niš
titi
od
ma
h n
a z
av
rše
tku
pro
gra
ms
ko
g b
lok
a;
str
uc
t –
ka
o C
++
kla
sa
, z
au
zim
a p
ros
tor
na
sto
gu
)
�k
las
a s
e m
ož
e n
as
lije
dit
i s
am
o i
z j
ed
ne
kla
se
, a
li m
ož
e
imp
lem
en
tira
ti v
iše
su
če
lja
�s
tru
ktu
ra n
e m
ož
e n
as
lije
dit
i k
las
u,
nit
i s
e i
z n
je m
ož
e
na
slje
ñiv
ati
, a
li m
ož
e i
mp
lem
en
tira
ti s
uč
elje
Osnove jezika
�P
rog
ram
i s
u o
rga
niz
ira
ni
ka
o p
roje
kti
�S
va
ki
pro
jek
t s
ad
rži
ne
ke
ob
av
ez
ne
da
tote
ke
,
ali
mo
že
mo
do
da
ti p
roiz
vo
ljan
bro
j d
ato
tek
a i
po
dd
ire
kto
rija
(d
ob
ro j
e s
va
ki
kla
su
pis
ati
u
po
dd
ire
kto
rija
(d
ob
ro j
e s
va
ki
kla
su
pis
ati
u
za
se
bn
oj
da
tote
ci)
�K
om
pa
jlira
nje
m i
z s
vih
da
tote
ka
pro
jek
ta
na
sta
je j
ed
an
as
se
mb
ly (
.dll
ili .
ex
e),
ko
ji je
os
no
vn
a j
ed
inic
a z
a p
on
ov
nu
up
ora
bu
na
.n
et
pla
tfo
rmi
Osnove jezika
�C
# j
e d
io .
ne
t p
latf
orm
e,
mo
že
ko
ris
titi
Fra
me
wo
rk C
las
s L
ibra
ry (
FC
L)
�P
rog
ram
i n
ap
isa
ni
u C
# s
e i
zv
rša
va
ju u
Co
mm
on
La
ng
ua
ge
Ru
nti
me
-u (
CL
R),
što
C
om
mo
n L
an
gu
ag
e R
un
tim
e-u
(C
LR
), š
to
om
og
uć
uje
ko
riš
ten
je k
as
a i
mp
lem
en
tira
nih
u
bilo
ko
jem
.n
et
pro
gra
ms
ko
m j
ez
iku
Jednostavan program
cla
ss
He
llo
{
sta
tic
vo
id M
ain
()
{
// i
sp
is t
ek
sta
na
ek
ran
Sy
ste
m.C
on
so
le.W
rite
Lin
e(“
He
llo W
orl
d”)
;
}}
�M
ož
em
o k
ori
sti
ti b
ilo k
oji
tek
st-
ed
ito
r i
cs
c.e
xe
ili
VS
: F
ile -
> N
ew
->
Pro
jec
t…
�P
roje
ct
Ty
pe
s:
Vis
ua
l C
# -
> W
ind
ow
s
�T
em
pla
tes
: C
on
so
le A
pp
lica
tio
n
�O
da
bra
ti i
me
(n
pr:
He
llo)
Zadatak 1
�K
ori
ste
ći
Vu
sa
l S
tud
io,
na
piš
ite
pro
gra
m k
oji
isp
isu
je p
oz
dra
vn
u p
oru
ku
�U
oč
ite
ra
zlik
e u
pro
gra
mu
ko
jeg
je
de
fin
ira
o
wiz
za
rdw
izz
ard
Osnove jezika
�C
# j
e s
tro
go
tip
izir
an
i je
zik
�Im
am
o u
gra
ñe
ne
i k
ori
sn
ičk
i d
efi
nir
an
e t
ipo
ve
�P
rem
a n
ač
inu
sp
rem
an
ja u
me
mo
riji
se
dije
le
na
vri
jed
no
sn
e (
sto
g)
i re
fere
ntn
e (
he
ap
, G
C)
na
vri
jed
no
sn
e (
sto
g)
i re
fere
ntn
e (
he
ap
, G
C)
Vrijednostni tipovi
Tip
Veličina (u
bajtovim
a)
.NET tip
Opis
bool
1Boolean
true
ilifalse
byte
1Byte
od
0d
o2
55
(od
0d
o2
8-1
)
char
2Char
po
jed
ina
čn
iUnicode
zn
ak
(‘A
’ili
‘\u
00
41
’ili
‘\\’
ili‘\
n’)
sbyte
1SByte
od
-12
8d
o1
27
(od
-27
do
27-1
)
short
2Int16
od
-32
76
8d
o3
27
67
(od
-21
5d
o2
15-1
)
ushort
2UInt16
od
0d
o6
55
35
(od
0d
o2
16-1
)
En
um
i s
tru
ct
int
4Int32
od
-21
47
48
36
48
do
21
47
48
36
47
(od
-23
1d
o2
31-1
)
uint
4UInt32
od
0d
o4
29
49
67
29
5(o
d0
do
23
2-1
)
float
4Single
7d
ec
ima
la,
od±
1,5
x1
0-4
5d
o±
3,4
x1
03
8
double
8Double
15
-16
de
cim
ala
,o
d±
5,0
x1
0-3
24
do±
3,4
x1
03
08
decimal
16
Decimal
28
-29
de
cim
ala
,o
d±
1,0
x1
0-2
8d
o±
3,4
x1
02
8
long
8Int64
od
-92
23
37
20
36
85
47
75
80
8
do
92
23
37
20
36
85
47
75
80
7
(od
-26
3d
o2
63-1
)
ulong
8UInt64
od
0d
o1
84
46
74
40
73
70
95
51
61
5
(od
0d
o2
64-1
)
Osnove jezika
�Im
plic
itn
e p
retv
orb
e r
ad
e,
ak
o s
e n
e g
ub
e
po
da
ci in
t x
=5
;d
ou
ble
y =
x;
�Z
a o
brn
uto
mo
ram
o n
av
es
ti d
a ‘
zn
am
o š
ta
rad
imo
’do
ub
le y
= x
;
do
ub
le x
=5
;in
t y
= (
int)
x;
Jednostavan program
us
ing
Sy
ste
m;
us
ing
Sy
ste
m.C
olle
cti
on
s.G
en
eri
c;
us
ing
Sy
ste
m.L
inq
;
us
ing
Sy
ste
m.T
ex
t;
na
me
sp
ac
e C
on
so
leA
pp
lica
tio
n1
{
cla
ss
Pro
gra
mc
las
s P
rog
ram
{
sta
tic
vo
id M
ain
()
{
str
ing
s =
Co
ns
ole
.Re
ad
Lin
e()
;
int
x =
Co
nv
ert
.To
Int3
2(s
);
for(
int
i=0
; i<
x;
++
i)
Co
ns
ole
.Wri
teL
ine
(i);
}
}}
Jednostavan program
int
x;
try
try
{
x =
Co
nv
ert
.To
Int3
2(s
);
} ca
tch
{
x =
10
;}
Varijable
�P
rije
ko
riš
ten
ja,
sv
ak
u v
ari
jab
lu m
ora
mo
inic
ijaliz
ira
ti
int
x=
5,
y;
y =
10
;WriteLine(“x={0}, y={1}”, x, y);
�M
ož
em
o i
m m
ijen
jati
vri
jed
no
st
�K
on
sta
nte
mo
ram
o o
dm
ah
in
icija
lizir
ati
, i
ka
sn
ije
im s
e v
rije
dn
os
t n
e m
ož
e m
ijen
jati
WriteLine(“x={0}, y={1}”, x, y);
co
ns
t in
t z
=1
5;
string
�s
trin
g j
e n
iz z
na
ko
va
. R
az
ma
ci
se
ne
za
ne
ma
ruju
str
ing
s =
“a
bc
d
ef”
;
s =
“a
bc
\nd
ef”
;
s =
@“a
bc
\nd
ef”
;s
= @
“ab
c\n
de
f”;
s =
Co
ns
ole
.Re
ad
Lin
e()
;
Operatori i tijek programa
�O
pe
rato
ri s
u i
sti
ka
o u
C+
+-u
�K
on
tro
la t
ijek
a v
rlo
slič
na
:
�fo
rea
ch
–p
rola
zi
kro
z s
ve
ele
me
nte
ne
ko
g s
pre
mn
ika
�s
wit
ch
–n
e m
ora
bit
i c
ijelo
bro
jni
tip
i m
ož
em
o k
ori
sti
ti
goto case
slu
ča
jgoto case
slu
ča
j
sw
itc
h(i
) {
ca
se
1:
Co
ns
ole
.Wri
te(1
); g
oto
ca
se
3;
ca
se
2:
Co
ns
ole
.Wri
te(2
); b
rea
k;
ca
se
3:
Co
ns
ole
.Wri
te(3
); b
rea
k;
de
fau
lt:
Co
ns
ole
.Wri
te(“
ne
sto
dru
go
”);
bre
ak
;
}
Zadatak 2
�N
ap
išit
e p
rog
ram
ko
ji z
a u
ne
še
ni
bro
j
pro
vje
rav
a j
e l
i p
ros
t
�N
ap
išit
e p
rog
ram
ko
ji u
ne
še
ni
bro
j ra
sta
vlja
na
pro
ste
fa
kto
ren
a p
ros
te f
ak
tore
Slanje parametara funkciji
�S
va
ka
fu
nk
cija
mo
že
im
ati
pro
izv
olja
n b
roj
pa
ram
eta
ra p
roiz
vo
ljno
g t
ipa
�S
va
ki
pa
ram
eta
r s
e m
ož
e s
lati
po
vri
jed
no
sti
, ili
po
�
Sv
ak
i p
ara
me
tar
se
mo
že
sla
ti p
o v
rije
dn
os
ti,
ili p
o
refe
ren
ci
(re
f),
a m
ož
e b
iti
i č
isto
iz
laz
ni
pa
ram
eta
r
(ou
t).
Ta
da
se
pri
je k
ori
šte
nja
u f
un
kc
iji t
reb
a
inic
ijaliz
ira
ti.
Slanje parametara funkciji
sta
tic
vo
id f
1(i
nt
x)
{ +
+x
; }
sta
tic
vo
id f
2(r
ef
int
x)
{ +
+x
; }
sta
tic
vo
id f
3(o
ut
int
x)
{
// +
+x
; o
vo
bi
bila
gre
sk
a
x =
0;
++
x;
}} sta
tic
vo
id M
ain
(str
ing
[] a
rgs
)
{
int
x =
10
;
f1(x
); C
on
so
le.W
rite
Lin
e(x
);
/
/ 1
0
f2(r
ef
x);
Co
ns
ole
.Wri
teL
ine
(x);
//
11
f3(o
ut
x);
Co
ns
ole
.Wri
teL
ine
(x);
//
1}
Zadatak 3
�N
ap
išit
e f
un
kc
iju k
oja
vra
ća
na
jma
nji
pro
sti
bro
j v
eć
i o
d d
an
og
bro
ja
�N
ap
išit
e n
are
db
u k
oja
is
pis
uje
sv
e p
ros
te
bro
jev
e m
an
je o
d d
an
og
bro
jab
roje
ve
ma
nje
od
da
no
g b
roja
�N
ap
išit
e n
are
db
u k
oja
od
do
biv
en
og
str
ing
a
na
pra
vi
pa
lind
rom
Enumeracije
en
um
im
eE
nu
me
rac
ije [
:os
no
vn
iTip
= i
nt]
{
co
ns
t1 =
vri
jed
no
st1
, //
ak
o n
e s
tav
imo
po
dra
zu
mije
va
se
0
co
ns
t2 =
vri
jed
no
st2
, //
ak
o n
e s
tav
imo
, b
it c
e p
reth
od
na
+1
...
}
en
um
Te
mp
era
ture
{
led
iste
Vo
de
= 0
,
vre
lište
Vo
de
= 1
00
,
} sta
tic
vo
id M
ain
(str
ing
[] a
rgs
) {
Co
ns
ole
.Wri
teL
ine
("L
ed
ište
vo
de
: {0
}",
(in
t)T
em
pe
ratu
re.l
ed
iste
Vo
de
);
Co
ns
ole
.Wri
teL
ine
("V
reliš
te v
od
e:
{0}"
,
(in
t)T
em
pe
ratu
re.v
reliš
teV
od
e);
}
Klase
cla
ss
au
tom
ob
il
{
pu
blic
in
t g
ori
vo
= 1
00
;
pu
blic
au
tom
ob
il()
{
Co
ns
ole
.Wri
teL
ine
(go
riv
o);
} ~a
uto
mo
bil(
)
{{
Co
ns
ole
.Wri
teL
ine
(go
riv
o);
}
} cla
ss
Pro
gra
m
{
sta
tic
vo
id M
ain
()
{
au
tom
ob
il a
= n
ew
au
tom
ob
il();
++
a.g
ori
vo
;
}}
Nasljeñivanje
cla
ss
ku
pe
: a
uto
mo
bil
{
pu
blic
ku
pe
()
{
Co
ns
ole
.Wri
te("
Ku
pe
\t")
;
} ~k
up
e()
{
Co
ns
ole
.Wri
te(@
"Ku
pe
\t")
;
}}
} cla
ss
Pro
gra
m
{
sta
tic
vo
id M
ain
()
{
{
au
tom
ob
il a
= n
ew
ku
pe
();
++
a.g
ori
vo
;
} Co
ns
ole
.Wri
teL
ine
("k
raj\
n")
;
}}
Threadovi
�p
rog
ram
i k
oje
sm
o d
o s
ad
a s
us
reta
li
izv
rša
va
li s
u s
e u
gla
vn
om
u j
ed
no
m t
hre
ad
u
(na
je
dn
oj
jez
gri
pro
ce
so
ra)
�u
ko
liko
bi
že
ljeli
up
otr
ijeb
iti
viš
e,
ili z
bo
g
�u
ko
liko
bi
že
ljeli
up
otr
ijeb
iti
viš
e,
ili z
bo
g
dru
gih
stv
ari
, p
otr
eb
no
je
kre
ira
ti v
iše
thre
ad
ov
a
�s
va
ki
thre
ad
im
a s
vo
j s
tog
(lo
ka
lne
va
rija
ble
,
pa
ram
etr
i) i
sv
oju
po
če
tnu
ru
tin
u
Threadovi
�P
os
toji
viš
e n
ač
ina
kre
ira
nja
th
rea
do
va
:
�v
oid
po
ce
tak
() {
… }
… Th
rea
d t
= n
ew
Th
rea
d(n
ew
Th
rea
dS
tart
(po
ce
tak
));
t.S
tart
();
t.S
tart
();
�v
oid
ra
di(
ob
jec
t o
) {…
}
Th
rea
dP
oo
l.Q
ue
ue
Us
erW
ork
Ite
m(n
ew
Wa
itC
allb
ac
k(r
ad
i),
pa
ram
eta
r);
Kreiranje threada
us
ing
Sy
ste
m.T
hre
ad
ing
;
int
thre
ad
No
= 0
;
Pro
gra
m(i
nt
no
) {
thre
ad
No
= n
o;
}
vo
id d
rug
iTh
rea
d()
{{
for
(in
t i
= 0
; i
< 1
0;
++
i)
{
Th
rea
d.S
lee
p(1
00
);
Co
ns
ole
.Wri
teL
ine
("T
hre
ad
: {0
:D},
i=
{1:D
}",
thre
ad
No
, i)
;
}
} sta
tic
vo
id M
ain
()
{
Pro
gra
m p
1 =
ne
w P
rog
ram
(1);
Th
rea
d t
= n
ew
Th
rea
d(n
ew
Th
rea
dS
tart
(p1
.dru
giT
hre
ad
));
t.S
tart
();
// P
rog
ram
p =
ne
w P
rog
ram
(0);
p.d
rug
iTh
rea
d()
;}
Thread objekt
�S
lee
p(i
nt
mili
Se
c)
–č
ek
a,
pro
ce
so
r n
ije
op
tere
će
n
�S
pin
Wa
it(i
nt
vri
jem
e)
–v
rti
pe
tlju
od
reñ
en
o
vri
jem
e.
Ov
isi
o p
roc
es
oru
ko
liko
, p
roc
es
or
je
vri
jem
e.
Ov
isi
o p
roc
es
oru
ko
liko
, p
roc
es
or
je
op
tere
će
n
�V
ola
tile
Re
ad
(ob
j) –
čit
a p
od
ata
k i
z m
em
ori
je
�V
ola
tile
Wri
te(o
bj)
–p
iše
po
da
tak
u m
em
ori
je
Thread klasa
�S
tart
() –
po
kre
će
th
rea
d
�A
bo
rt()
–p
rek
ida
iz
vrš
av
an
je t
hre
ad
a
�S
us
pe
nd
() –
pa
uz
ira
th
rea
d
�R
es
um
e()
–p
ok
reć
e p
au
zir
an
i th
rea
d
�J
oin
(in
t m
iliS
ec
) –
če
ka
za
vrš
eta
k t
hre
ad
a
�In
terr
up
t()
–p
rek
ida
če
ka
nje
th
rea
da
.
Primjeri
�P
rim
jere
sta
rta
mo
ta
ko
da
u V
S-u
kre
ira
mo
no
vi
pro
jek
t, o
da
be
rem
o C
# i
Co
ns
ole
Ap
plic
ati
on
, te
ko
pir
am
o k
ôd
pri
mje
ra u
gla
vn
u .
cs
da
tote
ku
gla
vn
u .
cs
da
tote
ku
Lock –
primjer 1.1
�g
lob
aln
e i
sta
tič
ke
va
rija
ble
(a
i d
rug
i re
su
rsi
mo
gu
bit
i) z
aje
dn
ičk
i th
rea
do
vim
a,
pa
je
po
ne
ka
d p
otr
eb
no
os
igu
rati
da
sa
mo
je
da
n
thre
ad
pri
stu
pa
va
rija
bli
thre
ad
pri
stu
pa
va
rija
bli
�lo
ck
(ob
j) –
za
klju
ča
va
kri
tič
ni
dio
kô
da
. A
ko
je
ob
jek
t z
ak
ljuč
an
, d
rug
i th
rea
d n
em
ož
e u
ći
u
taj
dio
kô
da
.
�o
bj
je b
ilo k
oji
ob
jek
t iz
ve
de
n i
z O
bje
ct
(da
kle
sv
ak
a k
las
a)
AutoResetEvent –primjer 1.2,
1.3
�W
ait
(in
t m
iliS
ec
) –
če
ka
sv
e d
ok
ne
is
tek
ne
vri
jem
e i
li
ob
jek
t n
e b
ud
e s
ign
aliz
ira
n n
are
db
om
Se
t. S
am
o j
ed
an
thre
ad
mo
že
na
sta
vit
i s
ra
do
m,
te o
bje
kt
od
ma
h p
rela
zi
u
ne
sig
na
lizir
an
o s
tan
je
�S
et(
) –
sig
na
lizir
a d
a j
ed
an
th
rea
d m
ož
e n
as
tav
iti
sa
�
Se
t()
–s
ign
aliz
ira
da
je
da
n t
hre
ad
mo
že
na
sta
vit
i s
a
rad
om
(a
ko
če
ka
)
�R
es
et(
) –
ak
o j
e o
bje
kt
u s
ign
aliz
ira
no
m s
tan
ju,
pre
laz
i u
ne
sig
na
lizir
an
o
�M
an
ua
lRe
se
tEv
en
t –
na
ko
n S
et,
sv
i č
ek
aju
ći
thre
ad
ov
i
mo
gu
na
sta
vit
i s
ra
do
m,
sv
e d
ok
se
ne
po
zo
ve
Re
se
t.
Ostale sinhronizacijske rutine
�P
os
toje
i b
rojn
i d
rug
i n
ač
ini
za
kre
ira
nje
thre
ad
a,
te z
a a
sin
hro
no
po
ziv
an
je f
un
kc
ija
(ne
ki
su
na
ve
de
ni
u p
rim
jeri
ma
)
�S
ys
tem
.Th
rea
din
g s
ad
rži
još
mn
oš
tvo
�
Sy
ste
m.T
hre
ad
ing
sa
drž
i jo
š m
no
štv
o
sin
hro
niz
ac
ijsk
ih m
eh
an
iza
ma
, p
op
ut
Se
ma
fora
, M
ute
xa
, z
a d
eta
lje p
og
led
ati
he
lp
od
Sy
ste
m.T
hre
ad
ing