tiểu luận lập trình mạng phòng tránh bế tắc trong cung cấp tài nguyên

25 1.1K 2
tiểu luận lập trình mạng phòng tránh bế tắc trong cung cấp tài nguyên

Đ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

ĐẠI HỌC ĐÀ NẴNG BAN ĐÀO TẠO SAU ĐẠI HỌC  GVHD : PGS. TS. LÊ VĂN SƠN HỌC VIÊN : ĐẶNG QUÝ LINH LỚP : CAO HỌC KHMT K24 1 Đà Nẵng, tháng 05/2012 Đề tài: PHÒNG TRÁNH BẾ TẮC TRONG CUNG CẤP TÀI NGUYÊN THUỘC HỆ PHÂN TÁN MỤC LỤC 1 1 MỤC LỤC i LỜI MỞ ĐẦU iii CHƯƠNG 1 1 BẾ TẮC VÀ PHƯƠNG PHÁP PHÒNG TRÁNH BẾ TẮC TRONG HỆ TIN HỌC PHÂN TÁN 1 1. Khái niệm bế tắc 1 2. Phương pháp phòng tránh bế tắc 1 2. Phương pháp phòng tránh bế tắc 1 2.1 Sắp xếp kiểu đóng dấu 1 2.1 Sắp xếp kiểu đóng dấu 1 2.1.1 Đồng hồ logic 2 2.1.2 Minh họa trật tự từng phần 2 2.1.3 Gắn thời gian lôgic với các sự kiện 3 2.2 Giới thiệu giải thuật loại trừ tương hỗ 3 2.2 Giới thiệu giải thuật loại trừ tương hỗ 3 2.3 Kiểm nghiệm giải thuật 5 2.3 Kiểm nghiệm giải thuật 5 CHƯƠNG 2 7 LẬP TRÌNH PHÂN TÁN 7 1. Mô hình Client-Server 7 1. Mô hình Client-Server 7 1.1 Giới thiệu 7 1.1 Giới thiệu 7 1.2. Client 8 1.2. Client 8 1.3. Server 9 1.3. Server 9 2. Mạng máy tính phân tán 9 2. Mạng máy tính phân tán 9 3. Các điểm mạnh trong hệ phân tán 9 3. Các điểm mạnh trong hệ phân tán 9 4. Giới thiệu phương thức triệu gọi đối tượng từ xa RMI (Remote Method Invocation) 10 4. Giới thiệu phương thức triệu gọi đối tượng từ xa RMI (Remote Method Invocation) 10 4.1. Triệu gọi phương thức từ xa 10 4.1. Triệu gọi phương thức từ xa 10 4.2. Kiến trúc RMI Java 11 4.2. Kiến trúc RMI Java 11 CHƯƠNG 3 15 XÂY DỰNG CHƯƠNG TRÌNH TRAO ĐỔI THÔNG ĐIỆP VỀ TRẠNG THÁI CUNG CẤP TÀI NGUYÊN GIỮA 5 SERVER 15 1. Hướng giải quyết 15 1. Hướng giải quyết 15 2. Thuật toán Lamport 15 2. Thuật toán Lamport 15 2.1. Các giả định 15 2.1. Các giả định 15 2.2. Các kiểu thông điệp 15 2.2. Các kiểu thông điệp 15 2.3. Các biến tiến trình 16 2.3. Các biến tiến trình 16 2.4. Thuật toán 16 2.4. Thuật toán 16 2.4. Nhận xét 16 2.4. Nhận xét 16 3. Kết quả Demo chương trình 17 3. Kết quả Demo chương trình 17 1. Đánh giá kết quả đã thực hiện 19 2. Hạn chế 19 3. Hướng phát triển ứng dụng 19 TÀI LIỆU THAM KHẢO 20 LỜI MỞ ĐẦU Các mô hình tin học phân tán đã và đang là xu hướng chủ đạo trong công nghệ thông tin trong một thời gian, ít nhất là từ hai thập kỉ gần đây. Tin học phân tán là cơ sở tạo ra mạng môi trường tin học để đạt được việc sử dụng, thực thi máy tính hữu ích hơn, và nhờ đó có thể tiến xa hơn nữa. Điều đó có nghĩa là có rất nhiều loại mô-đun khác nhau của một ứng dụng cần tích hợp với nhau để xem chúng như một ứng dụng dính liền. Về cơ bản, có hai phần trong mô hình tin học phân tán, một khách (client) và một chủ (server), chạy trên các máy khác nhau trên mạng. Cách chạy của một hệ phân tán phần lớn được xác định bởi sự sử dụng những chính sách nguyên thủy và luồng đồng bộ hóa middleware nằm bên dưới. Trạng thái tự nhiên song song vốn có của các hệ phân tán có thể gây ra một số vấn đề, như những sự bế tắc và livelocks. Đã có nhiều mô hình lập trình phân tán đối tượng ra đời như DCOM (Microsoft), RMI (Java), CORBA,…Tiểu luận này sẽ trình bày một bài toán về vấn đề bế tắc và cách giả quyết phòng tránh bế tắc trong cung cấp tài nguyên thuộc hệ phân tán và xây dựng một chương trình nhỏ bằng ngôn ngữ lập trình Java sử dụng RMI để demo. Tiểu luận lập trình mạng CHƯƠNG 1 BẾ TẮC VÀ PHƯƠNG PHÁP PHÒNG TRÁNH BẾ TẮC TRONG HỆ TIN HỌC PHÂN TÁN 1. Khái niệm bế tắc 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 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. Ví dụ như hình vẽ sau đây: T1 T2 T4 T3 Tr1 Tr2 Tr3 Hình 2. Đồ thị cung cấp tài nguyên bị bế tắc Hình 2 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 T 1 ,T 2 , T 3 , T 4 và có ba tiến trình nhu cầu tài nguyên là Tr 1, Tr 2, và Tr 3. Cả 3 tiến trình này đang ở tình trạng bế tắc. Tiến trình Tr 2 chờ tài nguyên T 3 do Tr 3 đang chiếm giữ. Tiến trình Tr 3 chờ tài nguyên T 2 được giải phóng bởi Tr 1 trạm Tr 3 . Thêm vào đó, tiến trình Tr 1 chờ tiến trình Tr 2 giải phóng T 1 . Lúc này, ta thấy có 2 chu trình kín trong đồ thị là: 2. Phương pháp phòng tránh bế tắc 2.1 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ận thời điểm truyền trên cơ sở tham chiếu đồng hồ lô gích. Nội dung cơ bản của phương pháp này là trạm phát được gắn mộ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à dựa vào đồng hồ lô Trang 1 Tr 1 -T 1 -Tr 2 -T 3 -Tr 3 -T 2 -Tr 1 Tr 3 -T 2 -Tr 2 -T 3 -Tr 3 3 . a P (a → c) - bắc cầu - • b Q • c 2 . . a P (a → b) - nhân quả - • b Q • c Tiểu luận lập trình mạng gích cục bộ của chính trạm. Các đồng hồ này được lấy lại thông qua hội thoại giữa các trạm. 2.1.1 Đồng hồ logic Đố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ới thờ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ồ logic 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ác tiến trình đang sắp xếp. Đồng hồ logic Lamport là khái niệm cơ bản để sắp xếp các tiến trình và các sự kiện trong hệ phân tán. 2.1.2 Minh họa trật tự từng phầ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ả 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à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: 1. 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 (trật tự cục bộ). 2. 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. (nhân-quả) 3. Nếu A→B và B→C, thì A→C. (bắc cầu) Sơ đồ của “ có trước ”: Trang 2 p2 p1 p3 p4 q1 q2 q3 q4 q5 q6 r1 r2 r3 r4 P RQ Tiểu luận lập trình mạng - a → b : 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. o Ví dụ : p1 → r4. (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. o 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. 2.1.3 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ồ : Để thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ, ta có thể áp dụng thuật toán đóng dấu thời gian. 2.2 Giới thiệu giải thuật loại trừ tương hỗ Loại trừ tương hỗ có thể được điều khiển trên một trạm trung tâm có nhiệm vụ nhận tất cả các thông điệp và khuyến nghị giải phóng. Trạm này duy trì một hàng đợi, sắp xếp các yêu cầu theo trật tự đến và phục vụ cho từng thông điệp một trong trật tự này. Phân tán giải thuật này kéo theo việc phân tán các chức năng cung cấp mà cần phải điều khiển hàng đợi trên trạm. Do vậy, một trạm chuyên cho việc tiếp nhận các Trang 3 ∀ sự kiện a,b : nếu a → b thì C(a) < C(b) Tiểu luận lập trình mạng yêu cầu và các khuyến nghị giải phóng từ tất cả các trạm còn lại. Một trật tự giống nhau trên tất cả các trạm chỉ đạt được, nếu ta áp dụng dấu trong các thông điệp bởi đồng hồ lô gích truyền và đánh số các trạm. Quan hệ trật tự toàn bộ được định nghĩa. Thêm vào đó, để cho một trạm có thể ra quyết định bằng việc tham chiếu duy nhất vào hàng đợi của mình, nó còn cần phải nhận một thông điệp của từng trạm khẳng định rằng không có thông điệp nào trước các thông điệp khác mà còn đang quá cảnh trên đường. Thuật toán loại trừ tương hỗ có thể mô tả theo sơ đồ sau đây. 1. Trạm i của mạng có thể gửi cho các trạm khác thông điệp có dạng (T,Hi,i), trong đó Hi là dấu của thông điệp có nghĩa là đồng hồ lô gích của nó và T có thể nhận một trong ba giá trị REQ, REL và ACQ. Ba giá trị này xác định bản chất của ba loại thông điệp khác nhau: STT Thông điệp Giải thích 1 REQ Thông điệp REQ được phát đi cho tất cả các trạm, khi trạm i muốn vào trong đoạn găng. 2 REL Thông điệp REL được phát đi cho tất cả các trạm, khi trạm i đã rời khỏi đoạn găng. 3 ACQ Thông điệp ACQ được gởi bởi trạm j cho trạm i, khi trạm j đã nhận từ trạm i thông điệp REQ. 2. Mỗi trạm quản lý một hàng đợi các thông điệp được sắp xếp hoàn toàn bởi quan hệ ⇒ theo cặp <thời gian, số> của từng thông điệp. Theo cấu trúc, hàng đợi luôn luôn chứa một thông điệp và chỉ một thường trực trong mỗi trạm, bao gồm trạm cục bộ. Khi có một thông điệp được gửi đi bởi trạm i, đồng thời nó cũng được ghi trong hàng đợi của trạm này. Giả sử rằng mỗi hàng đợi ban đầu chứa các thông điệp: trong đó, i, Hinit là thời điểm khởi sự giống nhau cho tất cả các trạm. 3. Trên mỗi trạm, khi nhận được một thông điệp dạng (REQ, Hi,i) hay (REL,Hi,i) thông điệp này thay thế thông điệp Mi bất chấp nó là gì. Khi nhận thông Trang 4 M i = (REL,H init ,i) Tiểu luận lập trình mạng điệp loại (ACQ, Hi, i), thông điệp này thay thế Mi ngoại trừ nếu Mi là một yêu cầu mà trong trường hợp đó ACQ bị bỏ qua. Do vậy, ta có thể tiết kiệm việc gởi đi thông điệp ACQ cho trạm i khi trạm này đã gởi một thông điệp REQ và không còn thông điệp REL. 4. Trạm i được truyền vào đoạn găng khi thông điệp REQ của nó đến trước theo nghĩa của quan hệ ⇒ tất cả các thông điệp khác trong hàng đợi của nó. Cần nhắc lại rằng hàng đợi chứa một thông điệp loại này trên một trạm. 2.3 Kiểm nghiệm giải thuật Các yêu cầu vào đoạn găng được xử lý theo trật tự FIFO và theo quan hệ ⇒. Để chứng minh điều đó, ta lưu ý rằng khi trạm i quyết định vào đoạn găng, nó không thể đưa vào trong mạng yêu cầu nào trước bối cảnh sau. Thực tế, khi trạm i vào đoạn găng có nghĩa là nó đã nhận thông điệp từ tất cả các trạm khác và tất cả các thông điệp đều sau thông điệp REQ của riêng nó. Ta kiểm tra các đặc tính sau đây: 1. Trạm i đang ở trong đoạn găng là trạm duy nhất nằm trong đoạn găng ấy. Thực tế cho thấy thông điệp REQ được phát bởi i vẫn tiếp tục tồn tại trong tất cả các hàng đợi cho đến khi nó được thay thế bởi thông điệp REL. 2. Trạm đã yêu cầu vào đoạn găng phải đảm bảo thời hạn và phải ra khỏi đoạn găng sau một khoảng thời gian xác định. Thuật toán thể hiện tính đồng đều và tránh được tổn thất. Trang 5 [...]... 13 Tiểu luận lập trình mạng Hình trên mô tả quá trình tổ chức gói các tham số, các dữ liệu trả lời và sự trao đổi giữa các đối tượng trung gian trong kỹ thuật triệu gọi từ xa Trang 14 Tiểu luận lập trình mạng CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH TRAO ĐỔI THÔNG ĐIỆP VỀ TRẠNG THÁI CUNG CẤP TÀI NGUYÊN GIỮA 5 SERVER 1 Hướng giải quyết Sử dụng thuật toán loại trừ tương hỗ để giải quyết yêu cầu của bài toán Nguyên. .. đề bế tắc trong hệ tin học phân tán và các phương pháp phòng tránh bế tắc trong hệ phân tán - Ứng dụng xây dựng chương trình trao đổi thông điệp về trạng thái cung cấp tài nguyên giữa các server Thực hiện chạy giả lập các server - 2 Hạn chế - Tuy đã hoàn thành và đáp ứng yêu cầu của đề tài đề ra, song chương trình mới mô phỏng quá trình trao đổi thông điệp, chưa ứng dụng các thuật toán đồng bộ tiến trình. .. hành Trang 16 Tiểu luận lập trình mạng - 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ác hà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 3 Kết quả Demo chương trình - Server 1: - Server 2: Trang 17 Tiểu luận lập trình mạng - Server 3: - Server 4: - Server 5: Trang 18 Tiểu luận lập trình mạng KẾT LUẬN 1 Đánh.. .Tiểu luận lập trình mạng Trang 6 Tiểu luận lập trình mạng CHƯƠNG 2 LẬP TRÌNH PHÂN TÁN 1 Mô hình Client-Server 1.1 Giới thiệu Mô hình Client/Server là mô hình tổ chức trao đổi thông tin trong đó mô tả cách mà các máy tính có thể giao tiếp với nhau theo một phương thức nhất định Phương thức này là một chiến lược tổ chức phân cấp mà trong đó có một máy tính đặc biệt phục... quát như sau: - Một tiến trình nào đó gửi thông điệp để yêu cầu sử dụng tài nguyên, một tiến trình sử dụng xong tài nguyên nào đó truyền một thông tin giải phóng khi nó ngừng chiếm dụng - Trong các hệ phân tán, chương trình cung cấp nằm trên một trạm và các tiến trình đề nghị lại ở trên các trạm khác, các yêu cầu và khuyến nghị giải phóng được truyền cho các chương trình cung cấp thông qua hình thức... tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyên của hệ thống Các ứng dụng chạy trên Server phải được tách rời nhau để một lỗi của ứng dụng này không làm hỏng ứng dụng khác Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ thống Server như là một nhà cung cấp dịch vụ cho các Clients... hình đối tượng phân tán và được tích hợp với ngôn ngữ lập trình Java Kiến trúc này đã thành công trong việc tạo ra một hệ thống an toàn và kế thừa được sức mạnh của Java trong xử lý phân tán và đa luồng Về cơ bản, RMI được xây dựng dựa trên kiến trúc ba tầng như hình sau: Trang 11 Tiểu luận lập trình mạng Chương trình khách Hệ thống RMI Chương trình chủ Stub & Stub & Skeleton Skeleton Tầng giao vận... tiến trình Trang 19 Tiểu luận lập trình mạng TÀI LIỆU THAM KHẢO [1] TS Lê Văn Sơn - Hệ tin học phân tán - Nhà xuất bản Đại học quốc gia Thành phố Hồ Chí Minh - 2002 [2] TS Lê Văn Sơn – Giáo trình kỹ thuật mạng máy tính – Trường Đại học Bách khoa – Đại học Đà Nẵng - 1994 [3] Randy Chow, Theodore Johnson - Distributed Operating Systems and Algorithms Addison Wesley – 1997 [4] Nguyễn Thúc Hải - Mạng máy... nối hoàn toàn trong đó các tiến trình liên lạ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ếp lạ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 2.2 Các kiểu thông điệp Trang 15 Tiểu luận lập trình mạng - (REQ, Ci, 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 tiến trình khác - (REP,... mạng này cung cấp) , ví dụ như nó có thể yêu cầu lấy dữ liệu từ một Server hay gửi dữ liệu lên Server đó Thực tế trong các ứng dụng của mô hình Client/Server, các chức năng hoạt động chính là sự kết hợp giữa Client và Server với sự chia sẻ tài nguyên, dữ liệu trên cả hai máy Trong mô hình Client/Server, Client được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và Server . tháng 05/2012 Đề tài: PHÒNG TRÁNH BẾ TẮC TRONG CUNG CẤP TÀI NGUYÊN THUỘC HỆ PHÂN TÁN MỤC LỤC 1 1 MỤC LỤC i LỜI MỞ ĐẦU iii CHƯƠNG 1 1 BẾ TẮC VÀ PHƯƠNG PHÁP PHÒNG TRÁNH BẾ TẮC TRONG HỆ TIN HỌC. tài nguyên thuộc hệ phân tán và xây dựng một chương trình nhỏ bằng ngôn ngữ lập trình Java sử dụng RMI để demo. Tiểu luận lập trình mạng CHƯƠNG 1 BẾ TẮC VÀ PHƯƠNG PHÁP PHÒNG TRÁNH BẾ TẮC TRONG. hình lập trình phân tán đối tượng ra đời như DCOM (Microsoft), RMI (Java), CORBA, Tiểu luận này sẽ trình bày một bài toán về vấn đề bế tắc và cách giả quyết phòng tránh bế tắc trong cung cấp tài

Ngày đăng: 31/01/2015, 22:49

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI MỞ ĐẦU

  • CHƯƠNG 1

  • BẾ TẮC VÀ PHƯƠNG PHÁP PHÒNG TRÁNH BẾ TẮC TRONG HỆ TIN HỌC PHÂN TÁN

    • 1. Khái niệm bế tắc

    • 2. Phương pháp phòng tránh bế tắc

    • 2.1 Sắp xếp kiểu đóng dấu

      • 2.1.1 Đồng hồ logic

      • 2.1.2 Minh họa trật tự từng phần

      • 2.1.3 Gắn thời gian lôgic với các sự kiện

      • 2.2 Giới thiệu giải thuật loại trừ tương hỗ

      • 2.3 Kiểm nghiệm giải thuật

      • CHƯƠNG 2

      • LẬP TRÌNH PHÂN TÁN

        • 1. Mô hình Client-Server

        • 1.1 Giới thiệu

        • 1.2. Client

        • 1.3. Server

        • 2. Mạng máy tính phân tán

        • 3. Các điểm mạnh trong hệ phân tán

        • 4. Giới thiệu phương thức triệu gọi đối tượng từ xa RMI (Remote Method Invocation)

Tài liệu cùng người dùng

Tài liệu liên quan