jhjh
Trang 1Kỹ Thuật nhỡn Thời gian
(Time stamp)
Ky thuat nhan Thời gian đơn giản
Kỹ thuật nhẽn thời gion đọc / Việt
Kỹ thuật nhỡn thời gian nhiễU phiên bản
Trang 2Kỹ thuật nhỡn thời gian
đơn giản
Trang 3Nguyén ly cua ky thuat
e Mdi giao tac T dwac gan mét nhan
thoi gian TS(T), ghi nhan thei diém phat sinh cua T
- Mỗi đơn vị dữ liệu A được gón một
nhan thoi gian TS(A]) ghi nhận lại
TS(T) cua giao tac T da thao tac
thanh céng lén A gan nhat
Trang 4Nguyén ly (tt)
e Mét giao tac T thao tac thanh
công lên A néu TS(T) >= TS(A)}
- Ngược lại thi T sẽ không được thao
tác lên A vò bị hủy đề †thực hiện lại
với một nhõn TS[T) mới lớn hơn tât†
ca cac nhan dang co
» TS(A) > TS(T) 2
Trang 5Thu tuc doc
Procedure Read (T,A)
Begin
IF (TS(T) >= TS(A)) Then
Begin
Read (A);
TS(A):= TS(T): End
Else
Abort T End
Trang 6Thủ †ục viê†
Procedure Write[T,A]
Begin
IF (TS(T) >=TS(A)) Then
Begin
Write(A):
TS(A):= TS(T);
End Else
Abort T
Trang 7Vi du
TS(T)=100 TS(T)=200 TS(A)=0 TS(B)=0
Read(A)} TS(A)= 100
A:= A+10
Read(A] TS(A)=200 B:=B+A
Reodl|B]
Abort
Trang 8Kỹ Thuật nhỡn Thời gian
doc/viét
Trang 9Nguyên lý
e Chia nhan cua don vi d@ liéu A
thanh 2
> RIS(A) : Ghi nhan nhan cua giao tac
da doc A thanh công gân nhat
> WIS(A): Ghi nhan nhan cua giao tac
đö viê† lên A thònh công gan nhat
Trang 10Thu tuc doc
Procedure Read (T,A)}
Begin
IF (TS(T) >= WTS(A}) Then
Begin
Read(A);
RTS(A):= Max(TS(T),RTS(A)) End
Else
Abort T End
Trang 11Thủ †ục viê†
Procedure Write(T,A)
Begin
IF (TS(T) >= RTS(A}) AND TS(T) >= WTS(A)}) Then
Begin
Write(A);
WTS(A):= TS(T);
End Else
Abort T End
Trang 12Ag
a e
eee ca a là
hi ae đớn
[FF oe SE
a
[oe ae aa
ote
eras
gee Đi gel
Vi du
T2 TS(T1)=100 TS(T2)=200 | RTS=0,WTS=0 RTS=0,WTS=0
Read(A)} RTS=100
=B+10
“AB
ite(B) WTS=200
rite(A} WTS=100
Read(A)} RTS=200
=A+10 Write (A} WTS=200 Read(B})
Abort
Trang 13Luat Thomas
s Nhận xé† trường hợp giao tac T
muôn viét len A, nhung nhan cua T
nnw sau:
RIS(A) < TS(T)< WTS(A)
Thật sự có nên hủy T (Abort T) 9
Trang 14Thuật toán việt cải tiễn
Procedure Wriie[T,A]
Begin
IF (TS(T) >= RTS(A)) Then
IF(TS(T) >= WTS(A)) Then
Begin
Write(A);
WTS(A):= TS(T); End
Else
Abort T End
Trang 15Nhan thoi gian nhiéu phién
Trang 16Nguyên ly
- Mỗi giao tóc có một nhãn thời
gian TS(T}
e Mdi don vi dé liéu A duoc Iwu trữ
thanh nhiéu phién ban A (version)
e Mdi Phi6n ban A; CO cdc nhan
đọc/viết riêng RTS(A.),WTS(A)
- Môi phiên bản A, sẽ có một gió trị
VỊA¡j
Trang 17Thuật toan doc
Procedure Read (T,A}
Begin
i= chi s6 cua phiên bản cuéi cua A
While (TS(T) < WTS(A,)]
I:=I- Ì;
Read(A\):
RTS(A,):= MAX[TS(T),RTS(A)));
End
Trang 18e
,
e
,
x
O
e
⁄
|
=TS(T)
0
A
nk
Thuat toan viet
Write(A,,,]
WTS(A,,,]
RETS(A.n]
e
,
N
| IF(TS(T) >= RTS{AI)) then
Begin
Abort T
While (TS(T) < WTS(A,))
j-
Else
Begin Procedure Write[T,A]
En
Trang 19Vi du
TS=100 TS=200 RTS=0,WTS=0 RTS=0,WTS=0
Read(A) RTS=100
A:=A+20
B:=B*10
Write (A] RTS=0,WTS=I00
Read(A] RTS=200
B:EB+A
Trang 20Vi du
lã T2 AO BO TS=100 TS=200 RTS=0 RTS=0
WTS=0 ARTY
WTS=0
WTS=0 :=B+lO
WTS=200
=A+10
WTS=2 :=A+20
Write RTS=O =0
WTS=100 WIS=200