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

Tiểu luận môn hệ phân tán Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao

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 (344.4 KB, 25 trang )

Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
Đề tài:
THUẬT TOÁN GẮN BÓ TRÊN CƠ SỞ DẤU VÀ BÀI TOÁN
DUY TRÌ MỘT SỰ GẮN BÓ MẠNH GIỮA CÁC BẢN SAO
Giáo viên hướng dẫn: PGS. TS. Lê Văn Sơn
Học viên: Trần Thị Thùy Dương
Ngành: Khoa học máy tính
Khóa học: 20 - 2014
Chương 1. GIỚI THIỆU CHUNG
Bài tập tiểu luận Hệ tin học phân tán 1
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
1. Sơ lược về hệ tin học phân tán
1.1. Định nghĩa
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System)
là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các
vị trí khác nhau được liên kết với nhau thông qua phương tiện viễn thông dưới
sự điều khiển thống nhất của một hệ điều hành.
1.2. Các thực thể trong hệ phân
Hệ phân tán gồm 4 thực thể:
Hình 1. Bốn thực thể của hệ tin học phân tán
1.3. Ưu điểm của việc sử dụng chung tài nguyên
- Tăng tốc độ bình quân trong tính toán xử lý.
- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên.
- Tăng độ an toàn cho dữ liệu.
- Đa dạng hóa các loại hình dịch vụ tin học.
- Bảo đảm tính toàn vẹn của thông tin.


Tuy nhiên, nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiết
lập hệ, liên quan việc cấp phát tài nguyên dùng chung cho các tiến trình.
Điều quan trọng đặt ra, là làm thế nào để hệ luôn đảm bảo sự gắn bó thông
tin, đặc biệt là thông tin dùng chung. Hệ tin học phân tán cần phải có các cơ chế
kỹ thuật đủ mạnh nhằm duy trì sự gắn bó thông tin trong quá trình hoạt động của
các tiến trình và sự trao đổi thông tin với nhau sao cho hệ thống tránh được các
Bài tập tiểu luận Hệ tin học phân tán 2
Các hệ
thống
phần
mềm
Các hệ
thống
phần
mềm
Tập
hợp
phần
cứng
Tập
hợp
phần
cứng
Hệ
thống
truyền
thông
Hệ
thống
truyền

thông
Hệ
thống
dữ liệu
Hệ
thống
dữ liệu
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
trường hợp có thể dẫn đến hệ thống không gắn bó.
2. Vấn đề truy cập và xử lý thông tin trong hệ tin học phân tán
2.1. Đặt vấn đề
Trong hệ tin học phân tán, vấn đề truy cập và xử lý thông tin trong hệ là
một những vấn đề phức tạp. Để đơn giản, chúng ta sẽ nghiên cứu một ví dụ cụ
thể về việc quản lý các tài khoản của một ngân hàng. Mỗi một người mở tài
khoản tại ngân hàng sẽ được lưu trữ trong một bản ghi của cơ sở dữ liệu
(CSDL). Các trường của bản ghi này bao gồm họ và tên, địa chỉ, điện thoại và
một khoá duy nhất (mã số) cho người đó. Mã số đóng vai trò con trỏ đến CSDL
khác chứa các lần thu tiền vào và rút tiền ra từ tài khoản. Cuối cùng ta phải có
CSDL chứa số dư. Số dư là số tiền có trong tài khoản ở thời điểm xem xét của
từng người gửi tiền. Trạng thái của số dư trong tài khoản được khống chế ở mức
xác định ví dụ như số dư không được <= N cho trước. Điều đó cũng đồng nghĩa
với việc đảm bảo trong tài khoản của người sử dụng không bao giờ có giá trị
bằng 0 hay giá trị âm.
Do vậy, để nghiên cứu ta cần giả định một số quy tắc nhất định cho việc
hoạt động của hệ. Các quy tắc này thể hiện trong bảng sau đây:
STT Quy tắc
1 Chỉ có một loại phép toán (hay giao dịch) duy nhất là chuyển
khoản từ tài khoản này sang tài khoản khác.
2 Hệ có số lượng tài khoản cố định.
3 Không có trao đổi nào khác diễn ra ngoài ngân hàng.

4 Ngân hàng không được phép tiết lộ bí mật về số dư của khách.
Xét các quy tắc có tính chất điều kiện như trên, sau khi thực hiện xong hoàn
toàn một giao dịch nào đó, hệ quản lý giao dịch cần phải đảm bảo hai đặc tính
sau đây:
STT Ký hiệu Đặc tính
1 P1 Tổng tất cả các số dư phải là một hằng số.
2 P2 Số dư cho một tài khoản là đại lượng >= 0.
Bài tập tiểu luận Hệ tin học phân tán 3
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Hai đặc tính này gọi là đặc tính trạng thái tổng quát của CSDL (hay là các
ràng buộc toàn vẹn của hệ). Ta nói rằng trạng thái hệ được gắn bó, nếu hệ mang
hai đặc tính vừa nên trên.
Phép toán chuyển khoản thể hiện bằng cách trừ đi một giá trị P nào đó ở
một tài khoản và cộng chính giá trị đó vào tài khoản khác. Nếu ta ký hiệu A là
số dư tài khoản bị trừ đi và B là số dư tài khoản được cộng vào, thì chương trình
thể hiện giao dịch này có thể viết như sau:
Nếu A >= P thì
A := A - P (a)
B := B + P (b)
nếu không
<xử lý theo kiểu séc không có tiền bảo chứng>
kết thúc nếu.
Theo thuật toán thể hiện bằng đoạn chương trình trên, ta cần lưu ý hai điểm
sau đây:
1) Giả sử rằng ta thực hiện đồng thời hai séc trích từ A hay rót vào B. Việc
truy cập thông tin trên mỗi tài khoản không thể tiến hành theo kiểu tuỳ ý mà
phải đảm bảo loại trừ tương hổ ở mức tương hổ. Việc loại trừ đó có thể thực
hiện theo các kiểu khác nhau, một trong các kiểu đơn giản nhất là loại trừ ở mức
toàn CSDL và hệ quả là loại bỏ các phép song song. Có thể áp dụng loại trừ ở
mức từng tài khoản riêng biệt.

2) Giả sử rằng bộ xử lý thực hiện giao dịch bị rơi vào trạng thái không làm
việc được tại thời điểm giữa a và b. Tài khoản A đã được trừ trong khi B còn
chưa được cộng. Nói cách khác đặc tính P1 không thể đảm bảo gì hơn nếu dừng
lại ở đây. Ta cần phải bổ sung thêm cho hệ một đặc tính nữa nhằm vào điều vừa
nêu. Đó là sau khi thực hiện một giao dịch hoặc là tất cả các cập nhật đều được
tiến hành hoặc là trạng thái các tài khoản không thay đổi.
Như vậy, lưu ý thứ 2 cho phép ta đảm bảo được phép gắn bó dữ liệu trong
Bài tập tiểu luận Hệ tin học phân tán 4
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
điều kiện có sự cố. Đó chính là đòi hỏi quan trọng đối với toàn hệ trong việc truy
cập thông tin.
Bây giờ, ta giới thiệu một loại giao dich mới. Đó là giao dịch kèm theo tỷ lệ
lợi nhuận tiền gửi t có nghĩa là sau một khoảng thời gian nào đó số dư này được
tính tăng lên bằng cách cộng số dư với lợi nhuận ngân hàng.
Ta ký hiệu: U - giao dịch mới
T - các giao dịch chuyển khoản
Và bây giờ các ràng buộc toàn vẹn của hệ là:
STT Ký hiệu Đặc tính
1 P’
1
Thực hiện một lượng giao dịch T nào đó không làm thay
đổi tổng của các tài khoản
2 P’
2
Trong một tài khoản, số dư bao giờ cũng >= 0
3 P’
3
Thực hiện n giao dịch loại U nâng tổng của các tài khoản
bằng (1+t)n.
Cần lưu ý rằng nếu ta cho phép các giao dịch loại U và T hoạt động song

song thì có nguy cơ phá vở đặc tính P

3
.
2.2. Sự gắn bó thông tin
2.2.1. Điều kiện giả định và thực tế
Ta có một tập hợp thông tin nào đó có thể được truy cập bởi một tập hợp
các tiến trình. Số lượng đối tượng thông tin có thể truy cập và số lượng tiến trình
có nhu cầu thông tin là cố định. Hệ này phát triển rời rạc theo thời gian, giữa các
điểm xác định, ta có thể nhận biết được trạng thái thực của chúng, nghĩa là các
giá trị của đối tượng và ngữ cảnh thực hiện của các tiến trình. Hệ như vậy hoạt
động với độ ổn định tuyệt vời.
Các điều kiện giả định trên so với hệ thực tế có những điểm khác nhau căn
bản:
- Các đối tượng và các tiến trình có thể được tạo lập và huỷ bỏ có tính chất
động trong suốt quá trình tồn tại của hệ.
- Các đối tượng và các tiến trình có thể được phân tán trên các trạm khác
Bài tập tiểu luận Hệ tin học phân tán 5
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
nhau liên hệ với nhau qua hệ thống viễn thông.
- Hệ thống viễn thông và các tiến trình là các đối tượng có thể xảy ra sự cố kỹ
thuật.
2.2.2. Tác động và giao dịch
Các đối tượng khác nhau của hệ không phải là các đối tượng độc lập nhau,
chúng quan hệ với nhau bởi tập hợp các quan hệ gọi là các ràng buộc toàn vẹn.
Các ràng buộc này thể hiện sâu sắc các đặc tính riêng biệt của hệ.
Trạng thái của hệ thoả mãn một tập các ràng buộc toàn vẹn gọi là trạng thái gắn
bó.
Các nhà thiết kế và vận hành hệ mong muốn rằng việc thực hiện các tiến
trình phải duy trì cho được hệ trong trạng thái gắn bó. Để chính xác hoá đặc tính

này, cần phải lưu ý là trạng thái của hệ chỉ được xác định ở mức quan sát cho
trước.
Ta quan tâm đến hai mức quan sát:
Stt Mức Giải thích
1 NSD
Tiến trình là một dãy thực hiện các giao dịch. Giao dịch đó là
chương trình duy nhất được thực hiện từ một trạng thái gắn bó
dẫn hệ đến một trạng thái gắn bó khác.
2 Hệ thống
Mỗi giao dịch được cấu tạo từ một dãy các tác động được thể
hiện như sau. Nếu 2 tác động A và B thuộc hai giao dịch khác
nhau được thực hiện bởi hai tiến trình thì hiệu ứng tổng quát
của chúng sẽ là hiệu ứng của dãy (A;B) hoặc là (B;A)
Ví dụ:
Trong hệ thống quản lý tài khoản ngân hàng, mỗi số dư tài khoản được thể
hiện bằng một bản ghi. Ta cần lưu rằng
- Phép chuyển giá trị từ tài khoản này sang tài khoản khác được xem như là
một tác động.
- Đọc và ghi một bản ghi là các tác động, nếu hệ quản lý các tập tin đảm
bảo tính không chia cắt được của chúng.
2.2.3. Trật tự hóa các tác động
Bài tập tiểu luận Hệ tin học phân tán 6
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Cho một tập các giao dịch M = (T1, T2, ,Tn) lần lượt được thực hiện bởi
các tiến trình độc lập p
1
, p
2
, , p
n

. Việc thực hiện tuần tự có nghĩa là thực hiện
tất cả các giao dịch của M theo kiểu nối đuôi nhau và tuân thủ một trật tự nào
đó. Sự gắn bó dữ liệu của hệ được bảo toàn, theo định nghĩa, bằng việc thực
hiện riêng biệt từng giao dịch. Do vậy, nó cũng đảm bảo trong chế độ thực hiện
tuần tự của M.
Trong trật tự tuân thủ trật tự nội tại của từng giao dịch, dãy này bao gồm tất
cả các tác động cấu tạo nên giao dịch M; mỗi một tác động chỉ xuất hiện một và
chỉ một lần. Một dãy các tác động như vậy được gọi là trật tự hóa của tập hợp
các giao dịch M.
Ví dụ: Quay lại vấn đề bài toán ở phần 1 và xem xét ba trật tự hóa có thể là
S1, S2, và S3
Hình 2: Trật tự hóa S1
Hình 3: Trật tự hóa S2
Bài tập tiểu luận Hệ tin học phân tán 7
Giao dịch loại T
A:=A-P
A:=(1+t)xA
B:=(1+t)*B
B:=B+P
Giao dịch loại U
Giao dịch loại T
A:=A-P
A:=(1+t)xA
B:=(1+t)*B
B:=B+P
Giao dịch loại U
Giao dịch loại T
A:=A-P
A:=(1+t)xA
B:=(1+t)*B

B:=B+P
Giao dịch loại U
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Hình 4: Trật tự hóa S3
Ta nhận thấy dễ dàng là trật tự hóa S2 có tác dụng tương đương với trật tự
hóa tuần tự S3, trong khi đó trật tự hóa S1 lại khác. Trong trật tự hóa S2 và S3,
các tác động cập nhật lần lượt của tài khoản A và B đều được thực hiện theo
cùng một tuần tự, còn trong trật tự hóa S1 thì trật tự tác động cập nhật tài khoản
B bị đảo ngược.
Ví dụ này cho ta thấy sự quan trọng của việc đảm bảo trật tự khi cập nhật
thông tin.
2.2.4. Triển khai giao dịch tôn trọng sự gắn bó
Cho một tập hợp giao dịch M={T
1
,T
2
…,T
n
}. Một trật tự hóa của tập hợp
các tác động thành phần sẽ tương ứng với việc thực hiện hoàn toàn các giao
dịch. Việc thu được một trật tự hóa gắn bó chỉ có thể thành công khi áp dụng các
ràng buộc trên trật tự thực hiện các tác động. Nguyên lý của phương pháp là ở
chỗ làm chậm một tác động nào đó cho đến thời điểm mà sự thực hiện của nó
không còn có nguy cơ phá hủy sự gắn bó của trật tự hóa.
Để đảm bảo các giao dịch trên tôn trọng sự gắn bó thông tin thì người ta
đưa ra các phương pháp, cơ chế để đảm bảo khi giao dịch vẫn có sự gắn bó
thông tin toàn vẹn dữ liệu trên cơ sở dữ liệu phân tán. Cụ thể ta có cơ chế then
cài:
o Then cài loại trừ tương hỗ.
o Then cài lựa chọn đối tượng.

o Giao dịch hai pha.
Bây giờ ta tưởng tượng rằng các đối tượng được phân tán trên nhiều trạm
khác nhau và được nối với nhau thông qua hệ thống viễn thông và rằng các tiến
trình diễn ra trên các trạm khác nhau. Hệ thống viễn thông cho phép các tiến
trình trên các trạm khác nhau có thể trao đổi các thông điệp với nhau. Ta giả
định rằng các tiến trình và các phương tiện truyền thông là các đối tượng có thể
rơi vào sự cố. Một hệ quản lý tập hợp thông tin phân tán bao gồm:
Bài tập tiểu luận Hệ tin học phân tán 8
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Stt Cơ chế
1
Cơ chế cho phép sắp xếp một cách tổng quát các tác động của cùng một
giao dịch, ngay cả khi các tác động này diễn ra trên các trạm khác nhau.
2
Cơ chế điều khiển các tranh chấp truy cập cục bộ vào các đối tượng đảm
bảo tôn trọng tính toàn vẹn của các đối tượng truy cập cục bộ này.
3
Cơ chế có khả năng xử lý các bế tắc và thiếu thốn vô hạn, hậu quả của
việc hủy bỏ các giao dịch.
4 Cơ chế phục hồi các giao dịch đã hủy bỏ hay xử lý các sự cố.
2.2.5. Quản lý gắn bó các giao dịch
Bây giờ ta hãy xem xét một hệ, trong đó các đối tượng được phân tán trên
nhiều trạm, không có bản sao mỗi đối tượng chỉ tồn tại có một bản duy nhất.
Một giao dịch T
j
có thể tham chiếu đến các đối tượng nằm trên các trạm khác
nhau và do vậy gồm nhiều tác động thực hiện trên nhiều trạm. Như vậy ta phải
xác định trên một trạm S
i
một tiến trình P

ji
với nhiệm vụ thực hiện các tác động
giao dịch T
j
trên S
i
, các tác động được thực hiện trên các trạm khác nhau có thể
tiến hành theo kiểu song song.
Các phương pháp để quản lý gắn bó các giao dịch như: Phương pháp dự
phòng để chống bế tắc, phương pháp dựa vào việc hạn chế các khả năng diễn ra
bằng cách phát hiện bế tắc có tính chất động, điều đó dẫn đến hủy bỏ các giao
dịch.
Chương 2: THUẬT TOÁN GẮN BÓ TRÊN CƠ SỞ DẤU
1. Phương pháp sắp xếp kiểu đóng dấu:
Đóng dấu là hành vi gán giá trị nguyên cho một thông điệp nhằm ghi nhận
thời điểm truyền trên cơ sở tham chiếu đồng hồ lô gích.
Bài tập tiểu luận Hệ tin học phân tán 9
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Nội dung cơ bản của phương pháp này là trạm phát được gắn một giá trị gọi
là dấu. Giái trị này có tính chất thời điểm cho trạm phát thông tin và dựa vào
đồng hồ lô gích cục bộ của chính trạm. Các đồng hồ này được lấy lại thông qua
hội thoại giữa các trạm.
1.1. Nguyên lý:
Tập hợp tất cả các yêu cầu cập nhật được sắp xếp theo cùng một kiểu trên
tất cả các trạm nhờ cơ chế dấu. Theo đó mỗi một yêu cầu được phát đi cho tập
hợp các trạm, trên mỗi trạm tồn tại một tiến trình server đảm nhận nhiệm vụ tiếp
nhận các yêu cầu theo một trật tự về dấu. Điều đó cho phép có một sự gắn bó
yếu giữa các bản sao.
1.2. Triển khi hệ số ổn định:
Các giao dịch cần xét ở đây là các khả năng đọc, ghi hay cập nhật. Cập nhật

được xác định như một dãy các thao tác đọc rồi ghi, thao tác kiểm tra - đọc tức
thì trạng thái hiện hành của bản sao.
Mỗi một server tiếp nhận các yêu cầu ghi đến các trạm cục bộ ở thời điểm
cho trước. nó tiếp nhận các yêu cầu và tính toán trên cơ sở dấu theo tiêu chí lâu
nhất. Điều đó dẫn đến chúng ta cần phải chú ý ở hai trường hợp:
- Trường hợp 1: Tập hợp các yêu cầu ghi khi chờ chứa cá yêu cầu từ tất cả
các trạm khác. Trong trường hợp này các yêu cầu đi qua, nếu chúng tồn tại, là
mới hơn so với các yêu cầu đã đi qua. Nói cách khác, yêu cầu lâu nhất chính là
yêu cầu đang chờ.
- Trường hợp 2: Tồn tại các trạm mà không có bất kỳ yêu cầu nào được
truyền đến. Ta giải quyết bằng cách truyền cho tất cả các trạm một thông điệp
yêu cầu và bắt buộc phải xác nhận. Do vậy, sau một khoảng thời gian theo giả
thiết về độ ổn định ta sẽ xác nhận: hoặc là các yêu cầu đi qua, hoặc là trả lời các
thông điệp yêu cầu. Lúc này, ta nói được các thông điệp đến từ tất cả các trạm.
1.3. Các hành vi bên ngoài chế độ bình thường:
Có hai vấn đề mở rộng hơn đối với thuật toán này là cho phép rút ra hay
chèn vào tuỳ ý một trạm nào đó. Điều đó, dẫn đến hai vấn đề sau chúng ta cần
phải tôn trọng:
Bài tập tiểu luận Hệ tin học phân tán 10
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
- Vấn đề 1: Việc đột nhiên biến mất một trạm nào đó pahỉ được các trạm
khác nhận biết một cách tự động.
- Vấn đề 2: Việc phát đi một thông điệp là phép toán không thể chia cắt đi
được nữa. Đó là một thông điệp hoặc là tất cả các trạm đều phải nhận được hoặc
là không một trạm nào nhận được cả.
Vì vậy, nếu điều kiện đầu tiên được khống chế thì điều kiện thứ hai mới
được đảm bảo.
2. Khái quát thuật toán quản lý nhiều sao
Thuật toán cho phép sao lại các thay đổi của một đối tượng trên các bản sao
khác nhau. Cụ thể trong cơ chế then cài: Một giao dịch nào đó đang thực hiện

phép then cài trên một đối tượng muốn giành quyền sử dụng đối tượng này theo
một vài kiểu truy cập nhất định. Cơ chế then cài gán hay không gán quyền truy
cập này căn cứ vào quy tắc tiền định như loại trừ tương hỗ, luật đọc, hiệu chỉnh
thông tin,… Nếu quyền được thừa nhận thì đối tượng bị cài then bởi giao dịch.
Nếu không, tiến trình giao dịch bị khoá và đối tượng không bị cài then. Cơ chế
cài then cho phép một giao dịch có thể giải phóng đối tượng mà nó đã cài then.
Nếu ta có n bản sao b
1
, b
2
, …, b
n
của đối tượng b, một trong các ràng buộc
toàn vẹn là:

Để tham chiếu đến b, cần phải thực hiện giao dịch:
Để thực hiện việc cập nhật vào các bản sao, ta cần phải cài then chúng một
cách hợp thức theo kiểu loại trừ.
Bài tập tiểu luận Hệ tin học phân tán 11
b
1
= b
2
= … = b
n

v_doc(b
i
)
doc(b

i
)
giai_phong(b
i
)
Để cho i:=1 đến n thực hiện v_viet(bi)
<Thực hiện các cập nhật và chép chúng vào tất cả các bản>
Để cho i:=1 đến n thực hiện giai_phong(bi)
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Để tránh sự bế tắc diễn ra, việc cài then các bản sao luôn luôn phải được
thực hiện trong cùng một trật tự.
Nói cách khác, bằng cách bỏ qua các pha chuyển, hoặc là đối tượng đang
trong quá trình cập nhật và tất cả các bản sao được lưu trữ cho tiến trình thực
hiện cập nhật, hoặc là tất cả các bản sao được cập nhật chỉ để đọc và giống nhau
hoàn toàn. Kiểu hoạt động này triển khai một sự gắn bó mạnh giữa các đối
tượng.
Nhược điểm căn bản của giải pháp này là rất yếu về song song giữa các
phép toán cập nhật. Ta có thể áp dụng các ràng buộc toàn vẹn yếu hơn. Đó là ta
luôn đòi hỏi việc truy cập vào một bản sao chỉ có thể được phép bên trong của
nó là gắn bó, nhưng ta lại không yêu cầu nhiều về chi tiết là các bản sao phải
giống nhau tuyệt đối trong mọi thời điểm.
Tổng quát, nếu ta chấm dứt thực hiện các giao dịch cập nhật thì tất cả các
bản sao có thể trở thành giống nhau hoàn toàn sau một khoảng thời gian xác
định. Đây chính là sự đảm bảo cho việc gắn bó yếu giữa các bản sao.
Điều kiện đủ cho sự gắn bó yếu là việc cập nhật thực hiện theo cùng một
trật tự cho tất cả các bản sao. Và cần chú ý hai điểm sau:
1) Sự khác nhau chủ yếu giữa gắn bó mạnh và gắn bó yếu là ở chỗ giao
dịch đọc thông tin. Theo gắn bó yếu, ta có hai cách đọc cần xem xét:
- Đọc tức thì trạng thái hiện hành của bản sao cục bộ.
- Đọc bản sao cục bộ sau khi tiếp nhận các thay đổi được truyền đến trước

trật tự của việc đọc theo chiều của trật tự cần xem xét.
2) Khi nói rằng các bản sao là hoàn toàn giống nhay có nghĩa là chúng cung
cấp thông tin như nhau khi được tham chiếu hay tích hợp cùng một dãy các cập
nhật. Nhưng việc thể hiện bên trong dữ liệu có thể thay đổi từ trạm này đến trạm
khác.
Bài tập tiểu luận Hệ tin học phân tán 12
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Thuật toán đảm bảo sự gắn bó yếu nhờ dấu sau đây được đưa vào áp dụng
là đáp ứng yêu cầu gắn bó, đơn giản và rõ ràng. Song khi triển khai đòi hỏi
nguồi thiết kế phải:
1) Nắm vững các nguyên lý cơ bản của thuật toán.
2) Việc triển khai chúng trong thực tế cần phải tính đến các điều kiện
- Các trạm và các đối tượng có số lượng xác định trước (số lượng cố định
tại thời điểm khai thác).
- Các tiến trình của trạm và hệ thống viễn thông có thể xảy ra xự cố kỹ
thuật, những sự cố này có thể khắc phục được.
3) Có các chỉ dẫn cần thiết cho việc mở rộng sau này để có thể xứ lý các
tình huống ngoài chế độ bình thường.
3. Thuật toán duy trì sự gắn bó trên cơ sở dấu
Căn cứ vào nội dung thông tin cần phải đảm bảo sự gắn bó mà người ta có
thể chọn các thuật toán khác nhau. Ở đây, ta tập trung vào thuật toán duy trì sự
gắn bó yếu nhờ dấu
3.1. Nguyên lý
Tập hợp các yêu cầu cập nhật được sắp xếp theo cùng một kiểu trên tất cả
các trạm nhờ cơ chế dấu. Theo đó mỗi một yêu cầu được phát đi cho tập hợp các
trạm. Tên mỗi trạm, tồn tại một tiến trình Server đảm nhận nhiệm vụ tiếp nhận
các yêu cầu theo trật tự của dấu. Điều đó cho phép có được một sự gắn bó yếu
giữa các bản sao.
3.2. Triển khai hệ ổn định
Các giao dịch cần xét là các khả năng đọc, ghi hay cập nhật. Cập nhật được

xác định như là một dãy các thao tác đọc và ghi, thao tác kiểm tra đọc tức thì
trạng thái hiện hành của một bản sao.
Mỗi một server tiếp nhận các yêu cầu ghi đến từ trạm cục bộ ở thời điểm
cho trước. Nó tiếp nhận các yêu cầu và tính toán trên cơ sở dấu theo tiêu chí lâu
Bài tập tiểu luận Hệ tin học phân tán 13
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
nhất. Việc xác định yêu cầu không được tiến hành ngay tức khắc vì nguyên do ta
không thể biết chắc chắn yêu cầu nào là lâu nhất. Yêu cầu lâu nhất có thể đang
truyền trên đường. Tính không chắc chắn này xuất hiện có điều kiện với giả thiết
về hệ viễn thông. Khi trạm i truyền các thông điệp cho trạm j, Trật tự nhận các
thông điệp tại j là hoàn toàn giống với trật tự của các thông điệp phát đi. Giả
thiết này được kiểm tra trong các mạng thông thường. Việc xác định các yêu cầu
cần xử lý trên một trạm là hoàn toàn có thể.
Có hai trường hợp cần xem xét:
1) Tập hợp các yêu cầu ghi khi chờ chứa các yêu cầu từ tất cả các trạm
khác. Trong trường hợp này các yêu cầu đi qua, nếu chúng tồn tại, là mới hơn so
với các yêu cầu đã đi qua. Nói cách khác, yêu cầu lâu nhất chính là yêu cầu đang
chờ.
2)
Tồn tại các trạm mà không có bất kỳ yêu cầu nào được truyền đến. Ta được
đưa các trường hợp trước đây bằng cách truyền cho tất cả các trạm một thông
điệp yêu cầu và bắt buột phải xác nhận. Do vây, sau một khoảng thời gian, theo
giả thiết về độ ổn định, ta sẽ nhận hoặc là các yêu cầu đi qua, hoặc là các trả lời
cho thông điệp yêu cầu. Lúc này, ta có được các thông điệp đến từ tất cả các
trạm.
3.3. Các hành vi bên ngoài của chế độ bình thường
Hai vấn đề mở rộng hơn đối với thuật toán này cho phép rút ra hay chèn
vào tùy ý một trạm nào đó. Ngược lại, thuật toán chỉ sống trong trường hợp có
sự cố, nếu các điều kiện sau đây được tôn trọng:
1) Việc đột nhiên biến mất đi một trạm nào đó phải được các trạm khác

nhận biết tự động.
2)
Việc phát một thông điệp là một phép toán không chia cắt được nữa. Đó là
một thông điệp hoặc là tất cả đều phải nhận được hoặc là không trạm nào nhận
Bài tập tiểu luận Hệ tin học phân tán 14
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
được cả.
Vì vậy, việc tuân thủ hai điều kiện trên đặt ra cho chúng ta tình hình là nếu
điều kiện đầu tiên có thể được khống chế, thì điều kiện thứ hai rất khó đảm bảo.
3.4. Kết luận
Trên đây chúng ta đã tìm hiểu kỹ thuật được sử dụng rộng rãi nhất nhằm
đảm bảo đặc tính gắn bó dữ liệu trong hệ tin học phân tán là kỹ thuật gắn bó trên
cơ sở dấu.
Kỹ thuật gắn bó trên cơ sở dấu nhằm đảm bảo tính gắn bó dữ liệu của một
trật tự hoá hợp thức các giao dịch trên các trạm xa nhau trong hệ tin học phân
tán.
Bài tập tiểu luận Hệ tin học phân tán 15
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Chương 3: DUY TRÌ SỰ GẮN BÓ MẠNH GIỮA CÁC BẢN SAO
CỦA MỘT ĐỐI TƯỢNG
1. Đặt vấn đề
1.1. Giới thiệu bài toán
Trong một hệ thống phân tán giả định có độ ổn định tuyệt vời, ta muốn duy
trì một sự gắn bó mạnh giữa các bản sao của một đối tượng được định vị trên
các trạm khác nhau.
Thuật toán dựa trên các nguyên lý sau đây:
•Trước khi thực hiện cập nhật, một trạm nào đó cần phải yêu cầu và thống
nhất với các trạm khác.
•Khi đã có được sự thống nhất, thì trạm này tiến hành công việc cập nhật;
điều này phải tiến hành trên tất cả các bản sao; đối tượng không thể truy cập

chừng nào các bản sao còn chưa cập nhật hết.
•Các xung đột giữa các trạm được giải quyết bằng một trật tự có hệ số ưu
tiên giữa các trạm, được cố định một lần lúc khởi sự cho toàn bộ.
1. Hỏi có bao nhiêu trạng thái khác nhau cần xem xét cho mỗi bản sao.
2. Hãy trình bày sơ đồ hoạt động của thuật toán (đồ thị phát triển).
3. Hãy đánh giá bằng hàm của số lượng bản sao, số lượng các thông điệp
cần thiết để thực hiện một thông điệp.
4. Ta phải sửa đổi thuật toán như thế nào để chịu đựng được sự cố trên một
trạm (giả sử hệ viễn thông hoạt động tốt).
1.2. Cơ sở lý thuyết để giải quyết bài toán
Khi nghiên cứu về hệ phân tán chúng ta thấy rằng, thời gian truy cập trung
bình vào thông tin trong hệ phân tán có thể được rút ngắn, trong một số trường
hợp, nhờ vào phương pháp nhân nhiều bản và được gọi là nhiều bản sao của một
đối tượng thông tin.
Ta cần phân biệt hai trường hợp khác nhau được thể hiện sau đây:
Bài tập tiểu luận Hệ tin học phân tán 16
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
- Trường hợp 1:
a) Đa xử lý với bộ nhớ chung:
Hình 6. Đa xử lý với bộ nhớ chung
Mỗi một bộ xử lý đều có bộ nhớ cục bộ của mình, hay còn gọi là cache,
được dùng để sao chép lại các vùng đang làm việc của bộ nhớ chung. Một
chương trình thể hiện thuật toán thay thế đảm nhận nhiệm vụ làm mới các bộ
nhớ cục bộ. Trường hợp có nhiều bộ xử lý muốn truy cập vào cùng một đối
tượng, ta sử dụng như là sự tham chiếu đến phiên bản của đối tượng tìm thấy
trong bộ nhớ chung.
b) Hệ truy cập từ xa thông qua một máy server duy nhất:
Bài tập tiểu luận Hệ tin học phân tán 17
L
B

ch
B
cb
B
cb
L
Bé xö lý
Bé nhí côc bé
Bé nhí chung
(e)
(e)
Bộ xử lý
Bộ nhớ cục bộ
(e)
Bộ nhớ chung
(e)
Bộ xử lý
Bộ nhớ cục bộ (e)
Bộ nhớ chung (e)
Hệ thống viễn thông
Hệ thống viễn thông
Máy client
Máy server
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Hình 7. Hệ truy cập từ xa thông qua máy server
Trong trường hợp này, một đối tượng được đưa vào trên một trạm xác định
và được quản lý bởi một server cục bộ trên trạm này. Khi một tiến trình ở xa
muốn sử dụng đối tượng, nó phải bắt đầu bằng yêu cầu server cho một bản sao
thông qua hệ thống viễn thông. Sau khi sử dụng xong, tiến trình phải gửi lại cho
server một phiên bản đã được sửa đổi của đối tượng.

Các trường hợp thể hiện trong hình 2.1 và 2.2 xét theo chức năng là giống
nhau. Đó là trường hợp một bản duy nhất của đối tượng là một đặc quyền.
- Trường hợp 2:
Tính cân đối giữa các người sử dụng tài nguyên thông tin của mạng.
Hình 8. Hệ thống đối xứng
Tại đây, tất cả các bản đóng vai trò đối xứng. Công việc được tiến hành
theo kiểu này cho phép rút ngắn thời gian truy cập, nếu số lần truy cập để đọc
Bài tập tiểu luận Hệ tin học phân tán 18
Hệ thống viễn thông
Hệ thống viễn thông
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
lớn hơn số lần truy cập để cập nhật và vì lý do thuận lợi sử dụng theo nghĩa có
sẵn để dùng.
Tình hình nêu trên đặt ra cho chúng ta nhiều vấn đề cần phải giải quyết. Đó
chính là các lần cập nhật thông tin hay nói một cách tổng quát là cập nhật các
bản sao. Từ đó, ta rút ra các đặc điểm quan trọng sau đây :
1) Khi chỉ tồn tại một bản tập trung đặc quyền, ta có thể đặt ra rằng việc
thay đổi đối tượng thực hiện trên một trong các bản sao sẽ được sao lại ngay lập
tức vào bản chính. Đó chính là trường hợp ghi tức thời và các cập nhập đều gắn
bó. Với các phương pháp ghi khác, ngược lại, các thay đổi tương ứng của một
bản sao đối tượng cục bộ chỉ được sao lại trên bản chính khi thuật toán thay thế
được thực hiện nhằm cung cấp lại các bản ghi bị chiếm bởi bản sao cục bộ đó.
2) Khi không tồn tại bản đặc quyền, ta có thể gặp các trường hợp không gắn
bó thông tin.
Trường hợp thứ hai làm phát sinh hai yêu cầu mới:
a. Toàn bộ giao dịch thay đổi bản sao của đối tượng cần phải chép lại càng
sớm càng tốt thay đổi đó trên tất cả các bản sao khác. Trong khi thực hiện giao
dịch, không có bất kỳ sao chép nào khác được thực hiện. Sau khi thực hiện
xong, tất cả các bản sao hoàn toàn giống nhau.
b. Việc cập nhật tức thời (theo hệ tập trung) của tất cả các bản sao là không

cần thiết.
Trong tất cả các trường hợp, một giao dịch tham chiếu trạng thái một đối
tượng thực hiện xuất phát từ một trạm trên bản cục bộ cần phải cung cấp:
- Hoặc là một giá trị cập nhật của tất cả các thay đổi diễn ra trước tham
chiếu.
- Hoặc là một giá trị đã cũ, nhưng lại là giá trị đã được cập nhật ở thời điểm
trước đó.
Sự tham chiếu không bao giờ phải cung cấp một giá trị xuất phát từ việc
thực hiện từng phần của một giao dịch.
2. Giải quyết vấn đề
2.1. Các trạng thái khác nhau cần xem xét cho mỗi bản sao
Bài tập tiểu luận Hệ tin học phân tán 19
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Các trạng thái có thể xảy ra trên mỗi bản sao như sau:
Stt Trạng thái Giải thích
1 Nghỉ ngơi Trạm không thực hiện cập nhật nào cả
2 Hoạt động Trạm đã nhận một yêu cầu cập nhật cục bộ mà yêu cầu này
đã được truyền cho các trạm khác để kiểm tra
3 Thụ động Trạm đồng ý cho một cập nhật và chờ trật tự tương ứng
4 Cập nhật Trạm đang trong tình trạng chuyển của cập nhật, trong khi đó
tất cả các yêu cầu khác truyền đến đều được lưu trữ. Chúng
sẽ được xử lý khi quay về một trong các trạng thái khác.
2.2. Sơ đồ hoạt động của thuật toán
Các trạm được tổ chức theo kiểu vòng tròn ảo. Trước khi thực hiện cập
nhật, một trạm nào đó cần phải yêu cầu và thống nhất với các trạm khác. Sau khi
đã có được sự thống nhất, thì trạm này tiến hành công việc cập nhật.
Sơ đồ hoạt động của thuật toán:
Hình 10. Sơ đồ hoạt động của thuật toán
Lúc khởi sự, tất cả các trạm đều ở trong trạng thái nghỉ ngơi.
Trạm khởi sự việc cập nhật, đầu tiên cần phải gửi một yêu cầu cho phép

cập nhật, nó chỉ làm được việc đó trong trạng thái nghỉ ngơi. Lúc này nó được
nhận dấu và được gửi vào vòng tròn trạm khởi sự chuyển từ trạng thái nghỉ ngơi
sang trạng thái hoạt động.
Bài tập tiểu luận Hệ tin học phân tán 20
1



N
g
h

n
g
ơ
i
1



N
g
h

n
g
ơ
i
2




N
g
h

n
g
ơ
i
2



N
g
h

n
g
ơ
i
3


N
g
h

n

g
ơ
i
3


N
g
h

n
g
ơ
i
4


N
g
h

n
g
ơ
i
4


N
g

h

n
g
ơ
i
Yêu cầu
Lựa chọn yêu cầu có thời gian dấu dài
nhất nếu có nhiều yêu cầu được đưa ra
Nghỉ ngơi
Hoạt động
Thụ động
Cập nhật
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
Nếu chỉ có một yêu cầu duy nhất được đưa vào vòng tròn, nó đi qua tất cả
các trạm để chuyển các trạm từ nghỉ ngơi sang thụ động. khi đó, nó trở về nơi
khởi sự thì việc thống nhất coi như hoàn tất. việc cập nhật nói riêng lúc này
được gửi đi và mỗi trạm sau khi thực hiện trở về trạng thái nghỉ ngơi.
Nếu có nhiều yêu cầu đưa ra đồng thời trong vòng tròn, thì tình hình đó dễ
dàng diễn ra xung đột. lúc này, ta phải chọn một yêu cầu có thời gian dấu lâu
nhất. Để tiến hành công việc đó, ta nêu bật vai trò của bộ chắn đường cho các
trạm khởi sự. Một trạm nào đó trong trạng thái nghỉ ngơi hay thụ động phải
chuyển toàn bộ yêu cầu đã đến nó, một trạm trong trạng thái hoạt động chỉ phải
chuyển các yêu cầu có thời gian lâu hơn các yêu cầu mà chính nó phát đi, các
yêu cầu khác đều bị dừng lại và được lưu trữ.
Các yêu cầu bị lưu trữ lại sẽ được gửi tiếp vào vòng tròn, khi trạm lưu trữ
chúng hoàn thành công việc cập nhật riêng của mình.
Hành vi ngoài chế độ bình thường: Các giao thức đặt lại cấu hình vòng tròn
theo kiểu tự động được sử dụng nhằm rút ra hay cho vào tùy ý một số trạm nhất
định. Các sự cố kỹ thuật là rất khó khăn phát hiện các chiến lược mà ở dó các

yêu cầu không được ghi lại khắp nơi trong mạng.
2.3. Đánh giá hàm của số lượng bản sao, số lượng thông điệp cần thiết
để thực hiện một cập nhật
Sơ đồ mô tả cơ cấu tổ chức của hệ thống nhiều bản sao và việc cập nhật các
bản sao được thể hiện trong hình 12 sau đây:
Bài tập tiểu luận Hệ tin học phân tán 21
Hình 11. Sơ đồ mô tả hệ thống nhiều
bản sao
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
b
ij
với i = 1 n, j = 1 m,
trong đó i chỉ server, j chỉ bản sao, n là số lượng server được mắc nối trong
mạng, m là số lượng các đối tượng dữ liệu
t
k
với k = 1 q, trong đó k là trạm, q là số trạm được mắc nối
Các ràng buộc trên các bản sao:
Trên bản sao của một đối tượng:
Nếu ta có n bản sao b1, b2,…, bn của đối tượng b, một trong các ràng buộc
toàn vẹn là:
b
1
= b
2
= = b
n

Trên các bản sao của toàn bộ các đối tượng:
b

11
= b
21
= = b
n1
b
12
= b
22
= = b
n2

b
1m
= b
2m
= = b
nm
Gọi M là cực đại của các cập nhật có thể diễn ra đồng thời, thì M có thể
tính theo công thức M = n x m.
2.4. Xử lý sự cố trên một trạm
Nếu dữ liệu được phân tán trên nhiều server, để bảo đảm dữ liệu sẽ được
ghi lên đúng đắn lên mọi cơ sở dữ liệu, đòi hỏi phải có các cơ chế bảo vệ dữ
liệu. Ví dụ như việc cập nhật bảng cân đối tài khoản khách hàng ở ba cơ sở dữ
liệu khác nhau. Nếu c ó sự cố kết nối xảy ra trong thời gian ghi giao dịch, cơ sở
dữ liệu sẽ mất tính đồng bộ. Xử lý giao dịch khắc phục tình trạng này bằng cách
giám sát những thay đổi tác động lên các cơ sở dữ liệu liên quan nhằm bảo đảm
toàn vẹn dữ liệu một khi có sự cố.
Nếu một tiến trình p bị sự cố trong lúc thực hiện một giao dịch T thì trạng
thái của hệ xuất phát từ việc thực hiện từng phần đó chắc chắc sẽ không còn gắn

bó.
Một cơ chế cho phép duy trì gắn bó trong môi trường phân tán có sự cố
Bài tập tiểu luận Hệ tin học phân tán 22
Hình 11. Sơ đồ mô tả hệ thống nhiều
bản sao
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
phải là:
1) Giao dịch T bắt buộc phải được thực hiện một cách trọn vẹn
2) Nếu có sự cố diễn ra thì bắt buộc nó phải quay trở lại điểm xuất phát.
Muốn thế đòi hỏi giao dịch phải có đặc tính toàn vẹn như sau:
- Nếu một tiến trình bị sự cố trước khi kết thúc T nhưng lại sau các thao tác
thay đổi cần thiết của T, trạng thái của hệ là gắn bó
Hình 12. Ba giai đoạn của một giao dịch
- Nếu một tiến trình bị sự cố trước khi diễn ra các thay đổi của T, trạng thái
của hệ là gắn bó.
- Nếu một tiến trình bị sự cố giữa các thay đổi T, trạng thái của hệ là không
gắn bó.
Các mô hình và giải thuật nghiên cứu phải đảm bảo các đặc tính toàn vẹn
dữ liệu của hệ và tuân thủ theo các giai đoạn thể hiện trong hình vẽ 12.
Căn cứ vào nội dung thông tin cần phải đảm bảo sự gắn bó mà ta có thể
chọn các thuật toán nhằm đảm bảo tính toàn vẹn dữ liệu.
3. Kết luận
Trong quá trình xây dựng các phần mềm cho hệ phân tán hỗ trợ các ứng
dụng lớn như thương mại điện tử, chính phủ điện tử, vấn đề cập nhật thông tin
dùng chung trong các bản sao của cùng một đối tượng là một trong những vấn
đề quan trọng. Nó không chỉ đảm bảo hệ thống hoạt động với tốc độ bình quân
chấp nhận được, ổn định, tin cậy mà quan trọng hơn cả là phải đảm bảo tính gắn
bó của dữ liệu trong các bản sao.
Mô hình hệ thống quản lý nhiều bản sao giống nhau trên môi trường phân
Bài tập tiểu luận Hệ tin học phân tán 23

Sau khi cập nhật
(thay đổi)
Trước khi cập nhật
(thay đổi)
Gắn bó
Không Gắn bó
1
2
3
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
tán và các giải thuật được nghiên cứu đã đáp ứng các yêu cầu của một hệ thống
phức tạp với lượng thông tin lớn cần phải xử lý và thể hiện ở các mặt sau đây:
• Tự động hóa cập nhật các bản sao
• Phát triển giải thuật nhiều bản sao trong môi trường phân tán hiện đại
• Làm phong phú khả năng ứng dụng các tác tử di động.
• Triển khai kỹ thuật đánh dấu bản điều khiển trong quản lý nhiều bản sao
• Bổ sung lý thuyết cập nhật nhiều bản sao
Bài tiểu luận đã thể hiện cô đọng bằng những sơ đồ giải thuật và mô hình.
Bài tập tiểu luận Hệ tin học phân tán 24
Thuật toán gắn bó trên cơ sở dấu và Bài toán duy trì một sự gắn bó mạnh giữa các bản sao
TÀI LIỆU THAM KHẢO
A. Tài liệu tiếng Việt.
1. Hệ tin học phân tán của TS Lê Văn Sơn NXB Đại học quốc gia TP Hồ
Chí Minh.
2. Nguyên lý các hệ cơ sở dữ liệu phân tán của Patrick Valduriez , Trần
Đức Quang Biên Dịch Tập 1 + Tập 2 , NXB Thống Kê.
B. Tài liệu tiếng Anh.
1. Principle of Distributed Database System, ấn bản lần thứ 2 của Prentice
- Hall.
2. Database Systems: Design, Implementation, and Management, Sixth

Edition, Rob and Coronel.
3. Resource Model Distribution by Guy Swope.
4. Towards Distributed Data Collection and Peer-to-Peer Data Sharing by
James E. Marca and Craig R. Rindt and Michael G. McNally.
Bài tập tiểu luận Hệ tin học phân tán 25

×