Tải bản đầy đủ (.doc) (30 trang)

VIẾT CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN LAMPORT TRÊN SERVER (TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (579.42 KB, 30 trang )






Đề tài
 !"
 !"
#$%&''(%)*
#$%&''(%)*
 &+&+$,&!
  %/0123%2
45%2647%48
  92-:2;1<=8>?%2@9AA

Đà Nẵng, tháng 3 năm 2010
BCD
Công nghệbí quyết và giải pháp !"#$%!%!&'!(
)'*#+,#- .,'.'/ 01!
2'.,'*34! 5 34!6#789#'*:
;<6#.,'*'=><1!!(+3# ., 
;9*#) ''*?@+'6#'/ :',ABC'.'3
D;9''*?#;EF'/G!1!'*#H
'.''*+'(A$( )IJ;9''*?@K(
:'*!7'.>+'/*#)   '2 6# L'#
“phẳng”*# J+
M*'9'25('A!3N'!O'FP' A!'
' 1'+,''&'2O:;BQ ;0A!R''.''*
:;<+'/"?3#',!%!0' K(,'E5R7%!#'*
 1!10'/2 ' ! 2F3#'5;BQL('
'E!R'S0');BQ'!1'!C3.'?'9A92


FF5  =862!6#,'E''@')
G/ E'F=!6#K 
T+ ,Q=!6#7'  =!R7@K(#')
#5'!O''#*'0'25'2'32#;&*&*'&3?!# 308
' O'.,5A9R!'*L6#'.,5A9:'*P
;UA2'.,28= '*V6#@@#*' :'*P
;''*P'9;UA2'+;&*&*'* P
-7W'KEQ5 1<1!5' ,!'#30 QQ5KF#
 1;#!
 <;<C'!2'
 X@K(')#'*,'
  W''!O''#*''*"&*&*
 Y2'!O
' :M1T"M"-8": #XWD-Z$V
 !R32'= ' ,!?'. ' K 
[')# 32'=+27' U3.'*3J;#;'Y/
;9C6#M1 K+@.
'9,
Tiểu luận môn Lập trình mạng
 !
!&EFG
I.Các khái niệm cơ bản
A+AH>2I%/>J%2;1
,'E'\] ,'EK#@#1:K0
K2L%10%/\] K2L%<M<\]
UK^!:#! 308ABC'.','E'
@K#'9'?1=5175^,!
A+NH>J%2;1K27%>=%
,'' ,'E !"#$%%X7!
_K,'('A!'37&''/''*7!K(AB

C#ABC6#,'E#K(ABC
,''IJ,'E1=6#P0'*#KVK(Q
K(K(ABC'*#H#!'.%!#,'E)'*!73#!
%!#5,'+5!Q5K!;'*#H5
A+*JO%>PQ%2
M2'*P\T*&;;] 3,3%!&'!(  E'F=!6#
,7! M*,''#`A&A_' KH;!W?+'( '*!
O6#'2'*P!1!!R' !D!
W? 
o '2'*PFP'  7!3?K<,7!3?!R'Z#
 2!'*' 1'##,'+'/5,'O
'*!5'?,7! *'2'*P*6#P5'P
LGKV;+'*"(6#'2'*P5'
o M2'*P :'*P#+:'*P#+'('*,
' E'F62!!1!' !1=#17?'9
,,6#PM2'*P1' !?''*?-7!'U5'R'
0'2'*P ' !F!R E'F<A#
o !C6#,'O'*!'?=! Q'2'*P
'9I EK2'U5EA!('5
HVTH: 45%2647%48@ %/0123%2
a
Tiểu luận môn Lập trình mạng
o Y'2'*PF!R' !'?'9,#52! E
'FFB2'b'*'*K(ABC\]QK(W0BE'F
'2'*P%!#,'E)'*!7
o -,!R' !'2'*P'?'9,'&c'*,
'
 M.%!#,'E!R!' ,'**de#'*
 M.%!#e#'*QK('*"&*&*df*3;'#'Kg'#2!
 K0'*+'506#'.'' Q

II. Đồng bộ hóa các tiến trình
X@K('2'*PF?! %!'*P7!3?'+;983
#!^#'R'0'2'*P3#!L,'+'(V 5
'O I'*;9E3N'!O'
N+AR%SM>TU%/>P:%2V.2WKXY1
M*'R'0,'E'5'#10=!.Q6+
,!%!0?'?@K(#'2'*PM/R'2'7W'!C 3N'!O'
6#R7 '?,<#!:K0;#!
a '2'*P3?0'2'*PA!R'''b=Q(O!E'*!
O ' !;EF*R'+2#'*!O '.'
D!D('L,'F'*!O
M:'*# !/6#A!('^#'2'*P!E
'*!O ' !D!
c'2'*P6#D(',=Q+'('&3?!)*?0
%!2'K '#W'*# 32'%!0#R'X7! _
'8,!8;BQ'2'KV ,!%!0+'(6#:'*P
F9 !/6#;9'(':hFO'*P^#
'2'*Pg_L'##  (!
"9 )*^#'2'*PIJ0'*#H'.'%!#
+#!M*,'E'O'*!57!F'9,)'!O''+'*b
':h'.%!#K2D'('*('D!M*,'
'5'.'1'*#H'.%!#'.,Kg3i'.
>(';9+'(UK6#:'*P!R'%!0C'*
D(''OF' !`+'F2!'!'6%!'U;#!
HVTH: 45%2647%48@ %/0123%2
c
Tiểu luận môn Lập trình mạng
& Z4J>[1
a K(!RKU'K!(0'9,D('0'!O'
c K(!R7!O'R'0'.,''b'2'*P

j
'.,0FABCD(''*O''9#!'*
:'*P!R
k!'U!E5R+2;9'2'2!0(''*O''9!R''*'OF
'.,6#,M*O''9 '?F'9,'.%!#,F96#
'2'*P!Rl1;#!L'#=!(';E:;UA2g
AO(''*O''90K0!1!@K(#
N+NR%SM/[%\]^_XJH4
UK^,! %!'*P3'9,'*#H'.'%!#+#! '+('
')?' 'P'*V'2'*P0E#!X??!*m:7UK^
,!'#A_'K 'K$hA&\M*ano,''-8":pqSXk
MT>]
N+*P`>>Y>a%/K2L%
1LC*g5'*,'E''O'*!5R7@K(F0
%!2''.%!#:2+'*b':h:2 _;UW'\AO'*O''9]
 ' ;93,M*'9'i5('/A5(','ER7
7@K(`IJ'*O''9'b1/PO'*O''9'b1^#
;93, '2'*P6#10@K( R710%!#'0%!2'
M*,'E'5,@K(`W'*#!R'R7'2'O
(''*O''9^#;93,^#'*+3#!5'*O''9`'?,F
'.%!#,'*#H'.,#!
rrrb2Q%2XJc%>d&cPVcP
jaJeJ>2JH4VM<b2Q%2XJc%>d&cPVcP
>.PFHK2R' FRO*(*$'*,'E'
 .P&'d;&*&*M*.P ;(''O'2'*P h'2'*P
#'*I (''*P%!0C' !(''OF' !
'* (''OF'2'*P&''*h'2'*P'9,(''Q
 1'*!A!R''' !1=W17D!S0'
'*P%!0C' !10'*!A!R''' !D!F%!0C
K<(''2'*P35PO(';E'2'*Pb# '2'*P&'b# '2'*P

;&*&*'2'*P'*#!1!';&*&*KR'3s3 L1'*!
A!R''(''*' !6#;&*&*2!!1! LU'P;&*&*;
'9, (F!1! B('='*0)''2'*P&'
HVTH: 45%2647%48@ %/0123%2
j
Tiểu luận môn Lập trình mạng
>.P&'d;&*&*!R(''2O'H%!'?#;t' !
'*,'E'>.P '?F W'Kg*R'7!.'*)
1= 173#!'/F;BQ?+'2'*P
&'d;&*&*7!3?!3#! 3.1'2'0K,'^#Lu0
'2'*P&' '2'*P;&*&*7!'?+'*D(''/>(''2
'*P;&*&*'?;BQVQ6#(';&*&*3
>.P'*!7'&'d;&*&*',!RVQk!'*P'*#H
^,!K#@
 Truyền một yêu cầu từ tiến trình client tới tiến trình server
 Yêu cầu được server xử lý
 Truyền đáp ứng cho client
>.P'*!7' %!#2,'*!7#'., ('+@K(
#Q'?^#&' ;&*&*M2'*P;&*&*0O'=F'.,F
!1!<K('#32  ('*#!1!'*&'0F
'+b\KV'J#] K!('2'*P&'<'*+')'3O
F=;&*&*B7<KK#
>.P&'d;&*&*')F W'9#'*'#':K0 B\;&]
 O\*&&&]

HVTH: 45%2647%48@ %/0123%2
M2'*P#'J#
M2'*P#ABC
v&;;&&;;#&
v&%!&;'

&;;#&
v&wA&!'
f#'
&cPVcP
XJc%>
x
Tiểu luận môn Lập trình mạng
k!'*P#'2&' ;&*&*'?i*#'&(''*#2(KV
'J#\K3&] 3.KV'J#\K3&]
Chế độ bị phong tỏa (blocked):
M*2(KV'J#53'2'*P&'W;&*&*'*#,B^,!
\;&]5,'9'6#'2'*P;KV'+b'3'2'*PO'*#,
O^,!\*&&&]
M:'9E'2'*PO^,!52!'2'*P \&'W;&*&*]
'*#,O^,!5 '+')?#^,!B''P,'9'6#
'2'*PG;KV'+b'3^,!B'
Chế độ không bị phong tỏa (non-blocked):
M*2( 53'2'*P&'#;&*&*'*#,B^,!'9;95
,'9'6#'2'*PF'2  3.%!#'2,'2'*P
 '*#,O^,!#3.
M:'9'*)FO^,!53'2'*P'*#,O^,!5;
O^,!,5,'9'6#'2'*PF'2  3.%!#'
2,'2'*P '*#,B^,!'2'&#3.
*+N=1fJO%>Pg1XJc%>d&cPVcP
Mô hình Client/Server
XJc%>d&cPVcP2:J>L%/+
Y2'*L&'d;&*&*:0R' 32'*L#'1M*'9'21!2'
32'*L&'d;&*&* 32'*L#'1>('=Q#'1!R7!'*+
 ,(''1'*Pi'ER'5'1 '*!7''1!'*^^,!
'O'*!M1'*Pi'.') &'5 '1!'*^^,! ;&*&*

1!2'=Qr'&*&' &#5'&&'5y''O/ 0f&K =
Q#'1T1O'*P'*P=Q2'=Q&'d;&*&*
A!'2;BQ32'*L 
M*=Q#'1'*!7'E53EF.,ABCF 
/#&''*3;&*&*`:0#'*I :'*P3?;'!@
 *#^#=Q ^,!Y2'%!0 3.`,!86#=QKV0
' !+26#T5 3EF^,!'*!7'*+G'8'&
HVTH: 45%2647%48@ %/0123%2
n
Tiểu luận môn Lập trình mạng
Y' K(=QFABC'*('T5=QKU'K!(0!1!7!^
,!'*3#*#KR'3s32'%!0ABC )D7!!1!^,!
G 0,!86#+>('R7')W3E=Q#
'1 R7K0'*P`1(''#HJE=QG10'#H
+' K(=Q&' ;&*&*

XJc%>d&cPVcP\:>L%/
M#'?'*FR76#32'*L&'d;&*&*#'1Kg<
*(32'*L' K#'1>('32'*LK#'1'(''1'K,',AB
C^,!<V'*/'*!'
M&32'*LK#'15('=QF#' K#'1'K,'#!7W'
M11!' '1'*Pi')K#@#,@#M1'=
#5IF '1'*!##'1',M1'=K#=#^,!1
=QM1'=K#7:K0 :'*P'9,) ?'P
32^,!1'2'M1'*PiO^,! V+??'V"9'
K,'^#=8ABC#,$'+;9+','2'32=
Q7!#,)DFA9 '*?3# 3. '#H
=Q
M1'=K#=#^,!1'2'=Q[^,! '?K#@KR'3s
!@'.' 5K#@:;<^,!z*##&5"k"&*&*W' ,!q>

9JO%>Pg1%@>L%/
Y2'*L'1F#' '1;#!
{ M1#,)D%!0C':'6#)D=Q
{ M1'*PiqV'=?'V#,)D !
1!6#)DF%!0C'2 
{ M1',>.P#%!'U',5
{ M1VQ+'1!R('=8KH'*F1'2'=Q
' 1\'*!7'.,5h'*F#']
HVTH: 45%2647%48@ %/0123%2
|
Tiểu luận môn Lập trình mạng
*+*`K>PQ%2K27%>=%VeJK2TU%/>201>PJH4/;J>ah:
*+*+Ai%/j4:%
v>r (':2_('E'F#+'*('0}## 
\}##-*'!#>#&]:'=6#('E'F#'@'+'*('
0}##3\}->]
M9R'v>r (':2:'='bA#$F'9, '/F
'*.^}##-P}## ('.^O'*PE'F5:
O'*P'*v>r :E'F'#'#)
:'=7!%!#2E'F *#5v>rI_('&'
'?B'('E'F2"&*&*ABC5 E'F G'?FA&
'#;E) 'bA#5E'F G^^,!K'* 
 ('E'F'9;9
So sánh giữ gọi phương thức từ xa với các lời gọi thủ tục từ xa
:'='bA#3.0 ('3,MO/'*3*#)
O'*PE'F17$'?  '6'Q'bA#,
'EvT$F;BQ'*7!8 ,#F;BQ
M*2'5}## ('.^(O7 _=Q}##
'*!7'=Q}###+'*KR'3s1= ,7!  
h'*F}->"93K,'/^##Q'! vTh'*F#.^5F+

v>r`h'*F=QF2'Kg}##
 R77.^ ,'E5(';E;93K,'8K0^#vT
v>r:'='bA# ,E'F5_:'=R
O '*07E'F}##G3?!^,!!'E\*&'&'&]
F+'6'Q'bA#3.h'*F3,E'F'.,B
(' V Q vT \v&'& T*&!*&  #]F  K?!i K< . ^ q[v
\wA'&*#[#'#v&*&;&'#']+'=K?!i^,! `3?!^
,!'?FVZ#K<q[v'?'*!7
*+*+N k1S?121l:
{ h'*F:'='bA#'*E'F'*03#!
{ h'*FF:'=F'b;&*&*'#&'
{ M/F.PE'F' .^O'*P}##'&('
'9'*3!'*P^0E'F6#.^O'*P}##
{  ;93K,'^#.PE'F' .PE'FQ
K(3.;93K,'
{ M+*#=Q'('O('i 
HVTH: 45%2647%48@ %/0123%2
o
Tiểu luận môn Lập trình mạng
{ [!'*P;9#' 3?!F!RK<.'*)')#+6#7'0
}##
{ h'*F^0'#2!3#!E'F'bA#
{ [!'*P.'*)#' 6#}##Kg'*PK0# '*P+
*+*+* 9JO%>Pg1
"93K,'8K0^#E'F'bA# E'FQK( E
'F'bA#g'*('03M.')5'#;EE'FF
'*!7:'= '*VE'FF'*07'b:'='.
%!#'*!7'&'#2!M! 3. ,3:
'= :'=F3.Dg'*('0
-PO5K#:23#!F;BQ?'*!7'#;E:

'='bA# O32'%!0'*07'b:'=<A#3?!!'E\'5
K&#5!K&5~]F'*!7'&'#'*V'#2!'E'F'bA#
F'*!7+'#2!_'R'0/#O:'=
'*E'F'bA#E'F3.'9'#'2'bA#\Z# E
'F3.'9'#'2v&'&]F'*!7'&'#'*VuZ# K0;#
16F'*!7Kg;BQ:2'!1'9#E'!FE'F
3.308'!1'9#'P3.'?F'*!7':'=<A#
E'F<A#+'*;&*&*'?FK<E'F#+
'*&'E'F3.0<A#5E'F30'!1'9+'*,
'E&'
X?%!'*P'*!7' '*;!E')O'*P5'*!7'^#&'
;&*&*F W''&.P'1P
HVTH: 45%2647%48@ %/0123%2
"'!K•"3&&'
M#2!'bA#
"'!K•"3&&'
M#2!'bA#
M1#O
:
'*P3
:
'*P6
,'E
v>r
9JO%>Pg1\:>L%/1l:

Tiểu luận môn Lập trình mạng
XE)O'*P5&')'*!7''*9'2;&*&*M9'25
:'*P&'`'*!7'E'F;'!K E'F6%!76#E'F
'9;9g'*,'E'bA#"'!K!?!( '+'1'#2!5'1

 '*!7''*9'2'1#OM1#O'*&''*!7^,!'*
+'/''1#OK/#;&*&*M1#OK/#;&*&*'*!7
''1'#2!5'1 '*!7'('16#17;&*&*F
;3&&'"3&&''*!7'/;&*&*M&3'b;&*&*2&''P
!@'*!7'F'&7!F+
'2Ot='+'#3.1%!#'2R7 MR'0
7!F&R!5)O'*P`%!#'2,O:'*P30
8:'='bA#EE:'*PQK(
M*3'?(':'='*('E'F<A#5'#1(''#
2!'E'FX?OF'#2! 5'#!1!(''*P83C'
**&;'*!R'6#'#2!M*P83C#'*I ('["J
E'F'bA#>('&'32'E'*P83C !R('
•v6#E'F'bA#M*P83C!R(''#2!'E'F
&';BQ'#2! ?:'='*;&*&*
M*'9'25&'`:'=QK('*'*;'!K"'!K ('E
'FQK('9'#'2'bA#6#E'F'bA#
M1'#2!'bA#'9'#'='1'#2!'bA#Q'?M1 (
OE'F;'!K ;3&&'Q'?M1'#2!'bA#,Q?!
'1'#2!'bA#CZ#'2 X.3'1'#2!'bA#'?'#
2!'7!0'*7!;'
M1#OB)'*r'&*&'T/#;&*&*5'1#OU&
32'2M*:;<O):'=5'1#O!?)'1
'#2!'*;&*&*M1'#2!!?H'#2!FBK<&'
' '#2!0QK("#!!?!1!;3&&'
"3&&''#;E '*!7^,!:'*P;&*&*5:'*P;&*&*;
'9,):'='9;92!):'='*07'*V5'*VF
BA!E;3&&'5'1'#2!<A#5 '1#O'*/#;&*&*5'.
%!#r'&*&' ;#!!?'1#O5'1'#2!<A#5;'!K'*/#
&'
*+*+m U12O2-n>So%/1l:

HVTH: 45%2647%48@ %/0123%2

Tiểu luận môn Lập trình mạng
,'Ev>rQQ,'*!7'')F#' #+&'
 ;&*&*>(';&*&*!RVQv>r5 &':'='*E'F
6#VQ 
"&*&*v>r083C('VQ'*#'P 83C'[VQ 
_&''*!'PL5WL'?'#2!'VQ'*('.
P3>(':'*P#'*IO' **&;'*5:'*P 
+(''2'*P(O _=Q83CVQv>rW
O(''#2!'VQFW''>h3;&*&*9:83C5;)
!1!v>r'b&'Uh83CVQ (''FK?!i
Kg('A!3C'9?_&'9#VQ'/F2!('VQ
!?'b;&*&* ;#(';&*&*35&'`1'*#'P'*P83C?'P*#
V'*/X7!  ,'E308!'=h2!('VQ3.
30Q('KV;O5)%!0'*V,'E'?'+*#(''?,6#
VQ'*(','E3 83C'*P83Cv>r
&'v>r;B'.,v>r?(':'='*('E
'F'bA#M*3'9,:'='bA#5&'0OF(''#
2!'bA#M#2! ')FKg'*#'P('VQ'*'*P
83Cv>rƒQ&'!1!(''VQQ'?5 O('•v'*J'
' !'bA#Y!.+F;BQ?K?!i(''#2!E
'F'bA#
rmi://hostname:port/servicename
M*;'#& '6#6W('V#`rT5*'AVVQ5
;&*&#& ('A!3C'9.'0VQ
>h3F(''#2!5&''?':'VQ'bA#
'2'%!#2+ ' F&R!E^)''*?=
Q ,E'F'bA#:0 ,E'FQK(
X7! '?F'.%!#;9#,'Ev>r' #' 15;'!K

 ;3&&'
XE'F;'!K ('E'F6%!75'*!7'0!1!E'F';&*&*
v>r1*ghVQv>rFVZ# ('#'25=3.
0 (':'*P W'5=Q&'E:'*P
E'F3M! ,'9,.,6#/5;'!KI'*!7
(''.,'('VQv>r<A#5)=5 '*07=:
'=)''*?=Q3.1%!#'2' !v>rg<!5
#+'*7 5=16!1!'2 &'v>r:0
HVTH: 45%2647%48@ %/0123%2
a„
Tiểu luận môn Lập trình mạng
(':'='*E'F6%!75E'F %!0C'R'0'2' 
W'
M+/#;&*&*5E'F;3&&',QU&!1!v>r2
'*!7!1! 'VQv>rXE'F;3&&'3.!RK0 W'
6#VQv>r`#'*I :'*PO!1!5 '*!7
!1!"#!3)''*?'+*#('#'2v>r5'P#'#0!R
('K0 W'Q'?6##'2XE'F W' F E'F
;3&&'5E'F :'=':= '*!732'%!0E'F
;'!K'*&'v>r>.P  ,O'*P'*<:05P;3&&'
F'K,' W''9'26#VQMR'0^P )''*?V
Q1%!#' $,3<'+\?83CVQ ROVQ]5 !
R:'*P W'6##'2VQv>r
-!J'.,F'*!7'2 5!'*0)':E:0
-,'*!7'i*#^#E'F;'!K ;3&&'Kg;BQ;3&'
MT>h3F'+*#5;3&&'U&!1!2F'*#K<E
'F;'!K'#;E'*,'Ev>r3.`+2E3?!^,!
!'EKR'3sE'F 308'!1'9#7!'?F'*!7('
'#;EWF'*07'b:'='bA#Y(';'!K'*!7('!1!'('
E'F;3&&'50'#;E\W 3?!^,!!'E5

E'FW0#]?'*!75%!'*P F #*;#M+/#
;3&&''#;EF3.Q+?'+3?!^,!!'E E
'F5%!'*P IF !#*;#X?'9,,Q 5
6#zK…&'z!'!'"'*&# zK…&'r!'"'*&#F;BQ? 
(!6#E'F
":@:'=6#E'F<A#'.%!#'*!#FQ'?
;#!
HVTH: 45%2647%48@ %/0123%2
XJc%>:KKXJ1:>J-% &cPVcP
"'!KzK…&'
;&&'\~]
"3&&'zK…&'
;&&'\~]
v&;;&
v&%!&;'
aa
Tiểu luận môn Lập trình mạng
{ M#E'FaF W''*M*PKV*&A&;'+*##
'*!#a†"3& a†"'!Ka†"'!K;F&7eYea'*
ea;!?)2a†"'!K5a†"'!KV!'*,
'#;E5!? 3.#V#`':'/E'Fa;#!:
'=':=
{ 2!:'=6#E'Fa'*07;Fa†"3&'*0
F7a†"'!K!?#32'%!0!ED+ea2!332'E+
W;9E'P'*!#"'!K;'.Kh2E'FeaM&:2 ea
!.Z*g#+'('*9'2E'Fa'*QK(
{ M*'9'25a†"'!K'*e` '*!#!?H'#;E
'9,#'=+53.0 P06#E'FaX? F
7! 5'Fa1!R('#,':=:'=
_E'Fea'*e


HVTH: 45%2647%48@ %/0123%2
-<K4>cP
-<K4>cP#
e
a
e
c
A@p>4\
Aqp>4\
-<K4>cP
A
r
&fcX

a
S
a
A
s
&fcX
ac
Tiểu luận môn Lập trình mạng
 !N+
tC#B#uv
N+A+ 2wJ/J:%Xb/J1V.>P`>>YpYfJH%>a%/K2L%+
M*,''O'*!5R7@K(#F0%!2''.%!#:2
+'*b':h:2 _AO'*O''9 ' ;93,M!5
'*'9'2(';E,'E3@K(#`IJ'*O''9'b1/PO5
'*O''9#'b1^#;93, '2'*P6#10@K( R71

0%!#'0%!2'
M*,'5,@K(#62!!1!'2'O(''*O''9^#;9
3,^#'*+3#!5'*O''9'?'?,'.%!#,'*#H
'.,#!
M*<+8a‚o‚5#*'$#*#*g#;93,'b'*+3#!`
'?'*O''92!LF'*)#!KgB O'.,F
+5D(';93,A0*#'*;93,3'&')#53. 
;93,'=#'?%!#;''*O''9  PO53. ;9/A
6#Q'!( 0V< 3.;9%!#;'K 6#'*O''9;9
3,2!;9/A6#,'EQ'!( '*O''9F%!#;'K<)5
/Q5'P;9%!#;'#*'3.QM!5;9/A'*O''9`Q
'!( ;9@K(K'*6#;93, P'2VZ#6##*''?
Q
0;B*g'#'?AV(''*O''9^#;93,6#,') 
%!#,‡'*ˆ\→]
HVTH: 45%2647%48@ %/0123%2



!
+
a
,-#.!/

!0


+
c
,-#.!/


!0

!
1

j

+
,23#.\

]KU1!

!
1



aj
Tiểu luận môn Lập trình mạng
S)'#A&A_'7'*O''9;93,
M*O''9'b16#;93,
Ta→Tc→Tj5
ka→kc→kj
2!Ta ;93,''., kc ;93,O':='P
Ta→kc
M*O''9;93,FVZ#;#!
2!e S #;93,6#D(''*+ eA0*#'*S'P'#e→S
2!e ''.,'b(''*+  S O'.,'P'#e→S
2!e→S S→5'Pe→

2!#;93,e SA0*#<#'2'*P*K,' 3.'*#H'.,
'P'#3.'?e→S#S→e'2'*P F ;;\e‰‰S]
N+N+ [%>2wJ/J:%Xb/J1VeJ1=1pYfJH%
@@.(';Eh;93,QK(3.%!#2
')#O'C
HVTH: 45%2647%48@ %/0123%2

A

N

*
Z
A
Z
N
Z
A

Z

A

N

*
Z
A
Z
N

Z
A

Z
M.,
ax
Tiểu luận môn Lập trình mạng
,'E@@.0/A
#3
 '2 L'#'?'9'@@'J#$X7!3,X@@Š
Sg'!O''R!')#6##*'p!R(''OF%!!O'
'9':0
N+*+ 24`>>-=%S]%/^R4>2wJ/J:%1l::<K-P>
Khái quát:
+ M!O'' ;9;!*(6# F'O'*!, W''
+ M!O'' F#*'\a‚o€]#*#5;BQ:2R!')#
,@K(@@.
Các giả định:
+ L*#0V.P+32'E ' '*'2'*P+
'.%!#3‹r‹z'OM= 5'.,3.'?;UA2+'&
'*O''93
+ 0VF'9'('i <'1#O
Các kiểu thông điệp:
+ \45167

6]>('!1!,'*!O 7876#'2'*P+
Œ!1! F''R''2'*P3
+ \45+67

6]@'b'2'*PT'2'*P+83+OF!1!'b

+8
+ \45967

6]M.,0'b+'.KK2'$*)3J7:
M., FB'R'0'2'*P3
HVTH: 45%2647%48@ %/0123%2
∀;93,6!2!

!'P7\]•7\!]
JM4fJH%Sx%/2x


+

!
+8


7\]•78\!] 78\!]•78\]
an
Tiểu luận môn Lập trình mạng
Các biến tiến trình:
+ 7

X@@QK(6#+53<'+'b„
+ ;

 FŽ„~a•=#'.,
Thuật toán:
+ Y(''2'*P'+'*+"


!E' +85;B'.,vwk
R!')#'R'0'*+'*,'E3?0'*+"


+ >h'*+!'*P(' F=#'.,!1!F;UA2'&'*O'
'9R!')#u@@ %!#,'*O''9' QF;BQ?
UR!')#
+ Y(''*+OF!1!5;#'.,  F!1!
6#'&'='9R!')# B(''.,'*0)vwT2!15%!#
,'*O''9' QF;BQ?•;9* K!(
+ ‘'<! (''2'*P3.'?' +86#23
OF'*0)'b'R'0'*+3'.,'*0);‡y!;!'ˆ
!1!KR'3s'b'2'*P35?L'#K2' FFOO'
+ XWK,':^#5(''*+' 786#3
a] OF'.,'*0)'b'R'0'*+I+
c] Œ!1!vwk6# <'*`6# FQK(6#
+ Y(''*+ ' 786#5;B3!2V0
vw2'R'0'*+Œ!1!6#F+3J'R'0 F'+')
? 2!'*+3#)?' 786#L5('
'*'*+K)'?KU'1!'9,786#P
+ +'(j\a]'.,1'2'h78F' \a]
'.,vwk5\a]'.,vwT \a]'.,vw
+ X('*i@K(M\'*M')#'*!KP'*!7'.,]YO
F'.,05'2'*P'2'&'?KU'1!' 
+ +'*b':h +'FR!')# !R'5PO'R'0 
F;^!1!'*D(''='9`(''2'*P!R';g<
`6# F
HVTH: 45%2647%48@ %/0123%2
a|

Tiểu luận môn Lập trình mạng
Thuật toán yêu cầu của P
i
:

 '*
p \\66]]’\6]
p \6]•\68]2!•W\’ •8]
Thuật toán nhận thông điệp của P
i
:
N+m+ yJ>JO%>24`>>-=%:<K-P>z24`>>-=%J1:P>V.#/P:{:X:|
− >Q'! ?0,!?'.,Kg32'F'.,
vw vwT
− 2!(''*+#' 783('!1!vwk25W2!!
1!#)6#/R!')#;:53.=!1!
#O'=M# 5)23*#3J786#
HVTH: 45%2647%48@ %/0123%2
←<au
broadcast \45166]u
;Ž•←\45166]u
wait

∀8=\;Ž•]•\;Ž8•]u
•7>
←<au
broadcast \45966]u
;Ž•←\45966]u
on receipt
of \451668]begin

←2\5]“au
;Ž8•←\451668]u
send\45+66]to8u
endu
of \459668]begin
←2\5]“au
;Ž8•←\459668]u
endu
of \45+668]begin
←2\5]“au
if \;Ž8•]’451then
;Ž8•←\45+668]u
endu
ao
Tiểu luận môn Lập trình mạng
M+')?5'?B(''.,@d02'R'0
!1!#)
− >(''*+;0)23OF'*0)'b'R'0'*+I+
'*3 786#5 !1!6#0Ig<`6#
 F
− M!O'' !1!c\a]'.,('B#!1!5B#I+
?'*0)
− ')#.F'+*#'*'!O''#*'\ F']
Phần yêu cầu của Pi :
+ B'.,451'R'0'2'*P'*'!O''#*':
+ M*!O 7

;#!3 +

OF'.,?7@ 'b'R'0'2'*P

3
Phần thu của P
i
khi nhận được thông điệp REQ từ P
j
:
a 2!+

3.!E'*!O 787

6#\#B'.
,451]5'P+

'*0)'.,?7@
c 2!+

#<'*787

'P+$+,@23
*)3J787

:
j 2!+!E'*!O 787

\$B'R'0'2'*P
3'.,451]5'P+

;;')#.

6#'.,!1!

6#/')#.
8
6#!1!'b+
8

p 2!

”
8
'P+

'*0)'.,?7@
p 2!

•
8
'P+

$+,@\2;#!3+32''L7'2
'&]
A!('F0%!2') !1!‡;:ˆ5FAVK<')
#.
&-p=%21=1>24`>>-=%
− 0#'!O''MJ#$W'/+'*b':h 3.
− "EF'., d*#78
+ #*'j\a]
+ v#*'#e*#•##c\a]
HVTH: 45%2647%48@ %/0123%2
a€
Tiểu luận môn Lập trình mạng

 !*
"#$%&''z%)*|
A+A G}41L4\.J>-=%
{ -2':'*P W''!O''#*''*"wv-wv5”j
{ q9#;&*&*'&3?!#  308' O'.,
{ q9R!'*L+'.,'*#H^#;&*&*
{ q9+:'*P;UA2'.,28= '*V@
@#*'
{ q9:'*P%!#;''*P'9;UA2'+;&*&*'* P
A+N JyJj48O>\.J>-=%
A+N+A Te%//JyJj48O>\.J>-=%
"BQ'!O''+'*b':h?0%!2'!1!6#K '!C
6#: F3%!';#!
 >(''2'*P B'.,?!1!;BQ' !5(''2
'*P;BQA' ! '*!7(''.'03
b2Q
 M*,'5:'*P!Rg'*(''*+ '2
'*P7V+<'*'*+35!1! 3!2V0
F'*!7:'*P!R'.%!#P'='.,5
!?'&36#,'Ei'./PO!1!;UA2
!1! '&(''*O''9R'V !.!.FW'*#
 2!`(''.,2:'*P!R'P'*O''92'?,
(''*O''9W'F+2!7!'.,2D('L'P
,;UA2L0'&3?!+'*b'*:h'* FQK(6#
'*+=#:'*P!RX7!G_'#F('
'*O''9W'
 M*O''9F'+'*+!R'?3.E'*O''9'52!')
#'*!73.FEVM*)F 3HK2'*+
'/2!'#!EABC'.,'&'*P'93.'/'
')#'*!75'P10'/2(''*O''9'H%!'6#1'*!7

'.,'b'*+3#!
A+N+N 678^Y%/1R4>Pg11=1X-nJ>2b%/SJHK>P:-SiJ/J_:1=1pcPVcP
\vwk55]>('!1!,'*!O 78"6#'2'*PTŒ!
1! F''R''2'*P3
HVTH: 45%2647%48@ %/0123%2
a‚
Tiểu luận môn Lập trình mạng
\vwT55]@'b'2'*PT'2'*PT…3TOF!1!'bT…
\vw55]M.,0'bT'.KK2'$*)3J"
M., FB'R'0'2'*P3
Thiết kế cấu trúc chung của các thông điệp:
:<K-P> ~• &cPVcPc1cJ €•€ &cPVcP&c%^ €•‚ -^ccpp €•‚ :>: •~
P-%/S]
• :<K-P>M*)'*V6#@@#*'
• &cPVcPc1cJM*)'"&*&*O^,!
• &cPVcP&c%^M*)'"&*&*B^,!
• -^ccppM*)'?,$+'.,5@'Z\vwk•w"M
!1! +8]5 '\vwTŒp'*0)RO!1!]5 '
\vwwe"wp0!1!$KV'*P$]5 *#I(';E$
3\zwMrzp$!1!32'E]5&\[r"zwMrz
p$!1!U'32'E]
• :>:!'*^1^,!/6#'.,1B\2!]
A+N+* 24`>>-=%:<K-P>V.1=12h=1S3%2/J=>P3Sx%/2xX-/J1
24`>>-=%:<K-P>
Y(''2'*P'+'*+"!E' +85;B'.,vwk
R!')#'R'0'*+'*,'E
>h'*+"!'*P(' F=#'.,!1!F;UA2'&'*O'
'9R!')#u@@ %!#,'*O''9' K(F;BQ?U
R!')#
Y(''*+OF!1!5;#'.,  F!1!6#

'&'='9R!')# B(''.,'*0)vwT2!15%!#,'*O''9
' K(F;BQ?•;9* K!(
‘'<! (''2'*P3.'?' +86#23
OF'*0)'b'R'0'*+3
M+5(''*+' 786#3
OF'.,'*0)'b'R'0'*+I+
- !1!vwk6# <'*`6# FQK(6#
Y(''*+ ' 786#5;B3!2V0vw
2'R'0'*+Œ!1!6#F+3J'R'0 F'+')? 
HVTH: 45%2647%48@ %/0123%2
c„
Tiểu luận môn Lập trình mạng
2!'*+3#)?' 786#L5(''*'*+K
)'?KU'1!'9,786#P
=12h=1S3%2/J=>P3Sx%/2xX-/J1
Te1AMR'0\AB+];BQ('K(2\$%%B7]'*V
3<'+ „
Te1NM*3ABC(';93,\C6DE]5TABC;#!'8K(
2 h;93,5 ')#R!\'&;'#]6#
JƒJ„^\>F6G=H]
Te1*>h'.,#'*V@@6#'2'*PB'+')?B
YTO(''.,'&;'#
;
5ABC;#!
a’>#A\

5
;
]
ck!#7Sc

jT'+'.,
X@@'+KR'3s'2'*P    '8:0
Các thời gian đánh dấu Lamport (Lamport timestamps)
HVTH: 45%2647%48@ %/0123%2
ca
Tiểu luận môn Lập trình mạng
Ví dụ về thời gian logic Lamport
*+*9O>j4y12n812TU%/>PQ%2
Pa
HVTH: 45%2647%48@ %/0123%2
Pn<A
Pn<N
Pn<*
Pn<m

A


N
N
*
*
m



ˆ

Š A…
ˆ

IG
%
'*V@@
>J<cp>:<K
M.,

A
N
*
m


ˆ
7'*J$%G
cc
Tiểu luận môn Lập trình mạng
Pc
Pj
Q%2A(Q%2N(Q%2*Y2'%!0+:'*P33<'+"&*&*#32'E
"&*&*;#!
HVTH: 45%2647%48@ %/0123%2
cj

×