Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo được chia làm 3 chương, chương 1 tổng quan về hệ phân tán, chương 2 nói về các công cụ đồng bộ hoá các tiến trình
Trang 1Hệ 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 công nghệ thông tin đặc biệt quan tâm và đổi mới rất nhanh chóng
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hóa các quá trình
xử lý thông tin và thực hiện các công việc đó trên các trạm xa nhau Đó là cơ sở để xây dựng các hệ ứng dụng lớn như thương mại điện tử, giáo dục điện tử, chính phủ điện tử .
Phân tán hóa các quá trình xử lý, tạo nên ưu thế của hệ có thể đáp ứng việc giải quyết các bài toán lớn, một cách nhanh chóng Nhưng cũng tạo tính phức tạp, nan giải trong các yêu cầu thiết lập hệ Việc hợp lực của các thành viên trong hệ, dẫn đến hàng loạt các vấn đề như: định danh, cấp phát tài nguyên dùng chung (đảm bảo tránh tương tranh), giải quyết sự cố tạo nên tính tin cậy của hệ Để đảm bảo tính gắn bó của hệ, yêu cầu đặt ra trước hết là đồng bộ hóa các tiến trình Với hệ phân tán (không có bộ nhớ chung, bộ tạo xung đồng hồ chung), khả năng gắn bó và việc đồng
bộ hóa cho hệ chỉ dựa trên phương tiện duy nhất là truyền thông điệp, nên lời giải cho yêu cầu đồng bộ hóa thường chỉ dừng lại ở mức chấp nhận được đối với mỗi hệ
Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo được chia làm 3 chương, chương 1 tổng quan về hệ phân tán, chương 2 nói về các công cụ đồng bộ hoá các tiến trình trong hệ thống tin học và chương 3 đề ra các giải pháp thích hợp đối với các sự cố ở một trạm nào đó của một bộ tuần tự tuần hoàn trên vòng tròn ảo.
Em rất chân thành cảm ơn Thầy giáo PGS-TS Lê Văn Sơn đã cung cấp kiến thức, tài liệu để tôi hoàn thành báo cáo này.
Do thời gian và trình độ hạn chế, đề tài nhất định không tránh khỏi sai sót Kính mong sự chỉ bảo của Thầy giáo hướng dẫn cũng như các Anh, Chị trong lớp Xin chân thành cảm ơn.
Trang 2MỤC LỤC LỜI MỞ ĐẦU I
TỔNG QUAN VỀ HỆ TIN HỌC PHÂN TÁN 2
.I Hệ tin học phân tán 2
.I.1 Định nghĩa 2
.I.2 Đặc điểm cơ bản của hệ tin học phân tán 2
.I.3 Ưu điểm và khuyết điểm của hệ tin học phân tán 3
CÁC CÔNG CỤ ĐỒNG BỘ HÓA CÁC TIẾN TRÌNH TRONG HỆ THỐNG TIN HỌC 5
.I Các khái niệm 5
.I.1 Thời gian lôgic và trật tự sự kiện từng phần 5
.I.2 Gắn thời gian lôgic với các sự kiện 8
.I.3 Thuật toán đóng dấu thời gian của Lamport 8
.II Các thuật toán loại trừ tương hỗ 10
.II.1 Thuật toán giả phân tán : Hàng đợi tập trung 10
.II.2 Thuật toán Lamport: Hàng đợi phân tán 11
.II.3 Thuật toán Ricart và Agrawala 15
.II.4 Thuật toán Toren Ring 18
BÀI TẬP 19
.I Cơ sở lý thuyết 20
.I.1 Bộ tuần tự 20
.I.2 Vòng tròn ảo 21
.II Giải quyết bài toán 21
TÀI LIỆU THAM KHẢO 24
[1] PGS TS Lê Văn Sơn Hệ tin học phân tán Nhà xuất bản ĐHQG Tp HCM-2002 .24 [2] Modern Operating System – Andrwe S Tanebaun, prentice Hall 1994 24
[3] Distributed Systems: Concepts and Design - Addison-Wesley 2001 24
[4] Operating System Concept – Silberschatz, Galvin and Gagne - 2002 24
[5] Advances in Distributed and Parallel Knowledge Discovery – Hillol Kargupta and Philip Chan - 2002 .24
[6] Tham khảo các tài liệu trên internet 24
Trang 3.I Hệ tin học phân tán
.I.1 Định nghĩa
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 công nghệ thông tin đặc biệt quantâm và đổi mới rất nhanh chóng
Hiện nay, đứng trên những phương diện khác nhau, người ta có thể có các địnhnghĩa khác nhau về hệ tin học phân tán, nhưng phổ biến hơn cả là định nghĩa sau đây:
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 hệ điều hành.
Từ định nghĩa, người ta có thể xem hệ phân tán như là một tập hợp bao gồm các
bộ xử lý, các bộ vi xử lý với bộ nhớ và đồng hồ nhịp độc lập Có nghĩa là các bộ xử lýkhông sử dụng chung bộ nhớ và đồng hồ Như vậy, mỗi một hệ xử lý thông tin thànhphần của hệ phân tán bao gồm một hay nhiều bộ xử lý và bộ nhớ cục bộ
.I.2 Đặc điểm cơ bản của hệ tin học phân tán
Hệ tin học phân tán gồm bốn thực thể như sau:
Hệ thống phần mềm: gồm hệ điều hành, các chương trình cơ sở & các chươngtrình ứng dụng
Hệ thống truyền thông
Hệ thống truyền thông
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
Trang 4Tiểu luận: Hệ tin học phân tán Lớp: Khoa học máy tính –K14
Tập hợp phần cứng: gồm những máy tính cụ thể, những mạng nhỏ nối với nhau đểtrở thành mạng lớn hơn
Hệ thống truyền thông (đường truyền): gồm các thiết bị giao tiếp
Hệ thống dữ liệu: gồm các Cơ sở dữ liệu
Nguyên tắc xây dựng một hệ phân tán có thể liệt kê trong bốn điểm sau:
STT Tên gọi Thuyết minh
1 Chia sẻ 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ạmkhác
2 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
3 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ể được tự động phục hồi lại cáctrạng thái trước khi bị sự cố hay trạng thái ban đầucủa nó
4 Tăng tốc Đây là một khái niệm mới về phân tán tải Một
tính toán lớn nào đó, nếu chỉ sử dụng một trạm thìthời gian tính toán sẽ rất lớn Tính toán này đượcchia nhỏ và thực hiện song song trên các trạm, tránhtình trạng trạm bị quá tải
.I.3 Ưu điểm và khuyết điểm của hệ tin học phân tán
Hệ tin học phân tán thực hiện hang 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 đến các loại tài nguyên vốn
có và rất đa dạng của hệ thống như những tài nguyên dùng chung Ưu điểm của điều
đó được thể hiện trong bảng sau:
STT Ưu điểm so với hệ tập trung
1 Tính kinh tế Cho tỉ số giá/hiệu suất tốt hơn
2 Tăng tốc độ bình quân trong tính toán, xử lý Nâng cao hiệu suất
thông qua song song hóa
3 Thực hiện công việc chung hay chia sẻ công việc Có sức mạnh
của nhiều máy tính cộng lại
Trang 54 Tính phân tán Thích hợp với các hệ thống có tính phân tán
5 Cái thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên
6 Độ tin cậy Hệ thống vẫn làm việc tốt khi có máy bị lỗi ngừng làm
việc
7 Có khả năng mở rộng Có thể mở rộng hệ thống theo từng bước
8 Đảm bảo tính toàn vẹn của thông tin
Ưu điểm so với các máy tính riêng lẻ
9 Khả năng chia sẻ dữ liệu Cho phép nhiều người dùng truy cập đến
13 Đơn giản thiết kế thông qua chuyên dụng hóa
Bên cạnh những ưu điểm, hệ thống phân tán cũng có những nhược điểm của mình
Để đảm bảo các chức năng, yêu cầu như trên, hệ phân tán phải có các yêu cầu kỹthuật đủ mạnh nhằm đồng bộ hóa hoạt động của các tiến trình và sự trao đổi thông tinvới nhau sao cho hệ thống tránh được các trường hợp có thể dẫn đến bế tắc Ngoài ra,trong hệ, người ta còn cần phải giải quyết hang loạt các vấn đề mới phát sinh màtrước đây chưa từng gặp trong các hệ thông thường
STT Nhược điểm của hệ thống phân tán
1 Phần mềm Sự phức tạp trong cách thiết kế, xây dựng và sử dụng
phần mềm cho hệ thống phân tán
2 Truyền thông mạng Phải xử lý các vấn đề liên quan đến truyền
thông mạng như sự chậm trễ, sự mất mát dữ liệu
3 Tính bảo mật: người dùng dễ truy cập = dễ tiết lộ thông tin
Trang 6- Nhìn chung, các tiến trình kể cả các tiến trình xuất phát từ các ứng dụng độc lậpmuốn truy cập vào các tài nguyên với số lượng vốn rất hạn chế hay truy cập vào
thông tin dùng chung cùng một lúc Trường hợp này gọi là truy cập tương tranh.
Tương tranh chính là nguyên nhân chính của các xung đột của giữa các tiến trình
muốn truy cập vào tài nguyên dùng chung
- Các tiến trình của cùng một hệ ứng dụng hoạt động theo kiểu hợp lực để giải
quyết các bài toán đặt ra và cho kết quả nhanh chóng nhất Điều này cho phép tăng
hiệu năng sử dụng thiết bị và hiệu quả hoạt động của chương trình Hợp lực là nguyên
nhân chính của sự tác động tương hỗ được lập trình giữa các tiến trình nhằm chophép chúng tham gia vào các hành động chung
Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi thông điệpqua lại với nhau Trong các hệ thống tập trung, điều đó được thực hiện nhờ thuật toánloại bỏ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung Trong
hệ tin học phân tán, các thông tin cần trao đổi thông qua các kênh thuộc hệ thốngviễn thông
.I.1 Thời gian lôgic và trật tự sự kiện từng phần
Trong các hệ tin học tập trung, vấn đề đồng bộ hóa được giải quyết thông qua cơchế loại trừ tương hỗ Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện Tuynhiên, trong thực tế một số hệ thống khi đồng bộ hóa chỉ đòi hỏi trật tự từng phần.Chính vì vậy, trật tự hóa từng phần giữa các sự kiện mà tiến trình của nó cần phảiđồng bộ là vấn đề cần phải quan tâm giải quyết
Trong hệ phân tán, việc đồng bộ hóa chủ yếu yêu cầu thiết lập một trật tự giữa các
sự kiện Giữa các trạm khác nhau, trật tự đó có thể thể hiện thông qua việc trao đổicác thông điệp với nhau
Trở lại năm 1979, Lamport đã đưa ra rằng hai sự kiện từ các trạm khác nhau chỉ cóthể có trật tự nếu chúng được tách rời với nhau bằng cách gửi và nhận thông điệp.Ngược lại, cho dù một sự kiện xảy ra trước sự kiện khác theo thời gian, không cócách nào cho sự kiện thứ hai có thể quan sát trật tự này và vì vậy, không có cách nàocho sự chính xác của nó phụ thuộc vào nó Giả định ở đây là không có sự quan sát
Trang 7bên ngoài của trật tự sự kiện Nếu sự chính xác của hệ thống phụ thuộc vào trật tựđược quan sát bởi con người, ví dụ, thì sự quan sát Lamport không áp dụng Tuynhiên, sự chính xác trật tự chỉ phục thuộc vào sự đồng bộ bên trong của các sự kiện
và vì thế định nghĩa của Lamport có thể áp dụng
Giả sử rằng ta có thể xác định một trật tự giữa các sự kiện của hệ phân tán nhờ vàoquan hệ “có trước” (→):
Bây giờ ta xem xét về trật tự sự kiện:
Các sự kiện trên P có quan hệ như thế nào với các sự kiện trên Q?
Các sự kiện nào của P xảy ra trước các điều kiện nào của Q?
Trang 8Tiểu luận: Hệ tin học phân tán Lớp: Khoa học máy tính - K14
Nếu P1 là sự kiện phát thông điệp và Q2 là sự kiện nhận tương ứng thì:
P1 → Q2
Trật tự các sự kiện được định nghĩa như sau:
− Nếu A và B là hai sự kiện của cùng một trạm và A xảy ra trước B thì ta có A→B
− Nếu A là phát thông điệp từ một trạm nào đó và B là nhận thông điệp thì ta cóA→B
− Nếu A→B và B→C, thì A→C
Sơ đồ của “ có trước ”:
+ a → b có nghĩa: chúng ta có thể đi từ a đến b theo sơ đồ bằng cách di chuyển
về phía trước theo thời gian dọc theo các đường tiến trình và thông điệp, ví dụ
p1 → r4
+ Chúng ta nói rằng a tác động nhân quả đến b
+ Hai sự kiện là hợp lực nếu chúng có tác động nhân quả với nhau, ví dụ p3 và
q3 là hợp lực.
+ Cho dù q3 xảy ra tại thời điểm vật lý sớm hơn p3 , tiến trình P không biết tiến trình Q đã làm gì tại thời điểm q3 cho đến khi nó nhận được thông điệp tại thời điểm p4.
p2 p1
p3
p4
q1 q2 q3 q4 q5 q6
Trang 9.I.2 Gắn thời gian lôgic với các sự kiện
− Các đồng hồ lôgic: gán một số cho mỗi sự kiện cục bộ nhưng không liên quan đếnthời gian vật lý
− Hệ thống các đồng hồ lôgic phải chính xác :
− Hay nói cách khác:
− Làm thế nào chúng ta có thể thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ?
Bằng thuật toán đóng dấu thời gian của Lamport – cung cấp một tập hợp các quy
luật thực thi đơn giản
.I.3 Thuật toán đóng dấu thời gian của Lamport
− Đồng hồ lôgic là thuật toán cho phép đóng dấu cho từng sự kiện trong hệ phân tán
để với mỗi cặp sự kiện A và B ta có: nếu A có trước B (A → B) thì đồng hồ lôgiccủa A nhỏ hơn đồng hồ lôgic của B
Trang 10Tiểu luận: Hệ tin học phân tán Lớp: Khoa học máy tính - K14
− Trật tự sự kiện toàn bộ: giả sử là các đồng hồ thỏa mãn Điều kiện Đồng hồ, tađịnh nghĩa quan hệ sau:
với các sự kiện a trên Pi và b trên P j
− Trật tự từng phần với trật tự toàn bộ
+ Chú ý rằng quan hệ “có trước”chỉ định nghĩa trật tự từng phần của các sự kiện.
Điều này có nghĩa là trong khi một số sự kiện được sắp xếp trật tự bằng quan
hệ “có trước”, vẫn còn một số sự kiện không được sắp xếp theo thứ tự
+ Thỉnh thoảng chúng ta cần đến trật tự toàn bộ của các sự kiện
+ Trật tự toàn bộ sắp xếp thứ tự cho từng sự kiện để tất cả các trạm đồng ý vớitrật tự này
+ Lamport định nghĩa trật tự toàn bộ dựa trên quan hệ “có trước”, nó gán cho
mỗi trạm một số duy nhất và sau đó sử dụng số này để lập trật tự cho các sự
kiện không được sắp xếp thứ tự bằng quan hệ “có trước”
+ Trật tự nhất quán của các sự kiện phát:
3 2
2
Trang 11.II Các thuật toán loại trừ tương hỗ
.II.1 Thuật toán giả phân tán : Hàng đợi tập trung
− Có một trạm là trạm điều khiển đảm nhiệm việc cung cấp tài nguyên
− Các trạm khi yêu cầu miền găng sẽ gửi các thông điệp đến trạm điều khiển
− Trạm điều khiển duy trì một hàng đợi chứa các yêu cầu và cấp cho mỗi trạmquyền truy cập vào miền găng theo lần lượt
1
Tiến trình 1 yêu cầu truy cập vào miền
găng CS Điều phối viên đưa yêu cầu
vào hàng đợi và cấp quyền truy cập vì lúc đầu hàng đợi trống
C
REQ
1 Không hồi âm
2
Tiến trình 2 yêu cầu truy cập vào CS
Điều phối viên xếp yêu cầu vào hàng đợi và từ chối không cho truy cập vì hàng đợi không trống
Trang 12Tiểu luận: Hệ tin học phân tán Lớp: Khoa học máy tính - K14
− Ưu điểm: chính xác, công bằng, không đói, đơn giản
− Nhược điểm: điểm sự cố đơn, hoạt động theo cách cổ chai
.II.2 Thuật toán Lamport: Hàng đợi phân tán
− Khái quát:
+ Thuật toán là sự suy rộng của Hàng đợi tập trung cho việc cài đặt phân tán
+ Thuật toán này được Lamport (1978) đưa ra, nó sử dụng cơ chế đóng dấu thờigian cho việc đồng bộ các đồng hồ lôgic
− Các giả định:
+ Chúng ra giả định mô hình mạng kết nối hoàn toàn trong đó các tiến trình liênlạc thông qua các kênh FIFO tin cậy Tức là, các thông điệp không thể sắp xếplại theo trật tự khác
+ Các giả định được thực thi một cách dễ dàng ở tầng giao vận
− Các kiểu thông điệp:
+ (REQ, C i , i) : Một yêu cầu cho việc truy cập vào miền găng CS của tiến trình
Pi Yêu cầu này được phát đi cho tất các các tiến trình khác.
+ (REP, C i , i) : Hồi âm từ tiến trình Pi cho tiến trình Pj khi Pi nhận được yêu cầu
từ Pj.
+ (REL, C i , i) : Thông điệp giải phóng từ Pi thông báo cho biết nó đã rời khỏi
CS Thông điệp này được gửi cho tất cả các tiến trình khác.
− Các biến tiến trình:
+ C i : Đồng hồ cục bộ của Pi, khởi tạo từ 0.
+ q i : Hàng đợi [0 … n-1] chứa các thông điệp
− Thuật toán:
Tiến trình 1 rời khỏi CS Điều phối
viên loại bỏ 1 khỏi hàng đợi và cấp quyền truy cập cho tiến trình đầu tiên trong hàng đợi – đó là tiến trình 2
C
2
Trang 13+ Khi một tiến trình tại trạm Si muốn thi hành đoạn găng, nó sẽ gửi thông điệpREQ có đánh dấu thời gian cho tất cả các trạm trong hệ thống kể có trạm Si.
+ Mỗi trạm, Si, duy trì một hàng đợi chứa các thông điệp yêu cầu được sắp xếptheo trật tự các dấu thời gian; các đồng hồ logic và quan hệ trật tự toàn bộđược sử dụng để gắn các dấu thời gian
+ Khi một trạm nhận được yêu cầu, nó sẽ đưa thông điệp đó vào hàng đợi yêucầu của nó theo thứ tự dấu thời gian và gửi một thông điệp trả lời REP Nếucần, quan hệ trật tự toàn bộ được sử dụng để phá vỡ các sự ràng buộc
+ Ý tưởng chung là một tiến trình không thể thi hành đoạn găng của nó cho đếnkhi nó nhận được trả lời từ tất cả các trạm khác Các thông điệp trả lời sẽ
“flush out” các yêu cầu bất kỳ từ các tiến trình khác, để chúng ta biết hàng đợiđược cập nhật
+ Đặc biệt hơn nữa, một trạm thi hành miền găng của nó khi:
1) Nhận được thông điệp trả lời từ tất cả các trạm còn lại và
2) Yêu cầu REQ của nó là ở trên đỉnh của hàng đợi cục bộ của nó
+ Khi một trạm hoàn thành miền găng của nó, nó sẽ gửi khuyến nghị giải phóngREL đến tất cả các trạm Yêu cầu của nó được loại khỏi tất cả các hàng đợi tạithời điểm này Nếu các trạm khác đang chờ để thi hành miền găng của chúng,một trong các trạm đó bây giờ có thể bắt đầu thực hiện miền găng của mình
+ Hoạt động: 31) thông điệp cần thiết cho mỗi miền găng được thi hành 1) thông điệp REQ, (N-1) thông điệp REP và (N-1) thông điệp REL
(N-+ Độ trễ đồng bộ: T (trong đó T thời gian trung bình truyền thông điệp) Khinhận được thông điệp giải phóng, tiến trình tiếp theo có thể bắt đầu thi hành
+ Loại trừ tương hỗ là đạt được: Các dấu thời gian là duy nhất, vì vậy tất cả cáchàng đợi sẽ giữ các yêu cầu trong cùng một thứ tự Chỉ một tiến trình duy nhất
sẽ nằm ở đỉnh của các hàng đợi
− Thuật toán yêu cầu của Pi :
ci ← ci + 1 ;
broadcast (REQ, ci, i) ;
qi [i] ← (REQ, ci, i) ;
wait ∀ j = i timestamp(qi[i]) < timestamp(qi[j]) ;
< CSi >
ci ← ci + 1 ;
broadcast (REL, ci, i) ;