intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tiểu luận Hệ tin học phân tán: Vấn đề bế tắc trong hệ tập trung và hệ phân tán

Chia sẻ: Cá Nhét Xù | Ngày: | Loại File: DOC | Số trang:24

87
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đề tài “Vấn đề bế tắc trong hệ tập trung và hệ phân tán” đi tìm hiểu rõ hơn về vấn đề bế tắc và thuật toán dự phòng bế tắc của Lomet.

Chủ đề:
Lưu

Nội dung Text: Tiểu luận Hệ tin học phân tán: Vấn đề bế tắc trong hệ tập trung và hệ phân tán

  1. Báo cáo Hệ tin học phân tán LỜI MỞ ĐẦU Hệ tin học phân tán 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 rất đa dạng, đa diện, phức tạp về mặt cấu trúc, tập  hợp bao gồm các bộ xử lý hoặc bộ vi xử lý với bộ nhớ và đồng hồ  nhịp độc   lập, 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ành phần của hệ tin học phân tán bao gồm một hay nhiều  bộ  xử lý và bộ nhớ cục bộ. Trong hệ phân tán hệ  xử lý thông tin thành phần  phải được thiết kế  sao cho về cấu trúc, số  lượng và dung lượng có thể  cho  phép thực hiện một cách trọn vẹn các chức năng mà nó phải đảm nhận. 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 loại 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. Những  ưu điểm căn bản của việc sử  dụng chung tài nguyên so với hệ  tập trung được phản ảnh như sau: 1. Tăng tốc độ bình quân trong tính toán­xử lý. 2. 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. 3. Tăng độ an toàn dữ liệu. 4. Đa dạng hóa các loại hình dịch vụ tin học. 5. Đảm bảo tính vẹn toàn của thông tin. Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu trên, hệ phân  tán cần phải có các cơ  chế kỹ thuật đủ  mạng nhằm đồng bộ  hóa 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 trường hợp có thể dẫn đến bế tắc mà khi nghiên cứu hệ điều hành  các máy tính chúng ta đã có dịp làm quen. Để tìm hiểu rõ hơn về vấn đề  bế tắc và thuật toán dự phòng bế tắc của  Lomet tôi chọn đề tài “Vấn đề bế tắc trong hệ tập trung và hệ  phân tán” để  nghiên cứu. Trong thời gian thực hiện đề tài, tôi đã nhận được sự hướng dẫn   tận tình của PGS.TS Lê Văn Sơn, được sự  động viên và giúp đỡ  của đồng  nghiệp trong cơ  quan và các anh chị  em lớp Cao học ­ Khoa học Máy tính  Khóa 10 (2008 – 2011) để hoàn thành đề tài. Xin chân thành cảm ơn!  Học viên: Nguyên Văn Việt Đức Trang 1
  2. Báo cáo Hệ tin học phân tán Học viên: Nguyên Văn Việt Đức Trang 2
  3. Báo cáo Hệ tin học phân tán Chương 1.  BẾ TẮC TRONG HỆ TẬP TRUNG 1.1 Bế tắc Tất cả các hiện tượng bế tắc đều bắt nguồn từ sự xung đột về tài nguyên  của hai hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống. Tài nguyên  ở đây có thể là một ổ đĩa, một mẫu tin trong cơ sở dữ liệu, hay một không gian   địa chỉ trên bộ nhớ chính. Sau đây là một số ví dụ minh hoạ cho điều trên. Ví dụ 1: Giả sử có hai tiến trình P1 và P2 hoạt động đồng thời trong hệ thống.  Tiến trình P1  đang giữ  tài nguyên R1  và xin được cấp R2  để  tiếp tục hoạt  động, trong khi đó tiến trình P2 đang giữ tài nguyên R2 và xin được cấp R1 để  tiếp tục hoạt động. Trong trường hợp này cả P1 và P2 sẽ không tiếp tục hoạt  động được. Như vậy, P1 và P2 rơi vào trạng thái bế tắc (minh hoạ bởi sơ đồ ở   hình 1.1). u  cầu Tài  Giữ Yê nguyên  R2 Tiến trình 1 Tiến trình 2 (P1) (P2) Giữ u uầ Tài  Yê nguyên  R1 Hình 1.1. Chờ đợi vòng tròn Bế tắc thường xảy ra do xung đột về tài nguyên thuộc loại không phân chia  được, một số ít trường hợp xảy ra với tài nguyên phân chia được. Ví dụ sau đây là  trường hợp bế  tắc do xung đột về  tài nguyên bộ  nhớ, là tài nguyên thuộc loại   phân chia được. Ví dụ 2: Giả sử không gian bộ nhớ còn trống là 200Kb, trong hệ thống có hai  tiến trình P1 và P2 yêu cầu được sử dụng bộ nhớ như sau: P1 P2 …. …. Request1 80Kb Request1 70Kb …. …. Request2 30Kb Request2 40Kb …. …. Bế tắc xảy ra khi cả hai tiến trình cùng yêu cầu thêm bộ nhớ lần thứ hai.   Tại thời điểm này, không gian bộ  nhớ  còn trống là 50Kb, lớn hơn lượng bộ  nhớ  mà mỗi tiến trình yêu cầu (30Kb và 40Kb), nhưng vì cả  hai tiến tình  Học viên: Nguyên Văn Việt Đức Trang 3
  4. Báo cáo Hệ tin học phân tán đồng thời yêu cầu thêm bộ nhớ nên hệ thống không thể đáp ứng được, và bế  tắc xảy ra. Ví dụ  3:  Trong các  ứng dụng cơ  sở  dữ  liệu, một chương trình có thể  khoá  một vài record mà nó sử dụng để dành quyền điều khiển về cho nó. Nếu tiến  trình P1 khoá record R1, tiến trình P2 khoá record R2, và sau đó mỗi tiến trình  lại cố gắng khoá record của một tiến trình khác. Bế tắc sẽ xảy ra. Như  vậy bế  tắc là hiện tượng:  Trong hệ  thống xuất hiện một tập các   tiến trình, mà mỗi tiến trình trong tập này đều chờ được cung cấp tài nguyên,   mà tài nguyên đó đang được một tiến trình trong tập này chiếm giữ. Và sự   đợi này có thể kéo dài vô hạn nếu không có sự tác động từ bên ngoài. Trong trường hợp của ví dụ  1  ở  trên: hai tiến trình P 1 và P2 sẽ  rơi vào  trạng thái bế tắc, nếu không có sự can thiệp của hệ điều hành. Để phá bỏ bế  tắc này, hệ  điều hành có thể  cho tạm dừng tiến trình P1  để  thu hồi lại tài  nguyên R1, lấy R1 cấp cho tiến trình P2 để P2 hoạt động và kết thúc, sau đó thu  hồi cả  R1 và R2 từ tiến trình P2 để  cấp cho P1 và tái kích hoạt P1 để  P1 hoạt  động trở lại. Như vậy, sau một khoảng thời gian cả P 1 và P2 đều ra khỏi tình  trạng bế tắc. Trong trường hợp của ví dụ 2 ở trên: Nếu hai tiến trình này không đồng  thời yêu cầu thêm bộ  nhớ  thì bế  tắc không thể  xảy ra, hoặc khi cả  hai tiến   trình đồng thời yêu cầu thêm bộ nhớ thì hệ điều hành phải kiểm tra lượng bộ  nhớ  còn trống của hệ  thống, nếu không đáp  ứng cho cả  hai tiến trình thì hệ  điều hành phải có cơ  chế  ngăn chặn (từ  chối) một tiến trình và chỉ  cho một   tiến trình được quyền sử  dụng bộ  nhớ  (đáp  ứng) thì bế  tắc cũng không thể  xảy ra. Tuy nhiên để giải quyết vấn đề  bế  tắc do thiếu bộ nhớ, các hệ  điều   hành thường sử dụng cơ chế bộ nhớ  ảo. Bộ nhớ  ảo là một phần quan trọng   của hệ  điều hành mà chúng ta sẽ  khảo sát ở chương Quản lý bộ  nhớ  của tài   liệu này. Khi hệ thống xảy ra bế tắc, nếu hệ điều hành không kịp thời phá bỏ  bế  tắc thì hệ  thống có thể  rơi vào tình trạng treo toàn bộ  hệ  thống. Như  trong  trường hợp bế tắc ở ví dụ 1, nếu sau đó tiến trình P3 đang giữ tài nguyên R3,  cần R2 để tiếp tục thì P3 cũng sẽ  rơi vào tập tiến trình bị  bế  tắc, rồi sau đó,  nếu có tiến trình P4 cần tài nguyên R1 và R3 để tiếp tục thì P4 cũng rơi vào tập  tiến trình bị bế tắc như P3, … cứ thể dần dần có thể dẫn đến một thời điểm  tất cả các tiến trình trong hệ thống đều rơi vào tập tiến trình bế tắc. Và như  vậy hệ thống sẽ bị treo hoàn toàn. 1.2 Điều kiện hình thành bế tắc Năm 1971, Coffman đã đưa ra và chứng tỏ được rằng, nếu hệ thống tồn tại   đồng thời bốn điều kiện sau đây thì hệ thống sẽ xảy ra bế tắc: Học viên: Nguyên Văn Việt Đức Trang 4
  5. Báo cáo Hệ tin học phân tán 1.2.1 Loại trừ lẫn nhau (Mutual excution) hay độc quyền sử dụng Đối với các tài nguyên không phân chia được thì tại mỗi thời điểm chỉ có   một tiến trình sử dụng được tài nguyên. 1.2.2 Giữ và đợi (Hold and wait) Một tiến trình hiện tại đang chiếm giữ tài nguyên, lại xin cấp phát thêm  tài nguyên mới. 1.2.3 Không ưu tiên (No preemption) Không có tài nguyên nào có thể  được giải phóng từ  một tiến trình đang   chiếm giữ nó. Trong nhiều trường hợp các điều kiện trên là rất cần thiết đối với hệ  thống. Sự  thực hiện độc quyền là cần thiết để  đảm bảo tính đúng đắn của  kết quả  và tính toán vẹn của dữ  liệu (chúng ta đã thấy điều này  ở  phần tài  nguyên găng trên đây). Tương tự, sự   ưu tiên không thể  thực hiện một cách  tuỳ  tiện, đặc biệt đối với các tài nguyên có liên quan với nhau, việc giải   phóng từ một tiến trình này có thể ảnh hưởng đến kết quả xử lý của các tiến  trình khác. Sự bế tắc có thể tồn tại với ba điều kiện trên, nhưng cũng có thể không xảy   ra với ba điều kiện đó. Để  chắc chắn bế  tắc xảy ra cần phải có điều kiện  thứ tư. 1.2.4 Đợi vòng tròn (Circular wait) Đây là trường hợp của ví dụ một mà chúng ta đã nêu ở trên. Tức là, mỗi   tiến trình đang chiếm giữ tài nguyên mà tiến trình khác đang cần. Ba điều kiện đầu là điều kiện cần chứ không phải điều kiện đủ để xảy ra bế  tắc. Điều kiện thứ tư là kết quả tất yếu từ ba điều kiện đầu. 1.3 Các phương pháp sử dụng trong hệ tập trung để xử lý bế tắc: 1.3.1 Phương pháp dự phòng Phương pháp dự phòng đơn giản và thường hay sử dụng là phương pháp  các nhóm sắp xếp Havender. Tư  tưởng cơ bản của phương pháp này là các tài nguyên được sắp xếp   theo các nhóm con C1, C2, …Cn. Một tiến trình nào đó có thể  thu hồi tài  nguyên của nhóm Ci với i>1, nếu trước đó nó đã thu hồi tất cả các tài nguyên  của nhóm cần thiết cho nó C1, C2, …Ci­1. Như thế, trật tự duy nhất của việc  thu hồi các tài nguyên được xác định sẽ tránh được bế tắc. Phương pháp này  dẫn đến các tiến trình cần thu hồi trước (tạm  ứng) các tài nguyên của chúng   và do vậy làm giảm khả năng thực hiện song song của hệ. 1.3.2 Phương pháp phát hiện và chữa trị Phương pháp Holt sử dụng một đồ thị trạng thái định hướng mà các nút  là các tài nguyên hay các tiến trình. Các cung tiến trình­ tiến trình thể hiện các  Học viên: Nguyên Văn Việt Đức Trang 5
  6. Báo cáo Hệ tin học phân tán cung cấp đã được thực hiện.  Nếu có sự  hiện diện của vòng lặp khép kín   trong đồ thị này thì đó chính là biểu hiện của tình trạng bế tắc. Sau khi đã phát hiện bế  tắc, vấn đề  chữa trị  được đặt ra, nhưng các  phương pháp này rất phức tạp, tốn kém. Hiện nay, thuật toán chữa trị  đang  được các nhà chuyên môn quan tâm nghiên cứu và phát triển. 1.3.3 Kết luận Thực tế, trong các hệ điều hành, người ta sử dụng: 1. Hoặc là các phương pháp dự phòng đơn giản như cung cấp tổng quát  tất cả các tài nguyên hay phương pháp nhóm sắp xếp. 2. Hoặc là các phương pháp phát hiện thường rất cồng kềnh; khắc phục   nó đòi hỏi phải loại bỏ hoàn toàn các tiến trình và khởi sự cũng trở lại từ đầu.   Điều đó đòi hỏi phải lưu trữ ngữ cảnh theo từng chu kỳ hết sức ph ức t ạp và  tốn kém bộ nhớ. Học viên: Nguyên Văn Việt Đức Trang 6
  7. Báo cáo Hệ tin học phân tán Chương 2.  BẾ TẮC TRONG HỆ PHÂN TÁN 2.1 Một số khái niệm  Trong chương này, chúng ta sẽ đề cập cách giải quyết các vấn đề đặt ra  và trình bày các giải pháp thể hiện dưới dạng các giải thuật riêng cho hệ phân  tán. Trong hệ  phân tán, thông thường người ta hay sử  dụng khái niệm   giao  dịch như là thực thể sử dụng các tài nguyên chẳng hạn.  Giao dịch là  phép toán hợp thành một logich hoàn chỉnh mà việc triển   khai nó có thể dẫn đến thực hiện một tiến trình duy nhất hay nhiều tiến trình   được định vị  trên các trạm khác nhau.Trường hợp dẫn đến thực hiện nhiều   tiến trình trên các trạm  ở  xa là đối tượng mà ta cần phải quan tâm nghiên   cứu trong chương này. 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ủa   mì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 cầu. Như  thế, rõ ràng là 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ó. Bộ  cung cấp có thể  áp dụng nhiều kiểu cung cấp khác nhau như  tiến  trình duy nhất, tập hợp các tiến trình, tập hợp các thủ  tục,... Các thông điệp  yêu cầu sử  dụng tài nguyên cũng có thể  có các dạng khác nhau như  gọi thủ  tục, thông báo, thực hiện các lệnh đặc biệt, ... Một yêu cầu được thoả  mãn bởi bộ  cung cấp tài nguyên cho tiến trình   đề nghị với điều kiện là yêu cầu đó phải tuân thủ các quy tắc nhất định. Có hai điều kiện làm cho tiến trình mất khả năng sử dụng tài nguyên đã  được cung cấp trước đó.  Stt Tên gọi Điều kiện Tiến   trình   phát   tín   hiệu   ngừng   sử   dụng   tài  1 Giải phóng nguyên Sự   lấy  lại  tài  nguyên   đã   được  cung  cấp  cho  2 Thu hồi tiến trình. Bộ cung cấp tài nguyên sẽ  tiến hành  công việc này Trong hệ, hoạt động của một tập hợp các tiến trình trên một tập hợp các  tài nguyên dùng chung được xem là tuyệt vời, nếu không để xảy ra bế tắc và   thiếu thốn tài nguyên vĩnh viễn. Bế tắc hay còn gọi là khoá tương hỗ là sự kẹt chéo lẫn nhau có tính chất  sống còn của các tiến trình. Bế tắc diễn ra khi hai tiến trình đang sử dụng hai  tài nguyên lại phát yêu cầu về  nhu cầu  sử dụng tài nguyên mà tiến trình kia  còn đang sử dụng. Hình vẽ 2.1 sau đây cho phép chúng ta hình dung vấn đề một cách rõ ràng  hơn. Theo hình vẽ  này, ta có 4 tài nguyên T1, T2, T3 và T4 và có 3 nhu cầu tài  nguyên là Tr1, Tr2 và Tr3.  Cả  ba tiến trình này đang  ở  trong tình trạng bế  tắc.  Học viên: Nguyên Văn Việt Đức Trang 7
  8. Báo cáo Hệ tin học phân tán Tiến trình Tr2  chờ  tài nguyên T3 do Tr3 đang chiếm giữ.Tiến trình Tr3 chờ  tài  nguyên T2  được giải phóng bởi Tr1  và Tr3.Thêm vào đó, tiến trình chờ  tiền  trình Tr2 giải phóng T1. Lúc này, ta thấy có hai chu trình kín trong đồ thị là: Tr1 – T1 – Tr2  – T3 – Tr3 – T2 – Tr1 và Tr3 – T2 – Tr2 – T3 – Tr3 T1 T3 Tr1 Tr2 Tr3 T2 T4 Hình 2.1.  Đồ thị cung cấp tài nguyên bị bế tắc Thiếu tài nguyên vĩnh viễn là sự chờ đợi bất tận của một tiến trình mà yêu  cầu của nó trễ đến mức không thể xác định được. Nguyên nhân của hiện tượng   vừa nêu có nhiều, nhưng ta có thể chỉ ra ví dụ thường gặp là do sử dụng luật ưu   tiên để cung cấp tài nguyên. Một chiến lược cung cấp tài nguyên tồi cũng có thể là nguồn gốc huỷ hoại   hiệu năng hoạt động của hệ  do các hiện tượng " sốc" làm tăng các yêu cầu mà  không được đáp  ứng của một số  tài nguyên. Ví dụ  như  sự  sụp đổ  của hệ  đa  chương trình. Để  tránh các hiện tượng đó, bộ  cung cấp tài nguyên cần phải đảm bảo   chức năng điều khiển Ta có thể phân chia thành hai phương diện để nghiên cứu: 1. Phân tán các yêu cầu giữa các tài nguyên tương đương có khả  năng  thoả  mãn. Chức   năng này gọi là phân phối tải. Trong hệ  phân tán, nó cần  phải tạo điều kiện để tránh tình hình mà ở đó các yêu cầu đợi đến lượt được   thoả mãn trên một trạm đầy, trong khi đó các tài nguyên tương đương lại rỗi   rãi trên các trạm khác. 2. Giới hạn số lượng các yêu cầu được phép cho một số tài nguyên. Việc  đó có thể  thực hiện bằng cách hạn chế  (tĩnh hay động) số  các tiến trình hay   số  các giao dịch được chọn (trúng tuyển) sử  dụng toàn bộ  hay từng phần tài   nguyên.Ta gọi trường hợp này là điều khiển tải tổng quát. Tóm lại: Bộ cung cấp cần phải phân phối các tài nguyên trên cơ sở tuân thủ   các quy tắc sử dụng, tránh xảy ra bế tắc và thiếu thốn vô hạn, phân bố tải tương   đối đồng đều giữa các tài nguyên cùng loại(cùng có thể thoả mãn) và giới hạn   nhu cầu nhằm duy trì hệ thống hoạt động đạt mức hiệu quả nhất định. Học viên: Nguyên Văn Việt Đức Trang 8
  9. Báo cáo Hệ tin học phân tán 2.2 Cung cấp tài nguyên duy nhất Vấn đề cung cấp tài nguyên duy nhất trên một trạm trong hệ phân tán liên  quan đến việc phân phối tài nguyên này cho một tập hợp các tiến trình trên cơ sở  quy tắc: truy cập loại trừ hay chia sẻ, có hệ số ưu tiên, không được mất, … Các  tiến trình có thể đề nghị sử dụng tại nguyên ngay tại trạm có tài nguyên mà cũng  có thể ở các trạm khác từ xa. Việc quản lý các truy cập đến một tài nguyên duy nhất có thể được thực  hiện theo hai cách: Stt Kiểu thực hiện 1 Truy cập bằng một tiến trình duy nhất 2 Truy cập bằng các tiền trình tương tranh 2.3 Truy cập bởi server duy nhất Một tiến trình duy nhất hay còn gọi là server được giao nhiệm vụ quản  lý tài nguyên. Nó xử  lý tất cả  các yêu cầu truy cập từ  các tiến trình và các   khách (client). Sự  loại trừ  truy cập  được đảm bảo bởi tính duy nhất của  server. Server đồng thời cũng là chương trình đánh thức. Chương trình có thể viết như sau: Vòng lặp                  m:= cho­thong­diep(nil)   {treo}            Kết thúc vòng lặp Do vậy, sơ đồ này loại bỏ tất cả các đặc tính song song để truy cập vào   tài nguyên. Tiến trình server có thể được lập trình để triển khai toàn bộ chiến   lược liên quan đến loại trừ tương hỗ của các yêu cầu (độ ưu tiên, quyền truy  cập tài nguyên). Tr1 Tr2 S T T­Tài nguyên      Tr­Tiến trình khách    S­Server Trn Hình 2.2.  Đồ thị truy cập vào tài nguyên bằng server duy nhất 2.4 Truy cập tương tranh có điều khiển Trong trường hợp này, tài nguyên được truy cập bởi nhiều server, thông  thường, có số lượng không cố định. Các server này thực hiện các truy cập tương  ứng với các yêu cầu dưới dạng gọi thực hiện các thủ tục.Việc thực hiện các thủ  tục này được điều khiển bởi cơ chế đảm bảo tôn trọng các quy tắc truy cập. Học viên: Nguyên Văn Việt Đức Trang 9
  10. Báo cáo Hệ tin học phân tán Các quy tắc được khởi sự  bằng hai cách bởi các tiến trình khách cho  thấy việc truy cập được tiến hành bằng một chương trình trực duy nhất. S1 Tr1 Hàng đợi các yêu cầu Tr2 D S2 T T­Tài nguyên   Tr­Tiến trình khách Si­ Sn Trn Server  D­Đánh thức Hình 2.3. Đồ thị truy cập vào tài nguyên bằng một chương trình trực duy   nhất Trong cách thứ  hai, việc truy cập được tiến hành trực tiếp với các server và   thể hiện bằng hình vẽ 2.4. Tr1 S1 Tr2 S2 T ….. Trn Sn Hình 2.4.   Truy cập trực tiếp vào các server Hình vẽ  2.3, ta thấy một tiến trình đánh thức D duy nhất sau hàng đợi làm  nhiệm vụ  phân phối yêu cầu cho các server cục bộ. Các tiến trình khách  không biết server. Ngược lại, hình vẽ  2.4, các máy server đều được các tiến trình khách biết  trước. 2.5 Cung cấp một tập hợp các tài nguyên ­ Vấn đề bế tắc Trước hết, ta tìm hiểu một số  thuật ngữ  và khái niệm có quan hệ  mật  thiết với nhưng vấn đề sẽ sử dụng trong phần này. Tiến trình p đưa ra yêu cầu cung cấp tài nguyên e để thực hiện phép toán cài  then có tính loại trừ  v_loai_tru_th(e). Ngoại trừ một số trường hợp đặc biệt,  tất cả  các tài nguyên đều được truy cập theo kiểu loại trừ. Nếu việc cung   cấp hoán toàn hợp thức thì tài nguyên này được trao cho p sử  dụng. Ta nói  rằng tài nguyên này đã được p cài then, nếu không thì p bị treo và đương nhiên  p không cài then được tài nguyên này. Trong hệ  phân tán, ta sẽ  tập trung xem xét các giao dịch  Ti  có thể  sử  dụng các tài nguyên được định vị trên các trạm. Mỗi một giao dịch được triển  khai nhờ một  tập hợp các tiến trình thể  hiện là các đại diện của chúng trên  các trạm khác nhau. Hai tiến trình của cùng một giao dịch được định vị  trên  Học viên: Nguyên Văn Việt Đức Trang 10
  11. Báo cáo Hệ tin học phân tán các trạm khác nhau có thể  được thực hiện song song. Nhằm thu hồi lại tài  nguyên  e  trên trạm  Sj, giao dịch  Ti  cho thực hiện phép toán  v_loai_tru_th(e)  thông qua đại diện pij của mình trên trạm này. Ngoại trừ một số  trường hợp đặc biệt, việc cung cấp diễn ra không có   thu hồi. Một tài nguyên bị  khoá bởi một tiến trình không thể  rút nó trở  về  được. Như  thế, nó cần phải được giải phóng   bởi tiến trình này một cách  tường minh nhờ vào phép toán mở then cài mo_then(e). Bế  tắc có thể  được giải quyết bằng cách dự  báo và vòng tránh (gọi  chung là dự  phòng) có nghĩa là tài nguyên được cung cấp theo kiểu có đề  phòng trường hợp bế  tắc. Một phương pháp khác có liên quan đến vấn đề  này là phát hiện và chữa trị có nghiã là khi có sự cố thì quay trở về trạng thái  trước đó. Các thuật toán dự  phòng, phát hiện và chữa trị  được nghiên cứu cho  trường hợp là tất cả  các tài nguyên đều được quản lý bởi bộ  cung cấp duy  nhất. Bộ cung cấp này tiếp nhận tất cả các yêu cầu và biết rõ trạng thái của  tất cả các tài nguyên. Ta bắt đầu việc nghiên cứu trong phần này bằng cách nhắc lại các kết  quả  chủ  yếu của trường hợp nêu trên, trước khi phát triển các vấn dề  về  hướng tin học phân tán. 2.6 Phân tán chức năng cung cấp Bây giờ, ta giả định rằng chức năng cung cấp không thể tin tưởng giao phó   hoàn toàn cho một bộ cung cấp duy nhất, mà được phân tán thành tập hợp các bộ   cung cấp trên các trạm khác nhau, trong đó mỗi bộ cung cấp chỉ quản lý các đối   tượng cục bộ của trạm đó mà thôi. Tồn tại hai nhóm giải pháp cho vấn đề đặt ra: 2.6.1 Duy trì tính duy nhất của trạng thái tài nguyên Biểu hiện duy nhất (thể hiện tính duy nhất) của trạng thái tài nguyên được   chia sẻ bởi tập hợp các bộ cung cấp. Biểu hiện này tuần hoàn giữa các trạm khác  nhau dưới dạng một thông điệp. Các trạm luân phiên đóng vai trò của bộ  cung   cấp các tài nguyên mà mình đang chịu trách nhiệm quản lý. Giải pháp này loại bỏ  tất cả các khả năng song song, không loại bỏ khả năng mất thông điệp trạng thái,  thiếu thốn tài nguyên một cách vô hạn. 2.6.2 Phân tán biểu hiện trạng thái và chức năng cung cấp Có rất nhiều giải pháp có thể: Stt Giải pháp Ta duy trì mỗi trạm một bản sao trạng thái tài nguyên tổng quát.  1 Trong trường hợp này, cần phải đảm bảo sự  gắn bó hữu cơ  giữa các bản sao. 2 Ta phân tán biểu hiện trạng thái trên các trạm, mỗi một trạm  chỉ co trạng thái của các tài nguyên cục bộ của mình.Các quyết  Học viên: Nguyên Văn Việt Đức Trang 11
  12. Báo cáo Hệ tin học phân tán định được đưa ra trên các trạm khác nhau cần phải được phối  hợp theo kiểu sao cho dữ liệu của việc cung cấp phải được gắn  bó với nhau. Một phương pháp đầy  ấn tượng là nhóm sắp xếp nhằm đảm  bảo cho tất cả các yêu cầu tài nguyên xuất phát từ các tiến trình  3 đến được các bộ cung cấp khác nhau theo một  trật tự duy nhất   được cố định từ trước. Các phương pháp khác nhau mang tính năng động cao cho phép ra các  quyết định cung cấp tài nguyên xuất phát từ quan điểm từng phần (ngược với  toàn phần) của trang thái tài nguyên. Trong các phần tiếp theo, ta sẽ được giơi thiệu lần lượt các vấn đề sau đây: 1. Nguyên lý được hiện bằng giải thuật dự phòng bế tắc cho trường hợp đầu   tiên vừa nêu theo kiểu sử dụng các bản sao trang thái tổng quát . 2. Hai giải thuật toán cho các trường hợp sau; một cho dự phòng và một cho   phát hiện bế tăc được trình bày bằng cách sử dụng quan điểm tưng phần của   trạng thái toàn phần. 2.6.3 Các phương pháp cung cấp sử dụng trạng thái tổng quát Bây giờ, vấn đề  quan trọng được đặt ra là tại sao có thể áp dụng thuật   toán dự phòng bế tắc của các hệ tập trung vào môi trường phân tán theo kiểu   duy trì trên mỗi trạm một bản sao trạng thái cung cấp của tất cả  các tài   nguyên. Nội dung của các bản sao trên các trạm của hệ  có thể  phản  ảnh trong  bảng sau đây: Stt Nội dung của bản sao 1 Tập hợp tất cả các tài nguyên còn chưa được cung cấp 2 Tập hợp các tài nguyên đã cung cấp 3 Đối tượng đang chiếm giữ tài nguyên 5 Kiểu sử dụng 6 Tập hợp các yêu cầu không được thoả mãn 7 Tập hợp các thông điệp dành cho trường  hợp  đã được  sử  dụng 8 Tập hợp các thông điệp dành cho trường hợp thất bại 9 ….. Cung cấp tài nguyên chỉ  được chấp nhận, nếu trạng thái xuất phát từ  việc cung cấp đó được đánh giá là chấp nhận được theo thuật toán đã sử  dụng.Trên cơ  sở  thực hiện cùng một thuật toán và có cùng thông tin, mỗi   trạm ra quyết định cung cấp căn cứ  vào bản sao trạng  thái cục bộ  của nó.  Học viên: Nguyên Văn Việt Đức Trang 12
  13. Báo cáo Hệ tin học phân tán Việc cung cấp cho tiến trình đề nghị sẽ được thực hiện ngay trên trạm có tài   nguyên. Để cập nhật thông tin, mỗi tiến trình phát đi cho một tập hợp nhất định   các trạm: 1. Các thông điệp của mình. 2. Các yêu cầu của mình. 3. Các thông điệp giải phóng của mình. Các bản sao tổng quát trên các trạm phải có cùng các bước chuyển trạng   thái. Để đảm bảo điều đó, cầm phải xử lý các yêu cầu trong cùng một trật tự  trên tất cả các trạm. Trật tự này có thể khác với trật tự đến. Có thể sử  dụng  các kỹ  thuật đã được kiểm tra trong chương IV như  dấu, bộ  tuần tự  tuần   hoàn,… để giải quyết vấn đề đồng bộ thông tin. Ta sẽ  sử  dụng với tư cách là ví dụ  nguyên lý triển khai thuật toán trình  bày trong ấn phẩm của Lomet và ứng dụng kỹ thuật thông cáo hợp thức.  Khi bắt đầu thực hiện giao dịch Ti thì giao dịch này cần phải phát thông  điệp hợp thức của tập hợp các tài nguyên mà nó định sử dụng. Một tài nguyên   chỉ có thể thu hồi, nếu đó là một phần của thông điệp. Ta định nghĩa một quan hệ  gọi là phụ  thuộc thế  năng giữa hai giao dịch   Tj và Tk và ký hiệu Tj > Tk điều đó nói lên rằng  Tj chậm hơn Tk. Tj  > Tk  nghĩa là tồn tại ít nhất một tài nguyên bị  cài then bởi  Tj  và là thành  phần thuộc thông điệp của Tk. Quan hệ  này có thể  được biểu diễn bằng đồ  thị   G, biến theo thời gian  gọi là đồ  thị các xung đột thế  năng.Tồn tại vòng lặp trong đồ  thị  này sinh ra  bế tắc. Ví dụ 1:  Hãy đánh giá 3 giao dịch T1, T2 và T3   sử dụng 3 tài nguyên e1, e2  và e3. Ta  ký hiệu a_loai_tru_th() là phép toán thông điệp. Giao dịch T1 t11: a_loai_tru_th(e1, e2)           ……. t12: v_loai_tru_th(e1)           ……. t13: v_loai_tru_th(e2) Giao dịch T2 t21: a_loai_tru_th(e2, e3)           ……. t22: v_loai_tru_th(e2)           ……. t23: v_loai_tru_th(e3) Giao dịch T3 Học viên: Nguyên Văn Việt Đức Trang 13
  14. Báo cáo Hệ tin học phân tán t31: a_loai_tru_th(e3, e1)           ……. t32: v_loai_tru(e3)           ……. t33: v_loai_tru_th(e1) Giả sử rằng các lệnh thực hiện theo trình tự t11, t21, t31, t12, t22, t32, vào  thời  điểm t sau khi thực hiện các lệnh này, đồ thị  G có thể biểu diễn như sau. Bế  tắc không tránh khỏi được. Đồ thị G được biểu diễn trong hình vẽ 2.8. Để tránh bế tắc diễn ra, ta duy trì mỗi trạm một bản sao của đồ thị  G và  ta chỉ được cung cấp tài nguyên, nếu việc cung cấp đó không phát sinh vòng  lặp trong đồ thị  này. Mỗi một thông cáo, thông điệp hay khuyến nghị  giải phóng đều nhận  một dấu, rồi phát ra cho tất cả các trạm.Để cập nhật bản sao của mình về đồ  thị G, mỗi trạm xử lý các thông điệp mà nó nhận được trong một trật tự chặt   chẽ được xác định bởi dấu. 2.6.4 Các phương pháp cung cấp theo kiểu sử dụng trạng thái từng phần Hai thuật toán mà ta sẽ  giới thiệu sau đây rất thích hợp với môi trường  phân tán. Mỗi trạm chỉ quản lý các tài nguyên cục bộ  của mình và các quyết  định cung cấp được đưa ra dựa trên thông tin cục bộ. Ta giới hạn về  việc   trình bày của mình cho mục đích khá đơn giản. Đó là tất cả  các tài nguyên   đều được truy cập theo kiểu loại trừ. Các tài nguyên chia sẻ sẽ là đối tượng   xử lý của bài tập số 2 của chương này. 2.6.4.1  Thuật toán dự phòng bế tắc Hai thuật toán mà ta sẽ  giới thiệu sau đây là một trong những phiên bản  của thuật toán Lomet. Đây là phiên bản sử dụng trạng thái từng phần. a. Vị trí của vấn đề:  Đây là một ví dụ minh hoạ các khó khăn trong khi ứng dụng vào hệ phân tán. Ví dụ 2: Trở  lại với ví dụ  1 và bổ  sung các điểm như  sau; ta giả  sử rằng các tài  nguyên e1, e2 và e3  được bố trí trên các trạm tương ứng S1, S2 và S3. Nếu trạm  Si chỉ nhận thông cáo tương  ứng với tài nguyên mà nó quản lý thì nó chỉ  duy  trì đồ thị Gi –hình ảnh thu nhỏ của G cho các giao dịch đã phát thông báo. Như  vậy, sau khi đã thực hiện t32 , ta có các hình ảnh sau: Tại trạm S1 ta có                    đồ thị G1 T1 T3 e 1 Hình 2.5.   Đồ thị G1 trên trạm S1 Học viên: Nguyên Văn Việt Đức Trang 14
  15. Báo cáo Hệ tin học phân tán sơ đồ tương tự tại trạm S2 là:  Tại trạm S2 ta có T2 T1 e2                    đồ thị G2 Hình 2.6.    Đồ thị G2 trên trạm S2 còn tại S3 ta có sơ đồ:  Tại trạm S3 ta có T3 T2 e2                    đồ thị G3 Hình 2.7.     Đồ thị G3 trên trạm S3 Rõ ràng, thông qua ba đồ  thị trên đây, ta không phát hiện mạch khép kín   dẫn đến tình trạng bế  tắc.Nhưng, nếu  ở  hệ  tập trung hay trạng thái không  phải từng phần, ta có đồ thị sau đây: T1 e2 e1 T2 e3 T3 Hình 2.8.  Phát sinh bế tắc Trong thực tế, mặc dầu không có đồ  thị  nào trong số  này cho phép phát   hiện sự  hình thành một vòng lặp bế  tắc, nhưng trên một trạm cho trước nào  đó, ta lại không thể dự phòng bế tắc có kết quả được. b. Nguyên lý và thuyết minh phương pháp Ta sẽ  thay thế  vào điều kiện cung cấp trong đồ  thị  G không vòng lặp  một điều kiện khác mạnh hơn, nhưng được kiểm tra bằng các thông tin cục  bộ trên từng trạm. Để  làm được điều đó, ta thêm vào cho từng đồ  thị  G’i hình  ảnh thu nhỏ  cho Si của đồ thị của một quan hệ trật tự toàn bộ chặt chẽ được xác định trên   các tập hợp giao dịch. Quan hệ trật tự này có thể được nhờ phương tiện dấu.   Điều kiện cung cấp tài nguyên là duy trì tình trạng không vòng lặp cho các đồ  thị  Gi . Căn cứ theo cấu trúc, điều kiện này có thể được kiểm tra cục bộ trên   từng trạm. Ta sẽ chỉ ra G có được tình trạng không vòng lặp như thế nào. Để  làm việc đó, ta bắt đầu chỉ ra sự tồn tại của vòng trong G kéo theo sự tồn tại   của vòng trong ít nhất một G’i . Học viên: Nguyên Văn Việt Đức Trang 15
  16. Báo cáo Hệ tin học phân tán Ta ký hiệu Tj >>Tk  là quan hệ  trật tự  toàn phần chặt chẽ  trên các giao   dịch. Lúc này, G’i là hình ảnh thu nhỏ của trạm  Si   của đồ thị của quan hệ >>   xác định bởi: Tj >>Tk    Tj >Tk hay Tj >>Tk   Giả  sử  rằng G có vòng lặp bao gồm một tập hợp của  n giao dịch được  đánh số từ 0 đến n­1 trong trật tự của vòng lặp của trật tự xác định bởi quan  hệ  >. Giả  sử  rằng Tp là nguyên tố  của tập hợp này đến trước tất cả  các cái  khác theo chiều của quan hệ >> và giả sử rằng q = p­1 modulo n. Ta có : Tp >>Tq  vì Tp  đến trước các cái khác Tj >Tk  trong vòng lặp của đồ thị G Nếu S là số  của trạm chứa tài nguyên bị  cài then bởi Tq và thuộc quyền  sở hữu của thông cáo của Tp thì G’i  chứa vòng lặp. c. Thuật toán Như vậy, thuật toán dự phòng được triển khai như sau: Stt Triển khai Việc cung cấp tài nguyên tại trạm S cho giao dịch T i được  1 tiến hành, nếu việc cung cấp đó không tạo ra vòng lặp  trong đồ thị G’i Trong trường hợp bị từ chối, tiến hành được giao dịch trên  2 trạm S được đưa vào hàng đợi cục bộ tại S Khi tài nguyên được giải phóng, tất cả  các tiến trình của   3 hàng đợi được kiểm tra nếu các yêu cầu của chúng có thể  được thoả mãn Qui trình vận hành thuật toán được minh hoạ bởi ví dụ kề liền sau đây: Ví dụ 3: Ta hãy lấy lại ví dụ 1. Khi T1 thực hiện t12: v­loai­tru­th(e1), yêu cầu này  vào xung đột với thông cáo a­loai­tru­th(e1) thực hiện bởi T3. Như  thế, cung  T1­T3  được   thành  lập   trong  G.   Lúc   này,   yêu  cầu   vẫn  được   chấp   nhận  vì  T1>>T3. Sau khi diễn ra việc cung cấp này, các đồ thị G’i trên ba trạm sẽ như sau: Học viên: Nguyên Văn Việt Đức Trang 16
  17. Báo cáo Hệ tin học phân tán T3 T2 T3 T1 T1 T2          Trạm S1               Trạm 2                  Trạm S3  Hình 2.9. Trạng thái cung cấp tài nguyên trên 3 trạm Yêu cầu t22: v­loai­tru­th(e2) kéo theo trên trạm S2 sự  tạo nên cung T2­T1  bị loại bỏ; bởi vì nó sinh ra vòng lặp trên S2. Tương tự như vậy, yêu cầu t32:  v­loai­tru­th(e3) bị từ chối bởi vì nó tạo ra vòng lặp trên S3. Nhưng ta cần lưu  ý là nếu trật tự  theo dạng   T1,T2, T3  thì yêu cầu vừa nêu có thể  được chấp   nhận. Thuật toán này đặt ra một nguyên tắc tương tự  như  các nhóm sắp xếp.   Duy chỉ khác nhau có một điều là nó tránh được sự  thiếu thốn vô hạn, bởi vì   trật tự tổng quát được triển khai cho các giao dịch chứ không phải cho các tài   nguyên. Một giao dịch trở  nên rất cần thiết là giao dịch có thời gian chờ  đợi   dài nhất sau một khoảng thời gian xác định, nó đã trở thành giao dịch được ưu   tiên nhất trên tất cả các trạm mà nó đã gởi thông điệp. 2.6.4.2  Thuật toán phát hiện bế tắc Khi các tài nguyên được sử dụng bởi giao dịch được xác định theo kiểu   động trong quá trình thi hành giao dịch, các phương pháp dự phòng bế tắc dựa  trên nền tảng các thông điệp không còn phù hợp nữa. Lúc này, ta phải sử  dụng các phương pháp phát hiện và chữa trị. Phương pháp được mô tả bởi Menasce sẽ  được trình bày. Phương pháp   này đặt ra vấn đề  sử  dụng một đồ  thị  các tranh chấp mà việc kiểm tra các   tranh chấp đó cho phép phát hiện bế tắc. Tương tự như thuật toán vừa nêu, mỗi trạm quản lý các đối tượng riêng   của mình và việc phát hiện chỉ  dựa vào thông tin cục bộ. Các trạm khởi sự  các giao dịch bị  treo được đề  phòng phát sinh bế  tắc (mà bế  tắc này có thể  phát hiện tại một trạm nào đó) cần phải đề  ra các biện pháp chữa trị  cho  mình. a. Các định nghĩa: Ta cần xác định trong mọi thời điểm giữa hai giao dịch Tj và Tk quan hệ  chặn trực tiếp như sau: Tj > Tk   Tồn tại ít nhất một tài nguyên bị cài then bởi Tj và yêu cầu  bởi Tk nhưng không được đáp ứng Quan hệ này được biểu hiện bằng một đồ thị gọi là đồ  thị các xung đột  hữu hiệu.Sự tồn tại một vòng lặp trong đồ thị này báo hiệu cho ta biết sẽ có   Học viên: Nguyên Văn Việt Đức Trang 17
  18. Báo cáo Hệ tin học phân tán bế  tắc diễn ra. Một giao dịch “không bị  chặn” có nghĩa là trong đồ  thị  biểu   hiện bằng một nút mà tại đó không có cung nào dẫn đến. Giả  sử  rằng Tk là một giao dịch bị  chặn. Tập hợp tất cả  các giao dịch   mà có thể  đạt được bằng cách chạy khắp các cung xuất phát từ  Tk , theo   chiều ngược lại với hướng của chúng, và gọi là tập hợp các chặn của Tk , ký  hiệu E(Tk). Các giao dịch thuộc vào E(Tk) là các giao dịch có nguồn gốc từ sự  chặn của Tk . Tại một thời điểm cho trước, đồ  thị  các xung đột hữu hiệu sinh ra các   quan hệ chặn tồn tại giữa các giao dịch của hệ. ta kí hiệu  B(Tk) là tập hợp các  giao dịch bị chặn do Tk , nghĩa là các giao dịch có thể đạt được bằng cách chạy  khắp các cung xuất phát từ Tk. Ví dụ 1: Cho đồ thị xung đột hữu hiệu như sau: T1 T2 T4 T5 T3 Hình 2.10. Đồ thị các xung đột hữu hiệu Các giao dịch không bị chặn là T3, T4, T5 Ta có: E(T5) =  T2, T3, T4, T5 B(T5) =  T1, T3 Đồ thị các xung đột hữu hiệu chứa vòng lặp nếu và chỉ nếu tồn tại giao  dịch Tk.  mà tập hợp chặn của nó chứa một giao dịch bị chặn bởi Tk.: k: B(Tk.)   E(Tk.)   0  Tồn tại vòng lặp Nếu ta không muốn duy trì trên mỗi trạm một bản sao của đồ thị tổng quát thì   cần phải xây dựng một ảnh cục bộ cho phép đánh giá các điều kiện vừa nêu  trên. Đó là điều mà ta thực hiện trong giải thuật sau đây: b. Thuật toán: Ta kí hiệu S(Tk.) là trạm nguồn của giao dịch Tk.. Để  cho mỗi giao dịch  Tk., trạm  S(Tk.)  duy trì các tập hợp B(Tk.) và E(Tk.). Việc cập nhật E(Tk.)  cần  phải được  biểu hiện trên tất cả  các trạm nguồn của các giao dịch thuộc   B(Tk.). Thực tế, giao dịch bị chặn Tk.  là phần tử của toàn bộ tập hợp chặn của  các giao dịch thuộc B(Tk.). Giả  sử  rằng  Tk.  đã yêu cầu một tài nguyên  e  của trạm  Si  nào đó. Trên  trạm này, ta thực hiện các phép toán sau đây: Học viên: Nguyên Văn Việt Đức Trang 18
  19. Báo cáo Hệ tin học phân tán STT Phép toán Nếu e là có sẵn để dùng, yêu cầu được thoả mãn và ta ghi  1 nhận là Tk. đang có tài nguyên. Nếu e đã được cung cấp cho giao dịch Tj thì thông điệp “Tj  2 chặn Tk.” được truyền cho trạm S(Tj.) và S(Tk.). Sau này (j, k)  chỉ một thông điệp như vậy. Khi nhận một thông điệp (j, k) trên một trạm S nào đó, ta  thực hiện các  tác động sau đây: 1. Trên trạm S(Tj.) nguồn của giao dịch chặn Tk.  , ta thêm Tk. vào tập hợp  B(Tj.) và kiểm tra rằng ta không làm phát sinh bế tắc, có nghĩa là: B(Tj.)   E(Tj.) = 0. Ta gửi tiếp tục thông điệp  (l, k)  về  phía các trạm nguồn của các giao  dịch Tl   chặn Tj   nhằm cho phép các trạm S(Tk.) cập nhật các tập hợp BB(Tl.)  của các giao dịch bị chặn bởi Tl. Song song với tác động trên, các thông điệp  (l, k) được gửi về trạm nguồn của các giao dịch  Tk. để cập nhật tập hợp  E(Tk.)  của các giao dịch bị chặn Tk.. 2. Trên trạm  S(Tk.)  nguồn của giao dịch bị  chặn  Tk., Ta thêm  Tj  cho tập  hợp E(Tk.) và kiểm tra không có bế tắc, có nghĩa là: B(Tj.)   E(Tk.) = 0. Ta gửi tiếp tục (j,m) về phía các trạm nguồn của các giao dịch Tm bị chặn  bởi  Tk.  nhằm cho phép các trạm  S(Tm.)  cập nhật các tập hợp  E(Tm.)  của các  giao dịch chặn Tm. Các khuyến nghị giải phóng dẫn đến thuật toán đối xứng mà ta không có  điều kiện giới thiệu ở đây.  Ví dụ 2: Hãy xét 3 trạm  S1, S2  và  S3.  Mỗi trạm  Si  chứa đối tượng  ei  và là nguồn  giao dịch của Ti: T1 T2 T3 v­loai­tru­th(e1) v­loai­tru­th(e2) v­loai­tru­th(e3)      …………      …………      ………… v­loai­tru­th(e2) v­loai­tru­th(e3) v­loai­tru­th(e1) Ta hãy tưởng tượng rằng tại thời điểm mà tất cả  các giao dịch đã được  thực hiện có kết quả phép toán đầu tiên của then cài. Khi đó chuyển sang thời   điểm của phép toán thứ hai, Các giao dịch đều bị chặn. Điều đó kéo theo các   sự kiện sau đây: T1  trên S2 đề nghị cung cấp e2 có trên T2; S2 gửi (2,1) cho S1 và S2, từ đó ta có: E(T1.)= T2 B(T1.)= 0 Học viên: Nguyên Văn Việt Đức Trang 19
  20. Báo cáo Hệ tin học phân tán B(T2.)= T1 E(T2.)= 0 T2 trên S3 đề nghị cung cấp e3 có trên T3; S3 gửi (3,2) cho S2 và S3, từ đó ta có: B(T3.)= T2 B(T3.)= 0 E(T2.)= T3 E(T2.)= T1 S2  gửi(3,1) cho S1 và từ đó sinh ra: E(T1.)= T2 ,T3 B(T1.)= 0 T3 trên S3 đề nghị cung cấp e1 có trên T1; S1 sinh ra T3 trong B(T1.) và ta ghi nhận là: E(T1.)   B(T1.) =  T3 Như vậy, bế tắc được phát hiện trên S1. 2.7 Kết luận Hai thuật toán vừa được giới thiệu  ở  trên xuất phát từ  cơ  sở  cùng một   nguyên lý tương tự. Đó là sự thiếu chắc chắn của trạng thái các trạm xa phát  sinh vấn đề lưu trữ một “giới hạn an toàn” nhất định.  Nhưng bản thân hai thuật toán này, khi triển khai lại cho phép sử  dụng  các kỹ thuật khác nhau. Trong thuật toán dự phòng, ta kiểm tra trên trạng thái   từng phần một điều kiện mạnh hơn điều kiện tối thiểu. Trong thuật toán  phát hiện, ta có trong một trạm trạng thái của các trạm khác. Thông thường,   mỗi trạm đều nhận các thông tin dư thừa. Học viên: Nguyên Văn Việt Đức Trang 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2