1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu thuật toán lomet trong cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ ảo của điện toán đám mây

58 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu thuật toán lomet trong cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ ảo của điện toán đám mây
Tác giả Nguyễn Trọng Tiệp
Người hướng dẫn PGS.TS Lê Văn Sơn, Thầy Đặng Hùng Vỹ
Trường học Đại học Sư Phạm – Đại học Đà Nẵng
Chuyên ngành Tin học
Thể loại Khóa luận tốt nghiệp
Thành phố Đà Nẵng
Định dạng
Số trang 58
Dung lượng 1,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. cầu sử dụng tài nguyên cũng có

Trang 1

LỜI CAM ĐOAN

Tôi xin cam đoan :

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Lê Văn Sơn

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm

Sinh viên

Nguyễn Trọng Tiệp

Trang 2

LỜI CẢM ƠN

Để hoàn thành khóa luận tốt nghiệp này, tôi đã nhận được sự hướng dẫn tận tình ngay từ những ý tưởng cơ bản ban đầu của thầy giáo PGS.TS Lê Văn Sơn; cùng với sự giúp đỡ, động viên của các thầy cô giáo trong khoa Tin học trường Đại học Sư Phạm – Đại học Đà Nẵng, những người đã tận tình dạy dỗ, truyền lại cho chúng tôi kiến thức và những bài học kinh nghiệm quý giá Bên cạnh đó tôi cũng nhận được sự giúp đỡ từ các thầy cô trong khoa Tin học, và các anh, chị, bạn bè giúp đỡ tôi trong khóa luận tốt nghiệp này

Tôi xin chân thành cảm ơn thầy giáo PGS.TS Lê Văn Sơn là người trực tiếp hướng dẫn tôi trong khóa luận này – thầy đã hướng dẫn rất tận tình, thầy

Trang 3

MỤC LỤC

LỜI CAM ĐOAN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

DANH MỤC CÁC HÌNH VẼ 5

MỞ ĐẦU 7

Chương 1: BẾ TẮC VÀ CÁC CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN TRONG HỆ PHÂN TÁN 11

1.1 MỘT SỐ KHÁI NIỆM 11

1.2 BẾ TẮC (DEADLOCK) TRONG VIỆC CUNG CẤP TÀI NGUYÊN DÙNG CHUNG 13

1.3 CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN 15

1.3.1 Cung cấp tài nguyên duy nhất 15

1.3.2 Cung cấp một tập hợp các tài nguyên Vấn đề bế tắc 18

Chương 2: TỔNG QUAN VỀ THUẬT TOÁN LOMET 22

2.1 CÁC PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG TRẠNG THÁI TỔNG QUÁT 22

2.2 THUẬT TOÁN LOMET 25

2.2.1 Vị trí của vấn đề 25

2.2.2 Nguyên lý và thuyết minh phương pháp 27

2.2.3 Thuật toán 28

Chương 3: XÂY DỰNG ỨNG DỤNG BÀI TOÁN BÃI ĐỔ XE 30

3.1 GIỚI THIỆU BÀI TOÁN 30

3.2 GIẢI PHÁP TRONG BÀI TOÁN 32

3.3 PHÂN TÍCH ỨNG DỤNG 33

3.3.1 Mô hình use-case (Hình 3.3) 33

3.3.2 Đặc tả chức năng của client 33

3.3.3 Đặc tả chức năng của các server 37

3.4 XÂY DỰNG ỨNG DỤNG 44

3.4.1 Xây dựng client 44

3.4.2 Xây dựng server 45

Trang 4

3.5 CÀI ĐẶT ỨNG DỤNG 47

3.5.1 Client 47

3.5.2 Server 51

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57

DANH MỤC TÀI LIỆU THAM KHẢO 58

Trang 5

DANH MỤC CÁC HÌNH VẼ

Số hiệu

Hình 1.2 Đồ thị cung cấp tài nguyên bị bế tắc 14 Hình 1.3 Đồ thị truy cập vào tài nguyên bằng server duy nhất 16

Hình 1.4 Đồ thị truy cập vào tài nguyên bằng một chương trình trực

Hình 2.6 Trạng thái cung cấp tài nguyên trên 3 trạm 28

Hình 3.2 Mô phỏng bãi đậu xe trong mạng máy tính 31 Hình 3.3 Minh họa mô hình use-case của ứng dụng 33

Hình 3.5 Biểu đồ hoạt động chức năng yêu cầu ra khỏi bãi đậu

Trang 6

Hình 3.10 Mô tả hoạt động của Multicast trong java 42

Hình 3.11 Mô tả hoạt động của Multicast ứng dụng trong

Hình 3.12 Sử dụng Lamport để giải quyết truy cập tài nguyên 43

Hình 3.15 Giao diện chính của Client mục gởi – trả xe 47

Hình 3.17 Giao diện xem hiện trạng của bãi đậu xe 49 Hình 3.18 Giao diện chính của Client mục xem hiện trạng 50 Hình 3.19 Giao diện chính của Server khởi động 51 Hình 3.20 Chương trình chạy của Server 1 trong vòng tròn ảo 52 Hình 3.21 Chương trình chạy của Server 2 trong vòng tròn ảo 53 Hình 3.22 Chương trình chạy của Server 3 trong vòng tròn ảo 54 Hình 3.23 Chương trình chạy của Server 4 trong vòng tròn ảo 55 Hình 3.24 Chương trình chạy của Server 5 trong vòng tròn ảo 56

Trang 7

MỞ ĐẦU

1 Lý do chọn đề tài

“Thế kỷ XXI là thế kỷ của công nghệ thông tin” bởi vì bước vào thế kỷ này công nghệ thông tin đã phát triển một cách rất mạnh mẽ, nó đã thâm nhập vào mọi lĩnh vực trong đời sống của con người Công nghệ thông tin đã làm thay đổi đời sống con người cả về nội dung và hình thức, nhờ đó mà đã mang lại rất nhiều hiệu quả cao trong mọi lĩnh vực hoạt động như: công nghiệp, nông nghiệp, khoa học kỹ thuật, an ninh quốc phòng, …

Vào giữa năm 1980, người sử dụng dùng các máy tính độc lập bắt đầu chia sẻ các tập tin bằng cách dùng modem kết nối với các máy tính khác Cách thức này được gọi là điểm nối điểm, hay truyền theo kiểu quay số Khái niệm này được mở rộng bằng cách dùng các máy tính là trung tâm truyền tin trong một kết nối quay số Các máy tính được gọi là sàn thông báo (bulletin board) Các người dùng kết nối đến sàn thông báo này, để lấy đi các thông điệp, cũng như gửi lên hay tải về các tập tin Hạn chế của hệ thống là có rất ít hướng truyền tin và chỉ với những ai biết về sàn thông báo đó Ngoài ra, các máy tính tại sàn thông báo cần một modem cho mỗi kết nối, khi số lượng kết nối tăng lên, hệ thống không thể đáp ứng được nhu cầu

Qua các năm 1950, 1970, 1980 và 1990, Bộ Quốc phòng Hoa Kỳ đã phát triển các mạng diện rộng WAN có độ tin cậy cao, nhằm phục vụ các mục đích quân sự và khoa học Công nghệ này khác truyền tin điểm nối điểm Nó cho phép nhiều máy tính kết nối lại với nhau bằng các đường dẫn khác nhau Bản thân mạng sẽ xác định dữ liệu di chuyển từ máy tính này đến máy tính khác như thế nào Thay vì chỉ có thể thông tin với một máy tính tại một thời điểm,

Trang 8

nó có thể thông tin với nhiều máy tính cùng lúc bằng cùng một kết nối Sau này, WAN của Bộ Quốc phòng Hoa Kỳ đã trở thành Internet

Hiện nay, mạng Internet đã được ứng dụng toàn cầu và nó ngày càng phát triển mạnh nhằm phù hợp với nhu cầu của con người và xã hội, chính vì thế mà mạng máy tính là công nghệ của thời đại Các ứng dụng mạng đóng vai trò không thể thiếu để khai thác tiềm năng của mạng máy tính, đặc biệt là mạng Internet Chính sự phát triển đó kéo theo nhiều vấn đề được đưa ra nhằm giải quyết và nêu lên các phương pháp nhằm làm cho mạng máy tính phát triển mạnh hơn

Thông thường, vấn đề cung cấp tài nguyên được đánh giá như là một trong những lĩnh vực tri thức quan trọng vì nó vận dụng thường xuyên trong quá trình triển khai nghiên cứu, khảo sát, phân tích, thiết kế và xây dựng các

hệ điều hành nói chung, hệ tin học phân tán nói riêng

Chúng ta đã biết đến khá nhiều trong các ấn phẩm liên quan đến hệ điều hành về vấn đề cung cấp tài nguyên và các giải pháp hữu hiệu nhằm vào các

hệ tập trung với bộ nhớ chung Thế đối với hệ phân tán thì sao? Việc cung cấp tài nguyên dùng chung như thế nào?

Để trả lời các câu hỏi đó, tôi tìm hiểu tới một trong những phiên bản của thuật toán Lomet, phiên bản này sử dụng trạng thái từng phần khi ứng dụng vào hệ phân tán Và đó cũng là lý do tôi chọn đề tài:

“Tìm hiểu thuật toán Lomet trong cung cấp tài nguyên dùng chung phục vụ

hệ thống máy chủ ảo của Điện toán đám mây”

2 Mục tiêu và nhiệm vụ nghiên cứu

Khóa luận nghiên cứu tới một trong những phiên bản của thuật toán Lomet trong việc cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ

Trang 9

ảo của điện toán đám mây; áp dụng thuật toán vào chương trình ứng dụng là bài toán bãi đậu xe

3 Đối tượng và phạm vi nghiên cứu

Đối tượng được nghiên cứu cụ thể là: Nghiên cứu lý thuyết về một phần trong thuật toán Lomet; việc cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ ảo cụ thể sử dụng trạng thái từng phần; nghiên cứu và xây dựng ví dụ kinh điển trong hệ điều hành là bài toán bãi đậu xe

Trong phạm vi nghiên cứu của đề tài, khóa luận nghiên cứu xây dựng hệ thống đa server sử dụng thuật toán Lomet trong việc cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ ảo [2]

4 Phương pháp nghiên cứu

Với các mục tiêu trên, khóa luận sử dụng phương pháp nghiên cứu lý thuyết và nghiên cứu thực nghiệm để thực hiện đề tài theo các bước sau [2]:

- Thu thập và nghiên cứu các tài liệu có liên quan đến đề tài

- Nghiên cứu lý thuyết về thuật toán Lomet và tìm hiểu việc cung cấp tài nguyên dùng chung phục vụ hệ thống máy chủ ảo trong thuật toán Lomet

- Nghiên cứu về ví dụ kinh điển trong hệ điều hành là bài toán bãi đậu

Trang 10

5 Thực tiễn của đề tài

Việc nghiên cứu thuật toán Lomet và ứng dụng vào việc cung cấp tài nguyên dùng chung trong hệ thống máy chủ ảo làm cơ sở nhằm phục vụ trong việc đăng kí sử dụng tài nguyên dùng chung [2]

Đồng thời, kết quả nghiên cứu của đề tài làm nền tảng giải quyết các bài toán đăng kí từ xa trong mạng máy tính và hệ thống mạng Internet, ví dụ như: đăng kí vé máy bay, vé tàu, đăng kí tín chỉ, …

6 Bố cục khóa luận

Khóa luận được chia làm 3 chương [2]:

Chương 1 trình bày về bế tắc, các chiến lược cung cấp tài nguyên trong

hệ phân tán và lý thuyết liên quan

Chương 2 trình bày nội dung nghiên cứu tổng quan tới thuật toán Lomet Chương 3 được dành để giới thiệu về ứng dụng, phân tích ứng dụng và

đề ra xây dựng ứng dụng Tiến hành xây dựng hệ thống bãi đậu xe, cài đặt ứng dụng và đưa ra một số kết quả thực hiện của ứng dụng

Trang 11

Chương 1: BẾ TẮC VÀ CÁC CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN TRONG HỆ PHÂN TÁN

1.1 MỘT SỐ KHÁI NIỆM

Thực hiện các tiến trình của một ứng dụng phân tán đòi hỏi phải có các đối tượng khác nhau như bộ xử lý, bộ nhớ, thiết bị ngoại vi, các tập tin,… cũng như quyền được truy cập theo kiểu loại trừ tương hỗ đến các thông tin, quyền được sử dụng các hàm, thủ tục, chương trình

Tài nguyên được định nghĩa như là một đối tượng mà trong đó các quy tắc sử dụng và chia sẻ được kết hợp với nhau Nói chính xác, đó là những vấn

đề quyền truy cập loại trừ hay truy cập chia sẻ, có hạn chế số lượng NSD hay không,…

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, ví dụ như người 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 logic hoàn chỉnh mà việc triển khai nó có thể 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

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 Từ đây trở đi, ta gọi các yêu cầu thông điệp này bằng cách gọi ngắn

gọn là 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ó [1]

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

Trang 12

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,…

Thuật ngữ tải là tập hợp các yêu cầu phục tùng các quy tắc của một bộ

cung cấp [1]

Các tham số đặc trưng cho tải là:

1 Số lượng các yêu cầu được cung cấp tài nguyên

2 Bản chất của các yêu cầu

3 Phân tán theo thời gian các yêu cầu tạo ra nó

Một yêu cầu được thỏa 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 các tiến trình mất khả năng sử dụng tài nguyên

đã được cung cấp trước đó Đó là:

1 Giải phóng Tiến trình phát tín hiệu ngừng sử dụng tài nguyên

2 Thu hồi Sự lấy lại tài nguyên đã được cung cấp cho 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

Trang 13

1.2 BẾ TẮC (DEADLOCK) TRONG VIỆC CUNG CẤP TÀI NGUYÊN DÙNG CHUNG

tài nguyên lại phát yêu

cầu về nhu cầu sử

Lúc này, ta thấy có hai chu trình kín trong đồ thị là:

Trang 14

Hình 1.2 Đồ 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 [1]

Một chiến lược cung cấp tài nguyên tồi cũng có thể là nguồn gốc hủy 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ể 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 thỏa 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

T2

T4

Trang 15

lượt được thỏa mãn trên một trạm bị đầy, trong khi đó các tài nguyên tương đương lại rỗi rãi trên các trạm [1]

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 [1]

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 phối tải tương đối đồng đều giữa các tài nguyên cùng loại (cùng có thể thỏa 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

1.3 CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN

1.3.1 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ể ở 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:

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

Trang 16

1.3.1.1 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 bảo đảm bởi tính duy nhất của server

Server đồng thời cũng là chương trình đánh thức [1]

Chương trình có thể viết như sau:

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) [1]

m := cho_thong_diep (nil) {treo}

<Chương trình xử lý các yêu cầu và gửi trả kết quả>

Kết thúc vòng lặp

Trang 17

1.3.1.2 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 ổn đị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

Các quy tắc này được khởi sự bằng hai cách bởi các tiến trình khách Hình vẽ 1.4 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

Hình 1.4 Đồ 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ẽ 1.5

Hình 1.5 Truy cập trực tiếp vào các server

Trang 18

Trong hình 1.4, 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, trong hình 1.5, các máy server đều được các tiến trình khách biết trước

Việc triển khai đặc biệt đối với các server có liên quan đến việc phân phối chúng với các điểm vào một module quản lý tài nguyên như chương trình

monitor (Thường dùng trong các hệ điều hành) chẳng hạn

1.3.2 Cung cấp một tập hợp các tài nguyên Vấn đề bế tắc

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

Ở đây sẽ xét các giao dịch T i 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 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 S i , giao dịch T i

cho thực hiện phép toán v_loai_tru_th(e) thông qua đại diện p ij 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ị khóa bởi một tiến trình không thể rút nó trở về được Như thế, nó cần đượ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)

Trang 19

Như vậy, có thể xảy ra rủi ro do bế tắc, khi các tiến trình truy cập loại trừ được phân phối mà không có khả năng thu hồi và các tiến trình cần phải sử dụng đồng thời nhiều tài nguyên

Ví dụ:

Giả sử có hai tiến trình p và q cùng sử dụng hai tài nguyên e 1 và e 2, chúng được mô tả trong đoạn chương trình sau:

Nếu các yêu cầu được thỏa mãn theo thứ tự p 1 , q 1 , thì tất yếu xảy ra vấn

đề chặn nhau giữa p và q Lý do hiển nhiên là p 1 và q 2 không bao giờ được đáp ứng, nếu e 1 và e 2 không được giải phóng

Bế tắc có thể được giải quyết bằng cách dự báo và phò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ó nghĩa 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ất rõ trạng thái của tất cả các tài nguyên

Trang 20

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 đó chỉ có thể thu hồi các 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 các 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 là do vậy làm giảm khả năng thực hiện song song của hệ Khi các tiến trình phát triển và thông báo trước về nhu cầu cực đại các tài nguyên, thì các phương pháp mềm dẻo hơn có thể được sử dụng [1]

Ví dụ:

Phương pháp chủ nhà băng Habermann chỉ cho phép cung cấp, nếu nó

duy trì được hệ thống trong trạng thái ổn định Đó là trạng thái mà xuất phát

từ trạng thái ấy ta có thể cho thực hiện tuần tự, không có bế tắc các tiến trình trong tình huống bất lợi nhất Mỗi tiến trình đều đòi toàn bộ các tài nguyên đã thông báo trước [1]

1.3.2.1.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 tiến trình Các cung cấp tiến trình – tài nguyên biểu hiện các yêu cầu không được thỏa mãn, các cung cấp tài nguyên – tiến trình thể

hiện các 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 [1]

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.2.2 Phân tán chức năng cung cấp

Bây giờ, 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 một tập

Trang 21

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 [1]

Tồn tại cho hai nhóm giải pháp cho vấn đề đặt ra:

1.3.2.2.1 Duy trì 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 [1]

1.3.2.2.2 Phân tán biểu hiện trạng thái và chức năng cung cấp

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ỉ có trạng thái của các tài nguyên cục bộ của mình Các quyết đị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

Trang 22

Chương 2: TỔNG QUAN VỀ THUẬT TOÁN LOMET

2.1 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 [1]

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:

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

4 Kiểu sử dụng

5 Tập hợp các yêu cầu không được thỏa mãn

6 Tập hợp các thông điệp dành cho trường hợp đã được sử dụng

7 Tập hợp các thông điệp dành cho trường hợp thất bại

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 thân sao trạng thái cục bộ của 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 [1]

Trang 23

Để 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 trạng thái 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ần 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 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 T i thì gia 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 T j

và T k và ký hiệu là T j > T k điều đó nói lên rằng T j chậm hơn T k

T j > T k nghĩa là tồn tại ít nhất một tài nguyên bị cài then bởi T j và là thành

phần thuộc thông điệp của T k

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 T 1 , T 2 , và T 3 sử dụng ba tài nguyên e 1 , e 2 và e 3

Ta ký hiệu a_loai_tru_th() là phép toán thông điệp

Trang 25

Hình 2.1 Vòng khép kín trên đồ thị

Để tránh bế tắc diễn ra, ta duy trì tại 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 trên đồ 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 căn cứ theo phương pháp chỉ dẫn

2.2 THUẬT TOÁN LOMET

Đâ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

2.2.1 Vị trí của vấn đề

Đây là một ví dụ minh họa 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 sau: ta giả sử rằng các tài nguyên

e 1 , e 2 , và e 3 được bố trí trên các trạm tương ứng S 1 , S 2 , S 3 Nếu trạm S i chỉ nhận các thông báo tương ứng với tài nguyên mà nó quản lý, thì nó chỉ duy trì

đồ thị G i – hình ảnh thu nhỏ của G cho các giao dịch đã phát thông báo

e3

T1

Trang 26

Nhƣ vậy, sau khi đã thực hiện t 32 , ta có các hình ảnh sau:

Trang 27

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

2.2.2 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 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 S i của đồ thị của một quan hệ trật tự toàn bộ chặt chẽ được xác định trên

tập hợp các giao dịch Quan hệ trật tự này có thể có đượ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ị G i 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ẽ được 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 [1]

Ta ký hiệu T j >> T k 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 S i của đồ thị của quan hệ >>

xác định bởi:

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 T p 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ó:

Tj >> Tk Tj > Tk hay Tj >> Tk

Trang 28

Nếu S là số của trạm chứa tài nguyên bị cài then bởi T q và thuộc quyền sở

hữu của thông báo của T p thì G ’ i chứa vòng lặp

2 Trong trường hợp bị từ chối, tiến trình thực hiện giao dịch trên

trạm S được đưa ra vào hàng đợi cục bộ tại S

3

Khi tài nguyên được giải phóng, tất cả các tiến trình của hàng đợi được kiểm tra nếu các yêu cầu của chúng có thể được thỏa mãn

Quá trình vận hành thuật toán được minh họa bởi ví dụ liền sau đây:

Trang 29

Hình 2.6 Trạng thái cung cấp tài nguyên trên 3 trạm

Yêu cầu t 22 : v_loai_tru_th(e 2 ) kéo trên trạm S 2 sự tạo nên cung T 2 – T 1 bị

loại bỏ; bởi vì nó sinh ra vòng lặp trên S 2 Tương tự như vậy, yêu cầu t 32 : v_loai_tru_th(e 3 ) bị từ chối bởi vì nó tạo ra vòng lặp trên S 3 Nhưng ta cần lưu

ý là nếu trật tự theo dạng T 1 , T 2 , T 3 , thì yêu cầu vừa nêu có thể được chấp

Ngày đăng: 08/05/2021, 21:05

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] PGS.TS. Lê Văn Sơn (2002), “Hệ tin học phân tán” Sách, tạp chí
Tiêu đề: Hệ tin học phân tán
Tác giả: PGS.TS. Lê Văn Sơn
Năm: 2002
[2] Nguyễn Thị Thu Hằng (2011), “Nghiên cứu web ngữ nghĩa và ứng dụng vào xử lý thông tin du lịch”, Luận văn thạc sĩ kỹ thuật Sách, tạp chí
Tiêu đề: Nghiên cứu web ngữ nghĩa và ứng dụng vào xử lý thông tin du lịch”
Tác giả: Nguyễn Thị Thu Hằng
Năm: 2011
[3] ThS. Phí Đắc hải (2009), “Giáo trình phân tích, thiết kế hướng đối tượng” Sách, tạp chí
Tiêu đề: Giáo trình phân tích, thiết kế hướng đối tượng
Tác giả: ThS. Phí Đắc hải
Năm: 2009
[4] ThS. Lê Văn Mỹ (2011), “Giáo trình lập trình mạng” Sách, tạp chí
Tiêu đề: Giáo trình lập trình mạng
Tác giả: ThS. Lê Văn Mỹ
Năm: 2011
[5] Nguyễn Phương Lan, Nguyễn Đức Hải (2001), “Java – lập trình mạng” Sách, tạp chí
Tiêu đề: Java – lập trình mạng
Tác giả: Nguyễn Phương Lan, Nguyễn Đức Hải
Năm: 2001

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w