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

TIỂU LUẬN hệ TIN học PHÂN tán

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 (234.54 KB, 21 trang )

Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
LỜI MỞ ĐẦU
Hệ tin học phân tán là hệ thống rất đa dạng, đa diện, phức tạp về mặt cấu trúc, là
vùng tri thức hiện đại đang được các chuyên gia CNTT đặc biệt quan tâm và đổi mới rất
nhanh chóng.
Trong những ứng dụng thực tế của hệ phân tán thì hệ điều hành Unix là một thành
công lớn. Unix là hệ điều hành đa người dùng được viết trên ngôn ngữ bậc cao và được
ứng dụng rộng rãi trên thế giới. Hệ điều hành đa người dùng thuộc vào loại hệ điều hành
đa chương trình định hướng “thân thiện với người dùng”. Tại cùng một thời điểm, có
nhiều người dùng cùng sử dụng máy tính và đối với mỗi người dùng như vậy đều có cảm
giác như được sử dụng máy tính một cách “độc quyền” vì họ được trực tiếp liên kết với
chương trình của mình đang thực hiện trong máy tính. Chương trình có thể được chạy
trên nhiều phần cứng khác nhau, mà các phần cứng này đều có thể độc lập với nhau.
Hệ phân tán là một lĩnh vực nghiên cứu mới hứa hẹn nhiều triển vọng và đang thu
hút sự chú ý của các nhà nghiên cứu trên toàn thế giới. Trong phạm vi nhỏ hẹp của đề tài
này, chúng tôi chỉ mong muốn được trình bày một khía cạnh của vấn đề đó là việc đảm
bảo tính đồng bộ của thông tin tại nhiều trạm khác nhau trong một thời điểm bằng thuật
toán sao chép.
Việc nghiên cứu, phát triển các phương pháp đảm bảo tính đồng bộ trong môi
trường phân tán đến nay đã có một số thành công đáng kể. Trướchết, phải nói đến sự tích
hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập
trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bản của việc gắn
bó thông tin nói chung trong quá trình đa truy cập thông qua hệ thống viễn thông. Việc
triển khai phương pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều
kiện lýtưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệuquả
nhất định cho các hệ thống đăng ký. Tuy nhiên, trong quá trình triển khai lập trình và
vận hành các hệ thống đăng ký, vấn đề gắn bó dữ liệu trong các cơ sở dữ liệu khi hệ
thống bị sự cố đang đặt ra như là vấn đề quan trọng và có ý nghĩa sống còn trong việc
phát triển toàn hệ nói chung.
Đề tài gồm các phần chính như sau:
Chương I: Những kiến thức cơ bản về hệ tin học phân tán


Chương II: Khả năng phân tán của hệ điều hành Unix
Chương III: Thuật toán quản lí nhiều bản sao
Chương IV: Bài tập
Bài tập: Hãy nghiên cứu kỹ các sửa đổi nhằm đem lại cho các thuật toán khác nhau
về quản lý nhiều bản sao nhằm mục tiêu tính đến các sự cố kỹ thuật sau:
1. Chỉ có một sự cố duy nhất.
2. Khi đang xử lý một sự cố, thì sự cố khác lại đến.
Học viên thực hiện
Nguyễn Trung Hiếu
HVTH: Nguyễn Trung Hiếu 1
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Chương 1. NHỮNG KIẾN THỨC CHUNG VỀ HỆ
PHÂN TÁN
1.1 Khái niệm
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 và đượ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.
Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp, nhưng cơ bản nhất
là đảm bảo cung cấp cho người sử dụng khả năng truy cập có kết quả đến các tài nguyên
vốn có và rất đa dạng của hệ thống như là những tài nguyên dùng chung.
1.2 Thành phần cơ bản
Thành phần cơ bản của hệ phân tán bao gồm các hệ thống cục bộ (mạng hay máy
đơn), trong đó một (hay nhiều) hệ thống phát các yêu cầu thông tin còn các hệ thống
khác trả lời các yêu cầu có liên quan đến phần dữ liệu của mình. Nói một cách tổng quát
là trong hệ luôn diễn ra việc thực hiện các công việc do các hệ thống yêu cầu.
Các thao tác chuẩn của hệ phân tán bao gồm:
− Tiếp nhận và ghi yêu cầu chỉ dẫn.
− Dịch yêu cầu để có thể tìm thông tin cần thiết.
− Gửi kết quả cho hệ thống đã phát yêu cầu.

1.3 Các đặc điểm cơ bản
Các đặc điểm cơ bản của tất cả các hệ tin học phân tán là:
− Thời hạn truyền thông tin trong hệ không giống nhau, các thông điệp có
thể bị mất trong quá trình chuyển tải, các thông điệp có thể được truyền kép và hệ thống
có thể rơi vào sự cố.
− Một (hay nhiều) máy tính cấu thành của hệ phân tán có thể bị sự cố và hoạt
động của toàn hệ trở nên kém hiệu quả.
1.4 Khả năng phân tán
Nói đến hệ tin học phân tán, hiện nay có rất nhiều ý kiến khác nhau về nguyên tắc
xây dựng hệ. Như vậy khả năng phân tán cũng là một khái niệm chưa mang tính nhất
quán. Tuy nhiên trong phạm vi nghiên cứu này ta xem khả năng phân tán là việc phân
tán quá trình xử lí thông tin và thực hiện công việc đó trên các trạm xa nhau. Để đánh giá
khả năng phân tán ta đánh giá hệ trên các khả năng cụ thể sau:
− Chia sẻ tài nguyên: Mạng máy tính có thể dùng chung tài nguyên. Một tiến
trình trên một trạm nào đó có thể yêu cầu được cung cấp tài nguyên dùng chung ở một
trạm khác.
− Liên lạc: Khi hệ thống được mắc nối với nhau, các thực thể của hệ có thể
trao đổi thông tin cho nhau.
− Tin cậy: Một trạm của hệ bị sự cố không làm cho toàn hệ bị ảnh hưởng, mà
ngược lại, công việc của trạm đó được phân cho các trạm khác đảm nhiệm. Ngoài ra
trạm bị sự cố có thể tự động phục hồi lại các trạng thái trước khi bị sự cố hay trạng thái
ban đầu của nó.
− Tăng tốc: Một tính toán lớn nào đó, nếu chỉ sử dụng một trạm thì thời gian
trả về kết quả sẽ rất lớn. Tính toán này sẽ được chia nhỏ và thực hiện song song trên các
trạm.
HVTH: Nguyễn Trung Hiếu 2
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Chương 2. KHẢ NĂNG PHÂN TÁN CỦA HỆ ĐIỀU
HÀNH UNIX
2.1 Lịch sử hình thành và phát triển

Trong những năm 1960, Viện công nghệ Massachusetts (MIT: Massachusetts
Institute of Technology) và Phòng thí nghiệm Bell của hãng AT&T thực hiện dự án xây
dựng một hệ điều hành có tên gọi là Multics (MULTiplexed Information and Computing
Service) với mục tiêu tạo lập được một hệ điều hành phủ trên vùng lãnh thổ rộng (hoạt
động trên tập các máy tính được kết nối), đa người dùng, có năng lực cao về tính toán và
lưu trữ. Dự án nói trên thành công ở mức độ hết sức khiêm tốn và người ta đã biết đến
một số khiếm khuyết khó khắc phục của Multics.
Năm 1969, phiên bản đầu tiên của hệ điều hành Unix đã được công bố. Tác giả là
Ken Thompson, một chuyên viên tại phòng thí nghiệm Bell, người đã tham gia dự án
Multics. Sau đó không lâu Dennics Richie phối hợp với Ken Thompson nghiên cứu các
phiên bản tiếp theo.
Năm 1973, Richie và Thompson viết lại nhân của hệ điều hành UNIX trên ngôn
ngữ C cho ra phiên bản mới 3.0. Phiên bản này đã trở nên dễ dàng cài đặt tới các loại
máy tính khác nhau; tính chất như thế được gọi là tính khả chuyển (portable) của UNIX.
Hãng AT&T phổ biến chương trình nguồn UNIX tới các trường đại học, các công
ty thương mại và chính phủ với giá không đáng kể.
Phiên bản 6.0 được phát triển vào khoảng năm 1976 với sự thang gia của nhiều
trường đại học ở Mỹ.
Năm 1978 phiên bản 7.0 ra đời và là tiền thần của phiên bản hiện nay. Phiên bản
này dựa trên mô hình PDP-11 cho máy tính lớn VAX.
Năm 1982, Unix Support Group trong công ty AT&T tạo ra Unix mới gọi là
System III. Hệ này dựa trên cơ sở liên hợp ba phiên bản 7.0, 32V cho VAX và Unix/RT.
Năm 1983, System V được các công ty con Bell của AT&T công bố.
Giai đoạn 1985-1987, UNIX-5 phiên bản 2 và 3 tương ứng được đưa ra vào các
năm 1985 và 1987. Trong giai đoạn này, có khoảng 100.000 bản UNIX đã được phổ
biến trên thế giới, cài đặt từ máy vi tính đến các hệ thống lớn.
Đầu thập kỷ 1990. UNIX-5 phiên bản 4 được đưa ra như là một chuẩn của UNIX.
Đây là sự kết hợp của các bản sau:
− AT&T UNIX-5 phiên bản 3,
− Berkley Software Distribution (BSD),

− XENIX của MicroSoft,
− SUN OS.
Trong thời gian gần đây (khoảng năm 1997) một số phiên bản mới của UNIX được
giới thiệu và phổ biến trên Internet.
2.2 Đặc trưng cơ bản
HVTH: Nguyễn Trung Hiếu 3
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Hệ điều hành Unix có những đặc trưng chính sau:
− Được viết trên ngôn ngữ bậc cao, do đó dễ đọc, dễ hiểu, dễ chuyển đổi.
− Có giao diện người dùng đơn giản
− Nguyên tắc: Xây dựng các chương trình phức tạp từ những chương trình
con đơn giản.
− Chỉ có một dạng file đơn giản
− Đa tiến trình, đa người dùng, phân chia thời gian.
2.3 Khả năng phân tán
Như đã nói ở chương 1 phần 1.4, để xem xét đánh giá khả năng phân tán của hệ
điều hành Unix ta xem xét, đánh giá khả năng chia sẽ dữ liệu, khả năng liên lạc, độ tin
cậy và tính mở của hệ điều hành này.
2.3.1 Chia sẻ tài nguyên
Unix là hệ đa xử lý, thức khả năng thực thi nhiều tác vụ cùng một lúc. Một chương
trình máy tính là một chuỗi các chỉ lệnh (intuctions hay còn gọi là lệnh máy) mà theo đó
máy tính phải thực hiện. Mặt khác tài nguyên máy tính là hữu hạn và khi các chương
trình chạy thì các chương trình đều có nhu cầu trên các tài nguyên đó. Để đáp ứng nhu
cầu tài nguyên đảm bảo tính đa nhiệm, nhiều người dùng, hệ điều hành cấp tài nguyên
cho mỗi chương trình trong một lượng thời gian nhất định, sao cho các chương trình đều
có cơ hội thực hiện như nhau và trong thời gian thực hiện chương trình cần kiểm soát
việc thực hiện đó chặt chẽ. Để thực hiện được điều này ta sử dụng tiến trình.
Tiến trình là thời gian thực hiện của một chương trình và việc thực hiện đó chỉ xãy
ra trong một khoản thời gian nhất định. Tuy nhiên để thực hiện được chương trình, tiến
trình sẽ sử dụng CPU để chạy các lệnh của nó và bộ nhớ nơi có mã lệnh, dữ liệu và ngăn

xếp. Một tiến trình khi thực hiện phải làm theo một trình tự các chỉ lệnh trong vùng mã
lệnh của tiến trình và không nhảy tới các chỉ lệnh của tiến trình khác. Tiến trình chỉ có
thể đọc/ghi truy nhập dữ liệu và ngăn xếp của nó, nhưng không thể trên dữ liệu và ngăn
xếp của tiến trình khác. Tiến trình liên lạc với các tiến trình khác và phần còn lại của hệ
thống bằng các Gọi Hệ Thống (system call). Hệ thống chia việc thực hiện ra làm hai chế
độ: user mode và kernel mode, nhưng cho dù như vậy, thì kernel vẫn là người thực hiện
mã của tiến trình.
HVTH: Nguyễn Trung Hiếu 4
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
2.3.2 Liên lạc
a. Liên lạc giữa các tiến trình
Các tiến trình thông báo các sự kiện cho nhau thông qua các tín hiệu. Tuy nhiên đó
mới là cơ chế cơ bản, hệ điều hành Unix System V IPC còn có các cơ chế sau:
Đường ống (pipe): là loại vô danh có hạn chế là chỉ dùng với các tiến trình thuộc
con cháu của tiến trình phát sinh ra system call pipe, do vật các tiến trình không có cùng
quan hệ huyết thống sẽ không thể liên lạc qua pipe được.
FIFO là loại pipe có tên, các tiến trình không cùng huyết thống vẫn dùng chung
được.
Thông điệp (message): cho phép các tiến trình gởi các khuôn dữ liệu có khuôn
dạng tới bất kỳ tiến trình nào.
Vùng nhớ chia sẻ (shared memory): các tiến trình chia sẻ một phần không gian địa
chỉ ảo của mình.
Đánh tín hiệu (semaphore hay còn gọi là cờ hiệu): các tiến trình dùng để đồng bộ
việc thực hiện.
Dò theo một tiến trình (tracing): Hệ Unix cung cấp một tiện ích nguyên thủy cho
việc liên lạc giữa các tiến trình dùng để theo dõi và kiểm soát việc thực hiện tiến trình và
rất tiện lợi cho làm gỡ rối.
b. Liên lạc trên mạng client/server
Các chương trình ứng dụng như thư điện tử (mail), truyền tệp từ xa (ftp), hay login
từ xa (telnet, rlogin) muốn kết nối vào một máy khác, thường dùng các phương pháp nói

chuyện để lập kết nối và trao đổi dữ liệu. Ví dụ các chương trình mail lưu văn bản thư
của người gởi vào một tệp riêng cho người đó. Khi gởi thư cho người khác trên cùng một
máy, chương trình mail sẽ thêm tệp mail vào địa chỉ. Khi người nhận đọc thư, chương
trình sẽ mở tệp thư của người đó và đọc nội dung thư. Để gởi thư đến một máy khác,
chương trình mail phải khéo léo tìm tệp thư ở máy đó. Vì rằng chương trình mail không
thể thao tác các tệp ở máy kia (remote) trực tiếp, sẽ có một chương trình ở máy kia đóng
vai trò một nhân viên phát hành thư (agent) cho các tiến trình thư. Như vậy các tiến trình
của máy gởi (local) cần cách thức để liên lạc với (agent) máy kia (nhận) qua ranh giới
của các máy. Tiến trình của máy gởi (local) gọi là tiến trình khách (client) của tiến trình
chủ (server) máy nhận thư.
Vì Unix tạo ra các tiến trình bằng fork(), nên tiến trình server phải tồn tại trước khi
tiến trình client cố lập kết nối. Cách thức thông thường là thực hiện qua init và sau khi
tạo tiến trình server sẽ luôn đọc kênh liên lạc cho tới khi nhận được yêu cầu phục vụ và
tiếp theo tuân theo các thủ tục cần thiết để lập kết nối. Các chương trình client và server
sẽ chọn môi trường mạng và thủ tục theo thông tin trong các cơ sở dữ liệu của ứng dụng
hay dữ liệu có thể đã mã mã cố định trong chương trình.
Với liên lạc trên mạng, các thông điệp phải có phần dữ liệu và phần kiểm điều
khiển. Phần điều khiển chứa thông tin địa chỉ để xác định nơi nhận. Thông tin địa chỉ
được cấu trúc theo kiểu và thủ tục mạng được sử dụng. Phương thức truyền thống áp
dụng cho kết nối mạng liên quan tới system call ioctl() để xác định các thông tin điều
khiển, nhưng việc sử dụng không thuần nhất trên các loại mạng. Đó là chỗ bất cập khi
các chương trình thiết kế cho mạng này lại không chạy được cho mạng kia. Đã có nhiều
nổ lực để cải thiện giao diện mạng cho Unix, sử dụng luồng (stream) là một cơ chế thích
HVTH: Nguyễn Trung Hiếu 5
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
hợp hổ trợ mạng, vì các modul thủ tục có thể phối hợp linh hoạt bằng cách đầy vào
stream mở và cách sử dụng chuyển cho mức người dùng.
c. Sockets
Để tạo ra phương pháp chung cho việc liên lạc giữa các tiến trình cũng như hổ trợ
các giao thức mạng tinh xảo, Unix của BSD cung cấp một cơ chế gọi là socket.

Hình 2.1 Mô hình của Socket
Socket layer cung cấp ghép nối giữa system call và các lớp thấp hơn.
Protocol layer có các modul giao thức sử dụng để liên kết, ví dụ TCP/IP.
Device layer có các trình điều khiển thiết bị, kiểm soát hoạt động của thiết bị mạng,
ví dụ Ethernet.
Trong UNIX, người ta sử dụng ống như là trường hợp đặc biệt của cơ chế socket.
Thông thường, trên cùng một máy, một ống chỉ được sử dụng để cho hai tiến trình liên
lạc với nhau thông qua lời gọi hệ thống fork. Cơ chế socket còn có thể áp dụng cho các
tiến trình không ở trong tình trạng liên lạc với nhau.
Mỗi socket được sử dụng chỉ trong một vùng. Các tiến trình liên lạc với nhau trong
cùng một vùng và sử dụng cùng một kiểu định khuôn địa chỉ.
HVTH: Nguyễn Trung Hiếu 6
Client proces Server proces
Socket layer
Protocol layer:
TCP/IP
Device layer:
Ethernet driver
Socket layer
Protocol layer:
TCP/IP
Device layer:
Ethernet driver
N
et
w
or
k
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Hình 2.2 Các loại Socket

Công cụ hỗ trợ mạng máy tính.
Hệ thống hỗ trợ mạng máy tính bằng các giao thức DARPA, Internet UDP, TCP, IP
và ICMP trên một bình diện rộng của các giao diện mạng Ethernet, vòng tròn Jeton,
ARPANET. Các cấu trúc phân tầng của hệ cho phép:
1. Thêm vào mạng các giao thức mới.
2. Tổ chức công việc trên mạng thông qua các socket.
Trong môi trường mạng máy tính theo mô hình ISO 7 lớp, thông thường các dữ
liệu được truyền giữa các tầng với nhau thông qua các giao thức thích nghi cho các giao
diện socket. Tóm lại giữa 2 tầng kề nhau luôn luôn tồn tại một giao diện tầng, giữa 2
tầng tương ứng của hai hệ thống liên lạc luôn luôn sử dụng một loại giao thức. Các dữ
liệu mạng được truyền từ tầng này đến tầng khác và giữa hai tầng tương ứng.
Hình 2.3 Tương quan giữa các mô hình mạng
2.3.3 Độ tin cậy
Các tiến trình liên lạc với nhau theo môn hình client_server: liên lạc được thực hiện
qua đường dẫn hai chiều: một đầu cuối, tiến trình server lắng nghe một socket, còn tiến
HVTH: Nguyễn Trung Hiếu 7
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
trình client liên lạc với tiến trình server bằng socket ở đầu cuối đằng kia trên máy khác.
Kernel duy trì mối liên kết và dẫn dữ liệu từ client đến server.
Các thuộc tính liên lạc chia sẻ chung cho các socket như các qui ước gọi tên, định
dạng địa chỉ, … được nhóm lại thành domain. BSD Unix hổ trợ “Unix system domain”
cho các tiến trình thực hiện liên lạc trên một máy và “Internet domain” cho các tiến trình
thực hiện liên lạc trên mạng dùng giao thức DARPA. Mỗi socket có một kiểu của nó, gọi
là virtual circuil (mạng ảo) cho phép phát các dữ liệu tuần tự và tin cậy, gatagram không
bảo đảm tuần tự, chắc chắn hay phát đúp, nhưng rẻ tiền hơn bởi không cần các thiết bị
đắt giá, nên cũng có ích cho một số kiểu liên lạc. Mỗi hệ thống có một giao thức mặc
định, ví dụ giao thức TCP cung cấp dịch vụ mạng ảo, UDP cung cấp dịch vụ datagram
trong vùng Internet.
2.3.4 Tính mở của hệ thống.
Tính mở của hệ thống máy tính là dễ dàng mở rộng phần cứng (thêm các thiết bị

ngoại vi, bộ nhớ, các giao diện truyền thông ) và các phần mềm (các mô hình hệđiều
hành, các giao thức truyền tin, các dịch vụ chung tài nguyên, )Một hệ phân tán có tính
mở là hệ có thể được tạo từ nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp
khác nhau với điều kiện là các thành phần này phảitheo một tiêu chuẩn chung.Tính mở
của hệ phân tán được xem xét thao mức độ bổ sung vào các dịch vụdùng chung tài
nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. Tính mở được hoàn
thiện bằng cách xác định hay phân định rõ các giao diện chính của mộthệ và làm cho nó
tương thích với các nhà phát triển phần mềm.Tính mở của hệ phân tán dựa trên việc
cung cấp cơ chế truyền thông giữa cáctiến trình và công khai các giao diện dùng để truy
cập các tài nguyên chung.
HVTH: Nguyễn Trung Hiếu 8
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Chương 3. THUẬT TOÁN QUẢN LÝ NHIỀU BẢN
SAO
3.1 Sự cần thiết sử dụng nhiều bản sao
Trong các hệ phân tán, việc trao đổi các thông tin từ xa là một vấn đề đáng được
quan tâm. Trong các hệ này, từng hệ thống cục bộ đều có thể lưu trữ một bản sao của tất
cả các thông tin liên quan đang ở trong tất cả các hệ cục bộ khác. Sự tồn tại nhiều bản
sao trong một hệ phân tán có các đặc điểm sau:
Cập nhật thông tin diễn ra ở 1 trạm nào đó cần phải được tiến hành cho tất cả các
trạm và không được bỏ sót 1 trạm nào. Trong khoảng thời gian làm “tươi” thông tin phải
đảm bảo sao việc truy vấn dữ liệu cho kết quả kịp thời hay đặt tả được truy vấn trong
trạng thái “treo”.
Cần phải tránh trường hợp các thao tác trên 2 bản sao khác nhau nhưng chứa cùng
một thông tin được truy cập bởi 2 hay nhiều yêu cầu dẫn đến không gắn bó.
Hai vấn đề nêu trên xác định về các ràng buộc đối với vấn đề gắn bó dữ liệu. Đảm
bảo sự gắn bó này điều kiện đủ là phải tuân thủ trình tự nào đó cho tất cả các bản sao,
các cập nhật thông tin.
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
hệ thông tin 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à nhân 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.
Trường hợp 1: Ta xét 1 hệ thống đa xử lý với bộ nhớ chung như hình 3.1 sau đây:
Hình 3.1. Đ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 nhiệm 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.
Hình 3.2 mô tả 1 hệ truy cập từ xa thông qua 1 máy server duy nhất:
HVTH: Nguyễn Trung Hiếu 9
L
L
L
L
B
cb
B
cb
B
cb
B
cb
B
ch
B
ch
Bộ xử lý
Bộ nhớ cục bộ
(e)

Bộ nhớ chung
(e)
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Hình 3.2. Hệ truy cập từ xa thông qua máy server
Ở đâ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 các hình vẽ 3.1 và 3.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: Xét hệ thống đối xứng như hình 3.3 sau:
Hình 3.3. 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 lớn hơn số
lần truy cập để ghi và vì lý do thuận lợi sử dụng theo nghĩa có sẵn để dùng. Điều
này đặt ra cho chúng ta nhiều vấn đề cần giải quyết, đó là các lần ghi thông tin
hay gọi là cập nhật bản sao và có các đặc điểm sau: Khi chỉ tồn tại một bản tập
HVTH: Nguyễn Trung Hiếu 10
L
L
L
L
B
cb
B
cb
B
cb
B

cb
B
ch
B
ch
Bộ xử lý
Bộ nhớ cục bộ
(e)
Bộ nhớ chung
(e)
Máy Client
Hệ thống viễn
thông
Hệ thống viễn
thông
L
L
Máy Server
L
L
L
L
L
L
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
trung đặc quyền thì ta có thể đặt ra việc thay đổi đối tượng thực hiện trên một
trong các bản sao sẽ được sao ngay lập tức vào bản chính - đây là trường hợp ghi
tức thời và các cập nhật đều gắn bó. Ngược lại, với các phương pháp ghi khác,
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ộ đó; Còn 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ứ 2 làm phát sinh 2 yêu cầu mới: 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; Việc cập nhật tức thì 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.
Trong môi trường phân tán, phục vụ cho các ứng dụng có khối lượng xử lý thông
tin lớn trong điều kiện kỹ thuật phần cứng, phần mềm không đồng nhất, việc quản
lý nhiều bản sao trong điều kiện số lượng cập nhật lớn được đặt ra. Chính vì vây,
trong phần này chúng ta sẽ tìm hiểu sơ lược các thuật toán khác nhau 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 đảm bảo hệ
thống hoạt động một cách hiệu quả.
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 chia ra hai
loại giải thuật:
- Giải thuật toán gắn bó mạnh
- Giải thuật toán gắn bó yếu.
3.2 Các thuật toán quản lý nhiều bản sao.
Hiện nay, trong lĩnh vực mạng diện rộng, đặc biệt là mạng Internet, bản sao dữ
liệu được sử dụng để tăng tính sẵn sàng của dữ liệu. Tuy nhiên, lợi ích sẵn sàng
của dữ liệu này chỉ có được khi phải trả giá bằng những thuật toán phức tạp để ẩn
đi tính phức tạp trong việc bảo trì nhiều bản sao của đối tượng. Sự khó khăn nằm
ở việc phải đảm bảo gắn bó cho các bản sao của đối tượng để tránh bế tắc khi vận
hành hệ thống trong khi phải tối đa khả năng sẵn sàng dữ liệu. Các thuật toán giải
quyết những vấn đề này được gọi là các thuật toán điều khiển bản sao.
Việc quản lý nhiều bản sao của cùng một đối tượng thông tin đang được các nhà

chuyên môn tin học quan tâm nghiên cứu ngay trong giai đoạn phân tích, thiết kế
và xây dựng hệ điều hành. Ngoài ra, đây còn là một trong những vấn đề có tính
chất cơ sở cho các ứng dụng phức tạp.
Vấn đề truy cập và xử lý thông tin phân tán nói chung, quản lý nhiều bản sao nói
riêng được nghiên cứu trong hàng loạt các công trình, đặc biệt của Herman, Ellis,
Wilms và Le Lann. Các giải thuật này là cơ sở chủ yếu cho giải pháp đảm bảo sự
gắn bó yếu nhờ dấu, nhờ bộ tuần tự tuần hoàn và đảm bảo sự gắn bó mạnh cho
các hệ thống đồng nhất. Yêu cầu quan trọng của tất cả các giải pháp quản lý nhiều
bản sao là đảm bảo tính gắn bó thông tin (coherence), toàn vẹn dữ liệu và tránh bế
tắc diễn ra trong quá trình khai thác, vận hành hệ.
HVTH: Nguyễn Trung Hiếu 11
e
e
Hệ thống viễn thông
Hệ thống viễn thông
L
L
e
e
e
e
e
e
L
L
e
e
L
L
e

e
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Nội dung quản lý nhiều bản sao là các giải pháp cho phép tự động hóa các công
việc kiểm tra tính hợp thức của truy cập thông tin, khôi phục thông tin, cập nhật
thông tin, an toàn cho các bản sao, sử dụng các bộ nhớ, đĩa, lưu lịch sử, mở/ghi
lịch sử, chuyển các bản loại bỏ vào vùng có thể khôi phục, Trong các nội dung
nêu trên, vấn đề quan trọng nhất là cập nhật tự động thông tin vào các bản sao.
3.2.1 Thuật toán áp dụng then cài
Nếu ta có n bản sao e
1
, e
2
, …, e
n
của đối tượng e, một trong các ràng buộc toàn vẹn
là: e
1
=e
2
=…=e
n
Để tham chiếu đến e, cần phải thực hiện giao dịch:
v_doc(e
i
)
doc(e
i
)
giai_phong(e
i

)
Để 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ừ.
Để cho i:= 1 n thực hiện việc v_viet(e
i
)
<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 thực hiện giai_phong(e
i
)
Để tránh 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à các đối tượng đang trong
quá trình cập nhật và tất cả các bản sao của nó được dự 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 truy cập chỉ để đọc và giống nhau hoàn toàn. Theo
định nghĩa, kiểu hoạt động này triển khai một sự gắn bó mạnh giữa các bản sao đố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 rằng
việc truy cập vào một bản sao chỉ có thể được phép khi trạng thái 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. Như thế, nói một cách tổng quát là nếu ta chấm dứt thực hiện các
giao dịch thì tất cả các bản sao trở thành (hay có thể trở thành) giống nhau hoàn toàn sau
một khoảng thời gian xác định. Ta nói rằng đó 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 được thực hiện theo cùng một trật
tự cho tất cả các bản sao.
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 phải được xem xét:
1. Đọc tức thì trạng thái hiện hành của các bản sao cục bộ

2. Đọc bản sao cục bộ sau khi tiếp nhận tất cả 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ự tổng quát cần xem xét
Khi ta nói rằng các bản sao là hoàn toàn giống nhau có nghĩa là chúng cung cấp các
thông tin như nhau khi chúng được tham chiếu hay chúng được 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 của các dữ liệu. Có thể thay đổi từ trạm này
đến trạm khác.
HVTH: Nguyễn Trung Hiếu 12
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
3.2.2 Thuật toán đảm bảo sự gắn bó yếu nhờ 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 của đồng hồ logic. Theo đó mỗi 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 được đả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 khác nhau.
Các giao dịch cần 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 rồi 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 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
qua 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ự nhận 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 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

đến 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ắ 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ẽ 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.2.3 Thuật toán đảm bảo sự gắn bó yếu nhờ bộ tuần tự tuần hoàn
Ở thuật toán này, ta xem như các trạm được lắp đặt trên một vòng tròn theo một
chiều nhất định gọi là vòng tròn ảo. Mỗi trạm chỉ liên hệ với 2 trạm gần nhất với nó là
trạm bên trái (succ) và trạm bên phải (pred). Trước khi phát một yêu cầu một trạm nào
đó cần phải kết hợp với nó một số thứ tự được cấp từ bộ tuần hoàn. Các yêu cầu được
tiếp nhận tại mỗi trạm theo cùng một trật tự thống nhất. Điều đó giúp ta có được một sự
gắn bó yếu.
Bộ tuần tự cung cấp cho mỗi một yêu cầu số sắp tới chưa dùng, giả sử đó là T. Khi
đến phiên của trạm nhận bộ tuần tự, nó yêu cầu một số lượng n số đúng bằng số lượng
các yêu cầu cập nhật đang chờ trên trạm này. Các số này là:
T, T+1, …, T+n-1
Nó tiếp tục chuyển bộ tuần tự cho trạm kề liền sau nó và số sắp tới chưa dùng đến
là T+n.
Khi một trạm đã có số, nó phát yêu cầu cập nhật cùng với số này. Trên mỗi trạm,
các cập nhật được thực hiện bằng cách tiếp nhận các yêu cầu cùng các số liên tiếp nhau
(theo một trật tự). Để xác định yêu cầu sắp đến cần phải xử lý, mỗi một trạm duy trì một
biến chứa số V được phối hợp với yêu cầu xử lý cuối cùng. Các yêu cầu mang các số lớn
hơn V+1 được lưu trữ trong khi chờ xử lý yêu cầu V+1.
HVTH: Nguyễn Trung Hiếu 13
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Một trạm khi đã rút một lượng số cần phải được sử dụng hết khi nó đến lượt tiếp
theo tiếp nhận bộ tuần tự nếu không các trạm khác sẽ phải chờ.
3.2.4 Thuật toán đảm bảo sự gắn bó mạnh
Tập hợp bao gồm các trạm được tổ chức theo kiểu vòng tròn ảo. Các cập nhật được
thực hiện theo hai thì:
1. Thống nhất giữa các trạm.

2. Thực hiện cập nhật.
Do vậy, thuật toán này đảm bảo một sự gắn bó mạnh. Nếu có nhiều yêu cầu cập
nhật diễn ra đồng thời thì ta phải có quy tắc để có thể quyết định yêu cầu nào được tiếp
nhận và thoả mãn. Nhằm phục vụ cho ý tưởng đó, ta thường hay sử dụng dấu hay phối
hợp cho mỗi cập nhật và ta xử lý yêu cầu có thời gian dấu lâu nhất.
Trạng thái có thể của mỗi trạm là:
- Nghỉ ngơi: Trạm không thực hiện cập nhật nào cả.
- 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
- Thụ động: Trạm đã đồng ý cho một cập nhật và chờ trật tự tương ứng
- 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.
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 công 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 trạng thái từ nghỉ ngơi sang hoạt động
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 này 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 lại trở về trạng thái nghỉ ngơi
Nếu có nhiều yêu cầu được đư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 với nó; một trạm trong trạng thái hoạt dộ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 lại sẽ được gửi tiếp vào vòng tròn, khi trạm lưu giữ chúng hoàn
thành việc cập nhật riêng của mình.

HVTH: Nguyễn Trung Hiếu 14
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Chương 4. BÀI TẬP
4.1 Yêu cầu
Hãy nghiên cứu kỹ các sửa đổi nhằm đem lại cho các thuật toán khác nhau về quản
lý nhiều bản sao nhằm mục tiêu tính đến các sự cố kỹ thuật sau:
1. Chỉ có một sự cố duy nhất.
2. Khi đang xử lý một sự cố, thì sự cố khác lại đến.
4.2 Phân tích
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áicủ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ố phảilà:
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ácthay đổi
cần thiết 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ố trước khi diễn ra các thay đổi của T, trạng tháicủ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ẽ 4.1.
Hình 4.1. Ba giai đoạn của một giao dịch
HVTH: Nguyễn Trung Hiếu 15

Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Trong giai đoạn 1 và 3, thao tác duy nhất là lưu dữ liệu và trạng thái hiện có là đủ.
Nếu nằm vào trạng thái 2, thì giao dịch phải cố gắng kết thúc công việc của mình
ở điểm II hoặc là phải phục hồi lại trạng thái ban đầu ở điểm I. Hai giai đoạn gắn
bó 1 và 2 có bản dữ liệu khác nhau.
Ta thực hiện việc sửa đổi các thuật toán khác nhau để quản lí việc sao chép nhiều
bản nhằm cho phép một trạm rút lui theo ý muốn ra khỏi mạng, rồi lại vào lại trong
mạng và cập nhật bản sao vốn có của mình khi có sự cố xãy ra. Đặc biệt ta sẽ phải chi
tiết hoá các thông điệp trao đổi giữa các trạm thực hiện công việc rút ra (hay đưa vào) và
các trạm khác của mạng.
Một trạm muốn rút ra khỏi mạng với yêu cầu mạng không được thay đổi tính gắn
bó mặc dù số lượng trạm khác đi. Để thực hiện việc rút lui và đảm bảo yêu cầu này trước
hết cho dù sử dụng thuật toán nào cũng phải thực hiện phép kiểm tra tính gắn bó, khả
năng rút lui của trạm ảnh hưởng tới các trạm khác và ảnh hưởng tới hệ như thế nào. Trên
cơ sở đó thiết lập các yêu cầu để tiến hành việc rút lui. Muốn cho trạm vào lại trong
mạng và cập nhật lại các bản sao vốn có của nó cũng tương tự, đồng thời ta phải ràng
buộc thêm các điều kiện để việc cập nhật các bản sao không phá vỡ tính ổn định của hệ.
Trước hết ta xét các nguyên lý của các thuật toán quản lý bản sao.
Theo thuật toán quản lý gắn bó yếu nhờ dấu: 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 như đã trình bày trong
các chương trước. Theo đó mỗi 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 được đả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 khác
nhau.
Các giao dịch cần 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 rồi 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. Ta giới hạn vấn đề trong phép toán ghép ghi.
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 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
qua 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ự nhận 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 yêu cầu cần xử lý trên một trạm là hoàn toàn có thể
4.3 Chi tiết các thông điệp
Trong yêu cầu quản lý các bản sao để đảm bảo tính gắn bó, trước hết ta giả sử lúc
đầu hệ là gắn bó, nghĩa là thông tin trên các trạm là giống hệt nhau. Ta giải quyết vấn đề
trên hai thao tác cơ bản: Trạm rút ra khỏi mạng và trạm vào lại trong mạng. Các cấu hình
hệ phụ thuộc cơ chế quản lý nên sẽ quy định trong cụ thể mỗi cơ chế quản lý.
4.3.1 Thuật toán áp dụng then cài
Gọi hệ thống bao gồm n trạm e
1
, e
2
,… e
n
, các thông điệp cần thiết để thực hiện rút
ra và vào lại cập nhật các bản sao của trạm e
j
. Trước lúc thực hiện mỗi sự thay đổi thuộc
tính của hệ ta buộc phải có thông điệp tương ứng để báo cho các trạm còn lại. Tổng hợp
bảng thông điệp.
HVTH: Nguyễn Trung Hiếu 16
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
STT Trạm Nội dung thông điệp
1 Trạm e
j
rút Thông báo trạm e
j

rút
2
Trạm e
i
, i=1 n
i<>j
Nếu có thông điệp đến, lưu vào hàng đợi
3 Trạm e
j
vào lại
Thông báo trạm e
j
vào lại
Ghi nhớ hàng đợi còn
Cài then các đối tượng
Cập nhật các bản sao Trạm e
i
, i=1 n
i<>j
Giải phóng các trạm
4 Trạm e
i
, i=1 n
Thông báo kết thúc cập nhật
Tiếp tục hàng đợi của mình
4.3.2 Thuật toán đảm bảo sự gắn bó yếu nhờ dấu
Gọi hệ thống bao gồm n trạm e
1
, e
2

,…e
n
, các thông điệp cần thiết để thực hiện rút ra
và vào lại cập nhật các bản sao của trạm e
j
. Mỗi trạm có đồng hồ riêng H
e
để đánh dấu
các sự kiện diễn ra trên hệ. Tổng hợp bảng thông điệp.
STT Trạm Nội dung thông điệp
1 Trạm e
j
rút Thông báo ghi dấu E
j
trên H
e
2
Trạm e
i
, i=1 n
i<>j
Nếu có thông điệp đến, ghi dấu nhận thông điệp theo hệ
thống của mình
3 Trạm e
j
vào lại
Thông báo ghi dấu trạm e
j
vào lại
Yêu cầu cập nhật trên các trạm

4
Trạm e
i
, i=1 n
i<>j
Nếu có thông điệp đến, ghi dấu nhận thông điệp e
i
vào lại
theo hệ thống của mình
Cập nhật thông tin
Thông báo kết thúc cập nhật
4.3.3 Thuật toán đảm bảo sự gắn bó yếu nhờ bộ tuần tự tuần hoàn
Gọi hệ thống bao gồm n trạm e
1
, e
2
,… e
n
, các thông điệp cần thiết để thực hiện rút
ra và vào lại cập nhật các bản sao của trạm e
j
. Trên trạm này số thứ tự đang được cấp
phát trong bộ tuần tự tuần hoàn là T. Khi trạm muốn vào lại trong mạng bộ tuần tự tuần
hoàn cấp số thứ tự là T’. Tổng hợp bảng thông điệp.
STT Trạm Nội dung thông điệp
1 Trạm e
j
rút Thông điệp T, trạm rút
2
Trạm e

i
, i=1 n
i<>j
Thực hiện các thông điệp T
i
tương ứng của mình
3 Trạm e
j
vào lại Thông điệp trạm T’, trạm vào lại
HVTH: Nguyễn Trung Hiếu 17
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
Yêu cầu cập nhật trên các trạm
Thực hiện cập nhật
Giải phóng các trạm
4
Trạm e
i
, i=1 n
i<>j
Thực hiện các thông điệp T’
i
của mình
4.3.4 Thuật toán đảm bảo sự gắn bó mạnh
Gọi hệ thống bao gồm n trạm e
1
, e
2
,… e
n
, các thông điệp cần thiết để thực hiện rút

ra và vào lại cập nhật các bản sao của trạm e
j
. Giả sử rằng hệ thống quy định thứ tự vòng
tròn ảo đang đặt vị trí bắt đầu tại trạm j. Tổng hợp bảng thông điệp.
STT Trạm Nội dung thông điệp
1 Trạm e
j
rút Thông điệp T, trạm rút
2
Trạm e
i
, i=1 n
i<>j
Thực hiện các thông điệp T
i
tương ứng của mình
3 Trạm e
j
vào lại
Thông điệp trạm T’, trạm vào lại
Yêu cầu cập nhật trên các trạm, thống nhất cho phép cập
nhật
Thực hiện cập nhật
Thống nhất lại vòng tròn ảo
4
Trạm e
i
, i=1 n
i<>j
Thực hiện các thông điệp T’

i
của mình
Việc xử lý trạng thái điều khiển do trạm nhận tiến hành trên cơ sở tham chiếu
thông tin trong bản điều khiển và theo yêu cầu thể hiện trong hình 4.1.
Sau khi hoàn thành trọn vẹn công việc, trạm nhận tiến hành phát thông điệp đến
toàn bộ các trạm của hệ thống để cập nhật vào bản điều khiển, đồng thời tự động cập
nhật vào bản cục bộ của mình.
Khi cập nhật, giải thuật GT
1
, l=1 P được thực hiện bởi trạm nhận trong cơ chế
then cài đối với các phép làm thay đổi thông tin trong bản sao, ngược lại, thì thực hiện
theo kiểu tương tranh.
Việc phát hiện và xử lý lỗi trong quá trình xử lý được tiến hành ngay sau khi trạm
nhận được yêu cầu cập nhật. Nếu mọi cố gắng sửa lỗi không thể thực hiện có kết quả, thì
thông điệp sẽ được phát đi để yêu cầu trạm gửi phát lại thông tin. Trong trường hợp công
việc cập nhật kết thúc tốt đẹp, một thông điệp khẳng định cũng được phát đi bởi trạm
nhận. Sau khi phát đi thông điệp, trạm gửi chuyển
sang trạng thái chờ thông điệp mới, còn trạm nhận thông điệp chỉ chuyển sang trạng thái
chờ khi đã nhận đủ các thông điệp khẳng định.
HVTH: Nguyễn Trung Hiếu 18
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
KẾT LUẬN
Trong quá trình xây dựng hệ phân tán hỗ trợ các ứng dụng lớn 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.
Các thuật toán quản lý bản sao nghiên cứu ở trên đã giải quyết yêu cầu quản lý các
bản sao trong mạng trên những mức độ khác nhau. Kết quả của những thuật toán cho
phép các bản sao đảm bảo gắn bó dữ liệu mạnh hay yếu, nhờ những công cụ khác nhau.

Các nguyên lý có tính thuật toán áp dụng cho việc quản lý bản sao được xây dựng cho hệ
thống ổn định. Chúng không thích hợp cho loại hệ hay sự cố, đặc biệt cho trường hợp
phân tán hệ thành hai hay nhiều mạng con độc lập; mỗi mạng tiếp tục hoạt động như là
hệ cục bộ. Dẫu rằng các bản sao tạo nên mạng con vẫn duy trì sự gắn bó nhưng sự hợp
nhất lại chúng là vấn đề nan giải. Ta chỉ có thể tránh được hiện tượng này bằng cách để
số lượng các trạm nhỏ hơn hay bằng đa số tuyệt đối của hệ khởi sự.
Phần lý thuyết minh hoạ mang tính nguyên lý, phần bài tập mô tả chi tiết thuật toán
về các thông điệp trao đổi giữa các trạm. Các thuật toán được phát triển trên những
nguyên lý chung đã nêu, và thực hiện công việc chính là rút ra khỏi mạng rồi vào lại, cập
nhật cho các bản sao khác. Trong quá trình thực hiện việc rút ra và vào lại cập nhật ta cố
gắng duy trì tối đa mức độ ổn định của hệ và tính gắn bó vốn có của hệ.
Được sự giúp đỡ của Thầy giáo hướng dẫn Lê Văn Sơn và các anh chị trong lớp,
cùng với sự cố gắng của bản thân, chúng tôi đã hoàn thành được những nhiệm vụ cơ bản
đặt ra cho đề tài. Nhân dịp này cho phép chúng tôi xin được bày tỏ lòng biết ơn đối với
Thầy giáo Lê Văn Sơn và các bạn trong lớp đã giúp đỡ chúng tôi hoàn thành nội dung
bài báo cáo.
HVTH: Nguyễn Trung Hiếu 19
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn
TÀI LIỆU THAM KHẢO
1. Ts. Lê Văn Sơn, Hệ tin học phân tán, Nhà xuất bản đại học quốc gia TP. Hồ Chí
Minh, 2002.
2. Ts. Lê Văn Sơn, Nghiên cứu phát triển giải thuật quản lý nhiều bản sao cho các
ứng dụng phức tạp, Tạp chí Khoa học và Công nghệ Đại học Đà Nẵng, Số 1 (2003).
3. Trịnh Ngọc Minh, Nhập môn hệ điều hành Unix – Linux.
4. Hà Quang Thụy, Bài giảng chuyên đề Hệ điều hành UNIX – LINUX, 2002
5. Huỳnh Thúc Cước, Kiến trúc Unix – Linux.
6. Stefano Ceri & Giuseppe Pelagatti, Distributed database: Principles and
systems, Mc Graw – Hill book company, 1994.
HVTH: Nguyễn Trung Hiếu 20
Tiểu luận: Hệ phân tán GVHD: PGS. TS. Lê Văn Sơn

MỤC LỤC
LỜI MỞ ĐẦU 1
Chương 1. NHỮNG KIẾN THỨC CHUNG VỀ HỆ PHÂN TÁN 2
Chương 2. KHẢ NĂNG PHÂN TÁN CỦA HỆ ĐIỀU HÀNH UNIX 3
Chương 3. THUẬT TOÁN QUẢN LÝ NHIỀU BẢN SAO 9
Chương 4. BÀI TẬP 15
KẾT LUẬN 19
TÀI LIỆU THAM KHẢO 20
HVTH: Nguyễn Trung Hiếu 21

×