1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Chương 5 Đồng bộ hóa đồng hồ pptx

73 3,2K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 5 Đồng bộ hóa đồng hồ pptx
Trường học DuyTan University
Chuyên ngành Hệ Thống Thông Tin
Thể loại Bài giảng
Định dạng
Số trang 73
Dung lượng 2,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Đối với hệ thống PC: Sử dụng phương pháp bù tuyến tính bằng cách bổ sung thêm hàm bù tuyến tính Linear compensating function vào system call của hệ điều hành  Đối với hệ thống cục

Trang 2

NỘI DUNG

Đồng bộ hóa

Đồng hồ vật lý

Đồng hóa đồng hồ vật lý

Đồng hồ logic

Đồng bộ hóa đồng hồ logic

Kết luận

Trang 3

• Ích lợi của mô hình đa luồng cho phép ứng dụng thực hiện nhiều công việc đồng thời Nhưng bên cạnh sự hữu dụng đó, việc tồn tại cùng lúc nhiều luồng trong môi trường có thể dẫn đến sự tranh chấp, ngăn cản họat động lẫn nhau giữa các luồng 

+ Bế tắc ( Dead Lock)

+ Cho kết quả sai lệch

• Hầu các ứng dụng như : thanh toán, điểu khiển tự động ( lắp ráp, phản ứng hạt nhân…), truy xuất database v.v…đồng bộ hóa có vai trò quan trọng

Tại sao phải đồng bộ hóa ?

Trang 4

• Sắp xếp thứ tự thời gian các sự kiện qua việc sinh ra các tiến trình đồng thời

-Nhằm mục đích:

• Đồng bộ giữa việc gửi và nhận các thông điệp

• Điều phối các hoạt động chung cho toàn hệ thống

• Sắp xếp thứ tự truy cập đồng thời cho các đối tượng được chia sẻ tài nguyên

Đồng bộ hóa là gì ?

Trang 7

Đối với hệ thống PC: Sử dụng phương pháp bù

tuyến tính bằng cách bổ sung thêm hàm bù

tuyến tính (Linear compensating function ) vào

system call của hệ điều hành

Đối với hệ thống cục bộ: Sử dụng thuật toán

Berkeley để đồng bộ hóa tất cả đồng hồ trên hệ thống cục bộ về giá trị trung bình ( Gusella & Zatti, 1989) hoặc NTP

ĐỒNG BỘ HÓA

Trang 8

Đối với hệ thống phân tán

- Mỗi trạm có một đồng hồ cục bộ của riêng mình

Không có đồng hồ chung  Không thể áp dụng các thuật toán đồng bộ hóa ở hệ thống cục bộ

- Các sự kiện xãy ra trên các trạm trong hệ thống

Trang 9

• là một dạng đồng hồ vật chất

• giữ thời gian trong ngày và thống nhất trên toàn hệ thống

Đồng hồ vật lý

Trang 10

 Đồng hồ thạch anh (Quartz clocks)

-1880 :

+ Được phát hiện bởi Anh em nhà Pierre Curie

+ Nén một tinh thể thạch anh & nó tạo ra một điện trường

+ Áp dụng một điện trường mà nó uốn cong

Trang 11

Đồng hồ thạch anh (Quartz clocks)

-1929 : Đồng hồ pha lê (Quartz crystal clock)

+ Sử dụng tia Laser tạo rung ở tần số32,768 Hz + Độ chính xác 6 phần triệu million seconds ở nhiệt 31° C

+ Đồng hồ có thể sai lệch < ½ sec/1 ngày

+ Độ ổn định, chính xác cao : ổn định đến 2 sec/1 tháng

+ Tiếng vang tốt có thể có độ chính xác xấp xĩ 1 second trong 10 năm

Các dạng của đồng hồ vật lý

Trang 12

Đồng hồ nguyên tử (Atomic clocks)

+ NIST (National Institute of Standards and

Technology)

đưa ra từ năm 1960

+ Giây (second) được định nghĩa là 9.192.631.770 thời kỳ bức xạ tương ứng với sự chuyển tiếp giữa hai mức hyperfine của cesium-

133

+ Độ chính xác: tốt hơn 1 giây trong sáu triệu năm

Các dạng của đồng hồ vật lý

Trang 13

Các dạng của đồng hồ vật lý

 Đồng hồ nguyên tử (Atomic clocks)

Caesium atomic clock, 1955 Hệ thống đồng hồ nguyên tử tại Đài quan sát

hải quân Mỹ ở Washington DC

Trang 14

- UTC0

+Thời gian năng lượng mặt trời trên kinh tuyến Greenwich

+Thu được từ quan sát thiên văn

Trang 15

- Đồng hồ thời gian thực: đồng hồ CMOS là mạch điều khiển bởi một máy dao động thạch anh

- Sử dụng Pin dự phòng để tiếp tục đo thời gian khi tắt điện

 Đồng hồ vật lý ở máy tính

Các dạng của đồng hồ vật lý

Trang 16

Các vấn đề xãy ra với đồng hồ máy tính

- Hai hệ thống ban đầu điều chỉnh để thoả thuận

về thời gian nhưng sau thời gian  Hai đồng hồ sai lệch

- Sự khác nhau giữa hai đồng hồ tại một thời điểm trong thời gian : Clock Drift

Trang 17

Sept 18, 2011

Các vấn đề xãy ra với đồng hồ máy tính

Giả sử chúng ta thiết lập máy tính thời gian đúng

Trang 18

Oct 23, 20068:00:00

Các vấn đề xãy ra với đồng hồ máy tính

Trang 20

• Hệ điều hành có thể làm điều này:

- Thay đổi tốc độ qua yêu cầu ngắt

+ Ví dụ :

nếu hệ thống yêu cầu ngắt mỗi ngày? 17 msec nhưng đồng hồ là quá chậm? yêu cầu ngắt tại, chẳng hạn 15 msec

- Hoặc chỉnh phần mềm : xác định lại

khoảng thời gian

+ Điều chỉnh thay đổi độ dốc của thời gian hệ thống: Linear compensating function

Đối phó với Driff

Trang 21

ĐỒNG HỒ VẬT LÝ

Perfect Clock

Trang 22

Drift with slow Clock

ĐỒNG HỒ VẬT LÝ

Trang 23

Drift with fast Clock

ĐỒNG HỒ VẬT LÝ

Trang 24

Clock synchronized skew

Compensating for a fast Clock

ĐỒNG HỒ VẬT LÝ

Trang 25

Sau khi đạt được thời gian đồng bộ hóa

– Tái đồng bộ định kỳ (Resynchronize periodically) – Ứng dụng kế tiếp của một chức năng bù tuyến tính thứ hai có thể mang lại cho chúng ta gần gũi hơn với độ dốc thật sự

Theo dõi điều chỉnh và áp dụng liên tục

– Ví dụ : trong hệ điều hành UNIX, người ta bổ sung

thêm hàm adjtime ở system call cứ sau 1ms sẽ

phát ra thông điệp yêu cầu điều chỉnh lại đồng hồ máy tính.

Tái đồng bộ hóa (Resynchronizing)

Trang 26

•Kỹ thuật đồng bộ đơn giản nhất

- Đồng bộ hóa từ máy khác

+ Với một chiếc đồng hồ chính xác hơn

+ Sử dụng thời gian của máy chủ : Time Server

Thiết lập thời gian thực hiện

ĐỒNG HỒ VẬT LÝ

Trang 27

Xét mô hình trao đổi thông điệp đơn giản của hệ thống mạng giữa 2 máy tính Client và Server như hình vẽ

Thiết lập thời gian thực hiện

Mô hình trao đổi thông điệp giữa 2 máy tính trong mạng

Trang 28

• Bù đắp cho sự chậm trễ (Compensate for delays)

- Chú ý về thời gian :

+ Thời điểm Client  Server: T0

+ Thời điểm Server trả về cho Client : T1

- Giả định sự chậm trễ mạng là đối xứng ( Kiến trúc mạng là như nhau trong suốt quá trình )

Thuật toán Cristan

Mô hình biểu quan hệ trao đổi thông điệp

giữa Client và Server

Trang 29

• Clients đặt thời gian để :

 Tnew = Tserver + (T1-T0 )/2

Thuật toán Cristan

Trang 30

• Độ sai lệnh biên (Error bounds)

- Nếu thời gian đi qua của thông điệp tối thiểu (Tmin) được biết :

+ Đặt giới hạn về độ chính xác của kết quả :

Thuật toán Cristan

Độ sai lệch biên xuất hiện trên mô hình trao đổi

Trang 31

• Độ sai lệnh biên (Error bounds)

- Biên độ (range ) = T1-T0-2Tmin

Tính chính xác của kết quả =

- Ví dụ

Gởi yêu cầu lúc 5:08:15.100 (T0)

Nhận được phản hồi tại 5:08:15.900 (T1)

Phản hồi có lúc 5:09:25.300 (Tserver)

Thời gian đã qua là : T1 -T0

5:08:15.900 - 5:08:15.100 = 800 msec

Dự đoán tốt nhất: dấu thời gian được tạo : 400 msec

Thuật toán Cristan

Trang 32

• Độ sai lệnh biên (Error bounds)

Thiết lập thời gian để Tserver+ thời gian trôi qua

Trang 33

• Độ sai lệnh biên (Error bounds)

Error = ± (900-100)/2 – 200 = ±800/2-200 = ±200 ms

Thuật toán Cristan

Trang 34

- Do Gusella & Zatti đề xuất 1989

- Giả sử máy không có thời gian chính xác nguồn

- Máy chạy thời gian kim cương (time dæmon) :

+ Máy được chọn lấy thời gian kim cương : máy chủ (master) + Những máy khác là slaves

- Nguyên tắc : Đồng bộ tất cả các đồng hồ đến trung bình

+ Master phiếu thăm dò ý mỗi máy theo định kỳ

Yêu cầu mỗi máy cho biết thời gian thời gian của minh

+ sử dụng thuật toán Cristian để bù cho độ trễ mạng

+ Khi kết quả là tồn tại, tính trung bình (gồm cả thời gian của master)

Thuật toán Berkeley

Trang 35

- Hy vọng: Tính giá trị trung bình, hủy bỏ cá thể có xu

hướng vượt qua xa đối với giá trị trung bình (đồng

hồ chạy nhanh hay chậm)

+ Điều chỉnh đồng hồ slave

+Tránh các vấn đề với sự chậm trễ mạng, nếu chúng

ta gửi một nhãn thời gian (time stamp)

+ Thuật toán đã quy định cho bỏ qua đồng hồ mà skew là quá lớn

 Tính toán lỗi chịu trung bình (fault-tolerant average) +Nếu master lỗi Thiết lập thời gian bù đắp để triệt tiêu thời gian sai lệch biên theo thuật toán Cristan

Thuật toán Berkeley

Trang 36

- Ví dụ về thuật toán Berkeley

Thuật toán Berkeley

1.Yêu cầu tất cả Slaves gởi timestamps đến Server

Trang 37

- Ví dụ về thuật toán Berkeley

(3:25+2:50+3:0)/3 = 3:05 2.Tính toán lỗi chịu trung bình (fault-tolerant average)

Thuật toán Berkeley

Trang 38

- Ví dụ về thuật toán Berkeley

3 Gởi bù đắp (offset) đến mỗi client

Thuật toán Berkeley

Trang 39

• Đối với các ứng dụng mạng, đặc biệt ứng dụng trên Internet ngày càng rộng rãi  Cho phép các Client qua mạng Internet thực hiện đồng bộ hóa đối với UTC

 đồng bộ hóa trên từng Subnet khác nhau :

Trang 41

Lamport gọi “happened-before” như sau:

- a b : sự kiện a đã xảy ra trước sự kiện b

Ví Dụ : a thông điệp được gửi đi, b: thông điệp nhận

+ Tính bắc cầu (Transitive):

nếu a b và b c thì a c

Happened-before

Trang 42

Đối với hệ thống PC: Sử dụng phương

pháp bù tuyến tính bằng cách bổ sung thêm hàm bù tuyến tính (Linear compensating function ) vào system call

của hệ điều hành

toán Berkeley để đồng bộ hóa tất cả đồng

hồ trên hệ thống cục bộ về giá trị trung

bình ( Gusella & Zatti, 1989)

ĐỒNG BỘ HÓA

Trang 43

ĐỒNG BỘ HÓA

Đối với hệ thống phân tán

- Mỗi trạm có một đồng hồ cục bộ của riêng mình

Không có đồng hồ chung  Không thể áp dụng các thuật toán đồng bộ hóa ở hệ thống cục bộ

- Các sự kiện xãy ra trên các trạm trong hệ thống có thể đồng bộ hoặc không

Làm thế nào để sắp xếp thứ tự của các sự kiện trên

hệ thống???

Trang 44

- Xét mô hình gồm các hệ thống Pi (i=1,2….)

- a,b,c,d, Các sự kiện xuất hiện trên Pi

Giả sử :

- Mỗi hệ thống duy trì đồng hồ riêng của chính mình

 Không có nguồn thời gian trung tâm

- Không có chỉ thị của các sự kiện

 Không có khái niệm “happened-when” Các hệ thống đôi khi giao tiếp hoặc không

Mô hình giả định

Làm thế nào để sắp xếp thứ tự của a,b,c,d ???

Trang 45

- Lamport gọi “happened-before” như

Trang 46

- Nếu a và b xảy ra trên các hệ thống/trạm khác nhau mà không trao đổi thông điệp thì không thể xác định :

Trang 47

a b

i

kj

Trang 48

- Mỗi thông điệp mang một dấu thời gian

(timestamp ) của đồng hồ gởi

- Khi một thông điệp được gởi đến : +nếu đồng hồ nhận < timestamp của thông điệp thiết lập lại đồng hồ hệ thống

+Ngược lại giữ nguyên

- Đồng hồ phải được điều chỉnh giữa 2 sự kiện bất kỳ trong cùng tiến trình

Thuật toán Lamport

Trang 49

a b

i

kj

Thuật toán cho phép chúng ta sắp xếp thứ tự thời gian trong

số các sự kiện liên quan - Thứ tự từng phần (Partial

ordering )

Trang 50

a b

i

kj

Thuật toán Lamport

a→b, b→c, …: trình tự các sự kiện tại địa phương

I(a,g,j),II(h,f),III(i,k) : Các thành phần đồng qui

Trang 51

Chúng ta có thể áp đặt mỗi dấu thời gian trở nên duy nhất

- Xác định dấu thời gian logic toàn cục (Ti, i)

+ Ti đại diện cho dấu thời gian Lamport địa phương + i đại diện cho số lượng tiến trình

Trang 52

a b

i

kj

Trang 53

- Nếu L(e) < L(e’) ( L : dấu thời gian Lamport )

Không thể kết luận rằng e → e’

Không thể kết luận là sự kiện có quan hệ nhân quả

Giải pháp: sử dụng một đồng hồ vector

Phát hiện quan hệ nhân quả (causal relations)

Trang 54

• Do Fidge, Mattern và Schmuck đề xuất 1988

• Quy tắc

1 Vector khởi V tạo có giá trị 0 tại mỗi tiến trình/trạm

Vi [j] = 0 với i, j =1, …, n

2 Tăng tiến trình của phần tử của vector ở vector địa

phương trước khi có sự kiện timestamping

Vi [i] = V i [i] +1 i [i] i [i]

3 Thông điệp được gửi từ tiến trình Pi với Vi thì được gắn

liền với nó

4 Khi Pj nhận được thông điệp từ hệ thống khác thì tiến

hành so sánh vectơ thành phần bởi thành phần tương ứng

và thiết lập véc tơ địa phương theo:

Vj [i] = max(V i [i], V j [i]) for i=1, …, n

Vector clocks

Trang 55

Vector timestamps

fe

Trang 60

Vector timestamps

Trang 62

Vector timestamps

Trang 63

Vector timestamps

Trang 64

Vector timestamps

Trang 65

Vector timestamps

Trang 66

Tiến trình

chờ xử lý

ĐỒNG HỒ LOGIC

Clock _Vector_Array

OS

P1 P2

P3

Lập trình viên

P4 P6 P5

CPU

S2

S1

Trang 67

- Cho 2 sự kiện bất kỳ e, e’

Nếu e → e’ thì V(e) < V(e’)

Cũng giống như thuật toán của Lamport

Nếu V(e) < V(e’) thì e → e’

- Hai sự kiện đồng qui nếu xãy ra (He || He’): Tức không xãy ra V(e) ≤ V(e’) hoặc không V(e’) ≤ V(e)

So sánh vector timestamps

Trang 68

Xác lập quan hệ nhân quả

Trang 69

1 Cài đặt các file trên mỗi hệ thống lưu trữ đồng

hồ vector Hi (i =1 n), Hi được gọi là đồng hồ cục bộ của trạm Si(i là số thứ tự của trạm trong

hệ, i =1 n, n số trạm trong hệ)

2.Cập nhật đồng hồ logic ( cập nhật và tái tạo bản sao )

3.So sánh 2 vector Hi và Hj

4.Xác lập quan hệ nhân quả của 2 sự kiện

Đồng bộ hóa ứng dụng trên các hệ thống phân tán

Trang 70

- Vector đồng hồ là một cơ chế được ứng dụng các hệ phân tán  tạo bước đột phá trong đặt nền tảng để giải quyết các bài toán có độ phức tạp cao trong môi trường tài nguyên hạn chế hoặc phải chia sẻ

đồng hồ

(http://gsd.di.uminho.pt/members/cbm/ps/itc2008.pdf)

KẾT LUẬN

Trang 71

TÀI LIỆU THAM KHẢO

[1] Colin J Fidge (February 1988) "Timestamps in Message-Passing Systems That Preserve the Partial Ordering" In K Raymond (Ed.)

Proc of the 11th Australian Computer Science Conference (ACSC'88)

pp 56–66 Retrieved 2009-02-13.

[2].Mattern, F (October 1988), "Virtual Time and Global States of

Distributed Algorithms, Chateau de Bonas, France: Elsevier, pp 215–226

[3].lmeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Interval Tree Clocks: A Logical Clock for Dynamic Systems", in Baker, Theodore P.;

Bui, Alain; Tixeuil, Sébastien, Principles of Distributed Systems, Lecture

Notes in Computer Science, 5401, Springer-Verlag, Lecture Notes in Computer Science, pp 259–274

[4] Torres-Rojas, Francisco; Ahamad, Mustaque (1999), "Plausible

Trang 72

TÀI LIỆU THAM KHẢO

[5] S Mullender ed., "Distributed Systems", 2nd ed., Addison-Wesley, 1993

[6] Jie Wu, "Distributed Systems Design",

Addison-Wesley, 2008

[7] G Coulouris, J Dollimore, T

Kinberg, "Distributed systems : Conceptand Design“ , Australia IASTED, ACTA Press

Trang 73

THANKS !

Ngày đăng: 07/03/2014, 08:20

TỪ KHÓA LIÊN QUAN

w