Hệ tin học phân tán ra đời nhằm pháttriển nhu cầu của công nghệ thông tin .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ề
Trang 1Cùng với sự phát triển ngày càng cao của công nghệ thông tin Sự ra đời vàphát triển ồ ạt của máy vi tính và các phương tiện xử lý thông tin khác, cũng nhưnhu cầu trao đổi thông tin trong mọi hoạt động xã hội loài người Đòi hỏi sự pháttriển đồng bộ các phương pháp truyền thông Mạng máy tính ra đời làm cho mọingười trên thế giới trở nên gần nhau hơn Hệ tin học phân tán ra đời nhằm pháttriển nhu cầu của công nghệ thông tin
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ềukhiển thống nhất của một hệ điều hành
Để đả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áctiến trình Trình tự và đồng bộ các tiến trình trong hệ phân tán chỉ ra cho ta các vấn
đề đồng bộ có thể sẽ dẫn đến phải thiết chế một trật tự tổng quát của các sự kiệndiễn ra trong hệ Cần phải xác định mối liên hệ trao đổi thông qua các thông điệpvới thời gian truyền khác nhau, những thông tin tạm thời trao đổi không có giá trịtuyệt đối và trình tự tổng quát cần phải được thể hiện bằng phương tiện giải thuậtđảm bảo hoạt động nhịp nhàng giữa các tiến trình có liên quan với nhau
Trong giới hạn của tiểu luận kết thúc môn học này, với vấn đề chính việc
“Đồng bộ hóa giữa các tiến trình”, tiểu luận chủ yếu tập trung phân tích cách giảiquyết vấn đề dựa vào các thuật toán liên quan đến đồng bộ của Lamport Ví dụ củabài toán kinh điển – bãi đậu xe ô tô, được sử dụng để minh họa cho các yêu cầuđồng bộ và gắn bó dữ liệu nội dung của tiểu luận gồm những phần chính sau :
-Khái quát chung về hệ phân tán
-Bài toán bãi để xe ôtô và vấn đề đồng bộ hoá giữa các tiến trình
Bài tập : Bài số 4 chương IV – Trang 195
Trang 2Để hoàn thành tiểu luận này, tôi xin chân thành cám ơn sự chỉ bảo tận tìnhcủa Thầy giáo: PGS.TS.Lê Văn Sơn và các bạn học viên trong lớp Tuy nhiên chắchẳn vẫn còn nhiều thiếu sót, kính mong sự góp ý của thầy giáo và các bạn
Trang 3PHẦN 1 LÝ THUYẾT CHƯƠNG I : KHÂI QUÂT CHUNG VỀ HỆ TIN HỌC PHĐN TÂN
I.1.Định nghĩa hệ tin học phđn tân:
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ềukhiển thống nhất của một hệ điều hănh
I.2 Đặc điểm của hệ phđn tân:
Hệ tin học phđn tân có thể bao gồm 4 thực thể:
Hình I.1:Câc thực thể của hệ phđn tânTrong hệ tin học phđn tân, cấu hình phần cứng của mạng có thể bao gồm câc bộ
xử lý có cấu tạo hoăn toăn khâc nhau về khả năng, tốc độ vă được thiết kế cho câc chứcnăng không giống nhau Chúng có thể lă câc bộ vi xử lý, câc trạm lăm việc, câc mâytính trung vă câc mây tính điện tử vạn năng loại lớn Điều đâng quan tđm lă chúngđược gọi bằng câc tín gọi khâc nhau như trạm, nút mạng, mây tính,…căn cứ ngữ cảnh
mă ở đó nó được níu ra
Ngoăi hệ thống phần cứng, phần mềm, dữ liệu, thì hệ phđn tân còn có hệ thốngtruyền thông Song điều cơ bản để phđn biệt hệ tin học phđn tân với mạng mây tính vă
hệ điều hănh mạng chính lă nguyín tắc xđy dựng hệ
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
Trang 4Trong các tài liệu hiện nay, có rất nhiều lý lẽ xung quanh vấn đề nguyên tắc xâydựng một hệ phân tán, nhưng chung quy có thể liệt kê trong 4 điểm sau đây:
1 Chia sẽ tài nguyên:
Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn là cần phải dùng chungtài nguyên Một tiến trình trên một trạm nào đó có thể được yêu cầu cung cấp tàinguyên dùng chung ở một trạm khá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 trả kết quả sẽ rất lớn Tính toán này được chia nhỏ và thựchiện song song trên các trạm Điều này cũng rất cần thiết đối với những trạm bị quá tải.Một trong những tư tưởng lớn của hệ phân tán là phân tán hoá các 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.Đó là những cơ sở căn bảncho việc xây dựng các ứng dụng lớn như thương mại điện tử, giáo dục điện tử, chínhphủ điện tử, thư viện điện tử số và bệnh viện ảo
I.3 Mục tiêu của hệ phân tá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 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
Đảm bảo tính toàn vẹn của thông tin
Trang 5- Tiếp nhận và ghi yêu cầu chỉ dẫn.
- Dịch yêu cầu để có các thông tin cần thiết Thực hiện một số công việc của hệthống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơn dịch vụ
- Gửi kết quả cho hệ thống đã phát yêu cầu
Trang 6CHƯƠNG II : BÀI TOÁN BÃI ĐẬU XE Ô TÔ
VÀ VẤN ĐỀ ĐỒNG BỘ GIỮA CÁC TIẾN TRÌNH
II.1 Đặt vấn đề:
Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu tất cả các công cụ
đủ mạnh và hiệu quả để có thể đồng bộ hoá các tiến trình Tính cấp thiết về mặt
nguyên lý và kỹ thuật của vấn đề này thể hiện ở hai nguyên do cơ bản sau đây:
1 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ập muố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
2 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 cho phép chúng tham gia vào các hành động chung
Vì vậy, 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 cho phé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ệp qua 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án loại trừ 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ênhthuộc hệ thống viễn thông
II.2 Bài toán bãi để xe ô tô.
II.2.1 Bài toán bãi để xe :
Để rút ra các vấn đề đang đặt ra trong hệ phân tán về việc đồng bộ hóa cáctiến trình Ta hãy nghiên cứu một ví dụ kinh điển, đó là bài toán bãi để xe ô tô, vớinội dung được nêu ra như sau :
Trang 7Hình II-1 mô phỏng bãi để xe ô tô hiện đại.
Trong đó BV (người bảo vệ) có nhiệm vụ phân
phối chỗ cho các xe ô tô, VT(vị trí) cho từng xe
ôtô cụ thể Các mũi tên hai chiều được sử dụng
để mô tả dòng vào ra của ôtô
Bài toán nêu ra một số tình huống sau:
Như vậy, NBV không nắm được trạng thái hiện hành của bãi.
Tình huống thứ 2, đặt ra ở đây liên quan trực tiếp đến vấn đề cung cấp tàinguyên của hệ, chức năng cung cấp được phân tán trên nhiều trạm của hệ Trong đó
Hình II-1 Mô phỏng bãi đậu xe ôtô
Trang 8một người bảo vệ có vai trò như là chương trình cung cấp của bãi để xe, Ở đây, chỗ
để xe được xem là tài nguyên của hệ, các ô tô vào bãi là các tiến trình của hệ
Như vậy, các NBV phải hợp lực với nhau để phân phối chính xác các chỗ
trống trong bãi, đặc biệt là số lượng chỗ còn trống càng ít (tài nguyên hạn chế) thì
vai trò của hợp lực càng quan trọng
Sự hoạt động gắn bó với nhau giữa các chương trình cung cấp là rất cần thiết
để đảm bảo cho hoạt động cung cấp được hoàn toàn chính xác
II.2.2 Ví dụ về không gắn bó:
Để thấy được tầm quan trọng mang tính quyết định của trình tự xử lý thôngđiệp đối với yêu cầu gắn bó của hệ, ta hãy tiếp tục xem xét một trường hợp vềkhông gắn bó của bài toán bãi để xe ôtô : Ở đây, chỗ để xe được xemnhư là tàinguyên của hệ Giả sử rằng ở thời điểm cho trước ta có 4 người bảo vệ và có 100
chỗ còn trống Tất cả các NBV để có thông tin đó, trạng thái của hệ lúc này là gắn
bó Ba trong số họ phát đi thông tin cho ở Bảng II-1 sau:
Trang 9giá trị Thông
điệp
giátrị
Thôngđiệp
giátrị
Bảng II-2: Sự không gắn bó giữa 4 người bảo vệ
II.2.3 Qui tắc cho các thuật toán cung cấp trong hệ phân tán:
Một sự hoạt động gắn bó của các chương trình cung cấp phân tán quản lý trêncùng một tập hợp các tài nguyên chỉ đạt được nếu tuân thủ các qui tắc sau:
1 Các bộ cung cấp bắt buộc phải thực hiện cùng một giải thuật
2 Các bộ cung cấp đều nhận tất cả các thông điệp phát đi từ các tiến trình
3 Các thông điệp phải được xử lý cùng một trật tự như nhau trong các
chương trình cung cấp
Qui tắc thứ ba, nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trêntập hợp các thông điệp của hệ Trật tự này có thể được thực hiện thông qua việc hợplực của các tiến trình cung cấp Vấn đề nghiên cứu phương pháp sắp xếp nhằm xáclập một trật tự đảm bảo cho yêu cầu đồng bộ hóa được trình bày ở phần sau
II.3 Vấn đề đồng bộ giữa các tiến trình
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.
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ệctrao đổi các thông điệp với nhau
Một tiến trình nào đó cần sử dụng tài nguyên để phát triển công việc củamình, phải yêu cầu bộ cung cấp một cách hợp thức bằng cách gửi thông điệp yêu
Trang 10cầu Như thế, một tiến trình có nhu cầu tài nguyên sẽ bị treo chừng nào tài nguyên
đó còn chưa được giải phóng hay chưa được cung cấp cho nó
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ả 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ánnhờ vào quan hệ “có trước” (→) hay “ở ngay trước”:
Trật tự các sự kiện được xác định dựa trên các nguyên tắc sau:
C1: Nếu A và B là hai sự kiện của cùng một trạm và A được thực hiện trước
Trang 11A3 và B2, B3, B4
Hình II.2: Mô tả trật tự từng phần
II.3.1 Đoạn găng :
Đoạn găng (Critical Section): là đoạn code trong các tiến trình đồng thòi, cótác động đến các tài nguyên dùng chung
Vấn đề đoạn găng: các sự truy cập chồng lên nhau có thể dẫn đến các kết quảkhác với truy cập tuần tự Do đó làm thế nào bảo đảm rằng các tiến trình thi hànhmiền găng một cách tuần tự chứ không phải là đồng thời; hay nói cách khác là làm
thế nào tuân theo giải thuật loại trừ tương hỗ
II.3.2 Yêu cầu của công tác điều độ qua đoạn găng:
1 Tại một thời điểm không thể có hai tiến trình nằm trong đoạn găng
2 Nếu có nhiều tiến trình đồng thời xin được vào đoạn găng thì chỉ cómotjtiến trình được phép vào, các tiến trình còn lại phải xếp hàng chờ tronghàng đợi
3 Tiến trình chờ ngoài đoạn găng không được ngăn cản các tiến trình khácvào đoạn găng
4 Không có tiến trình nào được phép ở lâu vô hạn trong đoạn găng và không
có tiến trình nào phải chờ lâu mới được vào đoạn găng
Trang 125 Nếu tài nguyên găng được giải phóng thì hệ điều hành có nhiệm vụ đánhthức các tiến trình trong hàng đợi ra để tạo điều kiệncho nó vào đoạngăng.
II.3.3 Phân nhóm các thuật toán truy cập loại trừ tương hỗ:
− Truy cập vào miền găng dựa trên sự xác nhận (contention based): Mỗitiến trình xác nhận yêu cầu của nó để truy cập vào miền găng Hay nói cáchkhác, các tiến trình cạnh tranh hay tranh giành nhau quyền truy cập vào miềngăng
− Truy cập vào miền găng dựa trên (Token based): Việc truy cập vàomiền găng được điều khiển bởi một token Người giữ token có quyền thi hànhđoạn găng của nó
− Tổng quát
Một trạm bất kỳ trong hệ thống có thể
+ Yêu cầu miền găng
+ Thi hành miền găng
+ Hoặc không làm gì cả đối với miền găng (thi hành trong đoạn không phảimiền găng)
Các thuật toán nên thỏa mãn các yêu cầu: Không bế tắc, không thiếu, các yêucầu được thi hành theo thứ tự chúng được tạo, có thể vẫn hoạt động khi có sự cố tạimột hoặc nhiều trạm
II.4 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ậnthời điểm truyền trên cơ sở tham chiếu đồng hồ lôgic Tức là trạm phát được gắnmột giá trị gọi là dấu Giá trị này có tính chất thời điểm cho trạm phát thông tin vàđưa vào đồng hồ lôgic cục bộ của chính trạm Các đồng hồ này được lấy lại thôngtin qua hội thoại giữa các trạm
Trang 13* Đồng hồ lôgic :
Đối với nhiều ứng dụng, các sự kiện không cần lập lịch hay đồng bộ đối vớithời gian thực Nó chỉ là thứ tự sự kiện hoạt động liên quan Trong trường hợp nhưvậy, đồng hồ lôgic có thể được dùng để biểu thị thứ tự thông tin cho các sự kiện,đặc biệt trong hệ phân tán, nó khó giữ được đồng hồ vật lý chung giữa tất cả cáctiến trình đang sắp xếp Đồng hồ lôgic Lamport là khái niệm cơ bản để sắp xếp cáctiến trình và các sự kiện trong hệ phân tán
Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là Hs Đó chính
là đống hồ lôgic tăng lên giữa hai sự kiện kế tiếp Trạm e phát thông điệp ghi dấu Ecủa mình dựa trên giá trị hiện hành của của He Khi nhận được thông điệp, trạm rcập nhập đồng hồ Hr riêng của mình bằng giải thuật sau :
Nếu Hr , thì
Hr:= E+1Chấm dứt nếu
Sự kiện “nhận thông điệp” lúc này được ghi nhận bằng giá trị của Hr Thuậttoán này đảm bảo rằng thời gian nhận thông điệp là sau thời gian phát nó đi
Với thời gian này cho phép xác định một quan hệ trật tự toàn bộ mà ta đã kýhiệuvà cho phép kiểm tra được các điều kiện trong C1, C2 của phần II.3.Một sựkiện a sinh ra trong trạm i và được đánh dấu bởi đồng hồ cục bộgọi là Hi(a) Nếu a
và b đều là hai sự kiện trên trạm i và j, ta luôn có quan hệ xác định như sau:
abHi(a)<Hj(b)
Đó là trật tự không chặt chẽ do vì hai sự kiện trên hai trạm khác nhau có thể đến cùng một thời điểm giống nhau.
Ta có thể mở rộng quan hệ thành quan hệ trật tự chặt chẽ => bằng cách kếthợp một số khác cố định cho mỗi trạm và bằng cách đánh dấu thời gian cho mỗi sựkiện a của trạm i bằng cặp (Hi(a),i)
Trang 14Theo định nghĩa , ta có:
a=>b=>(Hi(a)<Hj(b))hay (Hi(a)<Hj(b) và i<j)
* 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ộ
- Hệ thống các đồng hồ lôgic phải chính xác :
Điều kiện đồng hồ :
∀ sự kiện a,b : nếu a → b thì H(a) < H(b)
- Để thực thi các đồng hồ thỏa mãn điều kiện đồng hồ, ta có thể áp dụng thuậttoán đóng dấu thời gian
II.4.2 Đồng bộ theo trật tự tổng quát chặt chẽ (Lamport):
Trật tự từng phần chỉ có thể áp dụng cho một số hệ thống , điều này có nghĩa
là một số hệ thống có thể gắn bó được thông qua việc sắp xếp các sự kiện theo trật
tự bằng quan hệ “có trước” Tuy nhiên có rất nhiều hệ phân tán các sự kiện không thể sắp được bằng trật tự từng phần, do vậy phải cần đến trật tự chặt chẽ (=>)của
các sự kiện
* Giải thuật đóng dấu thời gian của Lamport
Đồng hồ lôgic cho phép đóng dấu thời gian, nhằm xác lập trật tự 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ôgic của A nhỏ hơn đồng hồ lôgic của B
Nguyên tắc thiết lập: Mỗi trạm S đều có trang bị công tơ với các giá trịnguyên Hs đó chính là đồng hồ lôgic, hoạt động theo các qui tắc sau:
Gia tăng Hi thêm một trị số giữa hai sự kiện kế tiếp
a