1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Lập trình mạngLập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

39 530 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

Định dạng
Số trang 39
Dung lượng 587,63 KB

Nội dung

Mục đích của lập trình mạng phân tán là tận dụng các khả năng tính toán và khai thác dữ liệu của các hệ thống máy tính ở xa để thực hiện những tính toán nhanh hơn trên cơ sở sử dụng nhiề

Trang 1

Ngày nay Internet cùng với các ứng dụng của nó đã đem lại cho xã hội một cuộc sống tiện nghi và đầy đủ hơn về thông tin Mạng Internet đã giúp cho con người bước vào một kỷ nguyên công nghệ thông tin và tri thức Để có được thành tựu đó thì lĩnh vực phân tán trong hệ tin học đã đóng một vai trò hết sức quan trọng

Mục đích của lập trình mạng phân tán là tận dụng các khả năng tính toán và khai thác dữ liệu của các hệ thống máy tính ở xa để thực hiện những tính toán nhanh hơn trên cơ sở sử dụng nhiều bộ xử lý, nhiều bộ nhớ đồng thời hoặc nhiều dữ liệu quý giá được phân tán khắp nơi Trên nền hệ thống mạng máy tính được kết nối rộng rãi hiện nay, việc xử lý phân tán sẽ giải quyết được những bài toán lớn hơn, phức tạp hơn và đa dạng hơn trong thực tế

Trong phạm vi của tiểu luận này tôi đề cập đến hai phần:

Phần 1 : Phần lý thuyết:

 Khái quát về hệ tin học phân tán

 Bài toán về bãi đỗ xe ô tô và vấn đề đồng bộ giữa các tiến trình

 Lập trình mạng phân tán và RMI

Phần 2 : Phần bài tập:

+ Viết chương trình bài toán bãi đỗ xe để mô phỏng quá trình làm việc của hệ phân tán

Tôi xin chân thành cảm ơn: PGS.TS Lê Văn Sơn và các bạn đồng môn đã

giúp tôi hoàn thành tiểu luận này

Trang 2

CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT

Trong chương này, các vấn đề cơ bản sau đây được trình bày :

• Các khái niệm ban đầu như khái niệm hệ phân tán và các đặc điểm chủ yếu của hệ

• Tiến trình nhu cầu tài nguyên trong các hệ phân tán

• Tầm quan trọng của việc đồng bộ hóa các tiến trình trong hệ phân tán

• Vấn đề tương thích giữa thuật toán điều khiển bải để xe với chiến lược cung cấp tài nguyên dùng chung trong hệ phân tán

• Tổng quan về trật tự từng phần và khái niệm ban đầu về ấn phong di chuyển trên vòng tròn ảo

Sau đây, những vấn đề vừa nêu sẽ lần lượt được trình bày

1 Hệ phân tán

Hệ tin học phân tán là hệ thống đa dạng, phức tạp về mặt cấu trúc, đang được các chuyên gia Công nghệ Thông tin quan tâm nghiên cứu với hàng loạt các công trình được công bố

Cho đến nay, xét trên các phương diện khác nhau, người ta có thể có các định nghĩa khác nhau về hệ tin học phân tán, nhưng phổ biến hơn cả là định nghĩa được phát biểu như sau :

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ý) phân bố ở những vị trí địa lý khác nhau, được liên kết với nhau thông qua phương tiện truyền thông (viễn thông) dưới quản lý thống nhất của một hệ thống điều khiển

Qua đó ta có thể xem hệ phân tán như là một tập hợp các bộ xử lý (hoặc bộ vi

xử lý) với bộ nhớ và đồng hồ nhịp độc lập Điều này đồng nghĩa với việc 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ệ 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 (NSD) 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 đạng của hệ thống như là những tài nguyên dùng chung

Trang 3

Việc định nghĩa các tài nguyên của hệ như là tài nguyên dùng chung sẽ mang đến cho NSD những tiện ích và đem lại cho hệ những hiệu năng tốt trong khai thác ứng dụng

Những ưu điểm căn bản của việc sử dụng chung tài nguyên được phản ảnh trong bảng I.1 sau đây :

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 sẵn sàng của các loại tài nguyên dùng chung

3 Tăng độ an toàn và an ninh cho dữ liệu

4 Cho phép đa dạng hoá các loại hình dịch vụ tin học nói chung

5 Đảm bảo tính vẹn toàn của thông tin do giải quyết được vấn đề gắn bó dữ liệu (Coherence)

Bảng I.1 Các ưu điểm căn bản của việc sử dụng chung tài nguyên

2 Các đặc điểm của hệ phân tán

Các đặc điểm và yêu cầu được liệt kê dưới đây (bảng I.2 và I.3) giúp ta nhận biết những đặc trưng cơ bản và phân biệt hệ tin học phân tán với các hệ tin học khác, đồng thời cung cấp thông tin cơ bản trong quá trình phân tích, thiết kế, xây dựng và đánh giá một hệ thống nào đó

TT Các yêu cầu cơ bản cần nghiên cứu giải quyết

1 Lập trình và thực hiện cho hệ thống đa truy cập, ngẫu nhiên, số

lượng lớn

2 Định danh định danh cho các đối tượng qua hệ thống viễn thông

3 Cấu trúc lập trình được cho các truy vấn đa chiều và đáp ứng lại

truy vấn

4 Trình tự và đồng bộ các tiến trình hoạt động

5 Gắn bó thông tin (Coherence) và vấn đề nhiều bản sao

6 Cung cấp từ xa các tài nguyên dùng chung (tài nguyên găng)

7 Vấn đề xử lý - tính toán đồng thời trong hệ

8 Vấn đề đa Server và hệ điều khiển - giám sát của người quản trị hệ

thống

9 Vấn đề tin cậy và hiệu năng hệ thống

Bảng I.2 Các yêu cầu cơ bản của hệ phân tán

Trang 4

TT Đặc điểm

1 Thời gian truyền thông tin trong hệ không giống nhau

2 Các thông điệp có thể bị mất trong quá trình truyền thông tin

3 Các thông điệp có thể được truyền kép

4 Việc phát và nhận thông điệp đối với toàn hệ là ngẩu nhiên

5 Việc cập nhật thông tin (chương trình và dữ liệu) dẫn đến hệ rơi vào

trạng thái thiếu gắn bó

6 Hệ có thể rơi vào trạng thái bế tắc, tắt nghẽn đường truyền, chờ vô hạn

và thiếu thốn tài nguyên

7 Một (hay nhiều) máy tính cấu thành của hệ phân tán có thể bị sự cố

Bảng I.3 Đặc điểm cơ bản của hệ phân tán

Tiến trình (Process) là khái niệm khá quen thuộc và là đối tượng nghiên cứu của hệ điều hành Trong hệ phân tán ta chỉ xem xét và bổ sung đặc điểm hoạt động và truy cập của các tiến trình có nhu cầu cung cấp tài nguyên dùng chung

Các đặc điểm đó là :

1 Các tiến trình được hình thành và điều khiển bởi hệ điều khiển duy nhất

có nghĩa là nếu trong các thành phần tham gia hệ phân tán như mạng máy tính, các hệ tập trung, có thể có các hệ điều hành riêng với các tiến trình riêng của

mình, thì chúng cũng bị phái sinh lại trong nội dung của tiến trình mới, phân

tán

2 Tiến trình là chương trình hay đoạn chương trình đang hoạt động trong

hệ phân tán là đối tượng chủ yếu có nhu cầu tài nguyên phần cứng hay phần mềm để thực hiện các lệnh của mình Tiến trình cần tài nguyên để phát triển

Về nguyên tắc, tất cả các tiến trình và tài nguyên được cung cấp là các đối tượng ở xa

3 Các nguyên lý của hệ tập trung có thể nghiên cứu và áp dụng cho các tiến trình phân tán như dự phòng và chống bế tắc, chống xung đột,

4 Khi tiến trình được cung cấp tài nguyên có thể nó thực hiện ngay, nếu nó

là đối tượng được gửi đến từ trước trên bộ xử lý (máy) cục bộ hoặc phải gửi đối tượng là tiến trình qua hệ thống đường truyền

5 Việc cung cấp tài nguyên cho các tiến trình có thể thực hiện theo 2 cách trong hệ phân tán :

• Thông qua hệ thống cung cấp chung cho toàn hệ như Controllor/Allocator

Trang 5

• Thông qua Allocator cục bộ trên Server/Workstation bằng cách tham chiếu vào bảng trạng thái, ảnh của thông tin toàn cục

Đồng bộ hoá tiến trình được hiểu như là quá trình điều khiển tạo nên sự ăn khớp với nhau giữa tất cả các tiến trình khác nhau giúp cho hệ phân tán hoạt động nhịp nhàng, tin cậy và phòng tránh các sự cố kỹ thuật

Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh

và hiệu quả để có thể đồng bộ hóa 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 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 rất hạn chế hay truy cập vào thông

tin dùng chung cùng một lúc gây nên hiện tượng truy cập tương tranh

Tương tranh là nguyên nhân chính của các xung đột giữa các tiến trình muốn truy cập vào các 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 tóan đặ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

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 tin

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 thông điệp bằng các kênh viễn thông

DÙNG CHUNG

Trong hàng loạt các tài liệu đã nêu lên nhiều mặt khác nhau của bài toán điểu khiển bãi để xe Trong phạm vi của tiểu luận này, ta trình bày vấn đề dưới giác độ

đồng bộ hóa đã được xác định trong phần I.3 ở trên Bãi để xe ô tô được mô tả trong

hình vẽ I.1 Bãi này có m chổ để xe và có thể phân n (n<m, nguyên, dương) khu vực ứng với n cửa vào/ra ô tô Tại mỗi cửa vào/ra, ta có người bảo vệ làm nhiệm vụ cung

cấp phiếu cho ô tô vào chổ còn trống và thu hồi lại phiếu khi có một ô tô ra, thông báo cho các người bảo vệ khác biết để cùng hành động cho chính xác trong việc phân phối chổ của bãi

Trang 6

VT

VT VT

VT VT

BV BV

2 Gửi thông tin về vị trí cấp phát các người bảo vệ khác trong bãi

3 Chờ toàn bộ các người bảo vệ khác khẳng định nhận

4 Gạch chéo vào ô vừa phát phiếu (tồn tại một ma trận chổ)

5 Phát phiếu cho lái xe ô tô và mở cổng vào-ra

6 Gửi thông tin cho toàn bộ các người bảo vệ khác trong bãi

Các hành vi cơ bản thu hồi chổ bị bận trước đó

1 Thu hồi phiếu cấp phát

2 Gửi đi các người bảo vệ khác trong bãi

3 Chờ khẳng định nhận của tất cả những người bảo vệ khác trong bãi

4 Giải phóng ô phiếu, đưa ô về trạng thái tự do

Xử lý lúc rối loạn như mất điều khiển

1 Khởi động lại nạp lại chính xác số chổ còn trống

2 Trình tự khởi động các người bảo vệ

3 Xác định tính tuần tự

Tình huống sự cố

Không nhận được khẳng định từ người nhận

Hình I.3 : Mô phỏng bãi đậu xe ôtô

Trang 7

Sự tương quan giữa các đối tượng trong bãi để xe và các đối tượng trong hệ phân tán có thể mô tả trong bảng I.4 dưới đây

1 Ô tô Tiến trình Ở đây, tiến trình được xem như

Ký hiệu là ĐK, hoàn toàn

Server/Workstation

3 Cổng vào/ra Server/Workstation Mỗi cổng đặt 1 máy (chưa tính

đến máy dự phòng) và nối chúng với nhau thông qua hệ thống đường truyền

4 Chổ để xe Tài nguyên Tài nguyên đồng nhất Trong

thực tế của hệ phân tán, tài nguyên có nhiều loại và có các đặc điểm rất khác xa nhau

5 Ma trận số vị

trí để xe ô tô

Hệ cơ sở dữ liệu phân tán

Đòi hỏi phải hoàn toàn giống nhau ở mọi thời điểm truy cập (Gắn bó dữ liệu)

Bảng I.4 Sự tương quan giữa các đối tượng bãi để xe và hệ phân tán Bài toán bãi để xe được phát biểu theo tình huống như sau :

Tình huống thứ 1

Ta giả sử rằng bãi để xe ô tô là bãi có số lượng ô lớn và có duy nhất một cổng

vào dưới sự kiểm soát của một (NBV) NBV chỉ biết được một phần của trạng thái bãi

để xe Trong khi anh ta nghĩ rằng bãi xe đã bị đầy, khi đó lại có nhiều lái xe đang cho

xe chạy ra cổng Vì suy nghĩ như vậy, trong trường hợp này, anh ta không giải quyết cho các xe khác tiếp tục vào bãi nữa, mặc dù lúc này trong bãi đang có chỗ trống

Như vậy, NBV không nắm được trạng thái hiện hành của bãi để xe do mình quản lý

Tình huống thứ 2

Nếu ta có bãi để xe với nhiều cổng vào và tại mỗi cổng vào có một NBV, thì

mỗi người NBV chỉ có thể biết được trạng thái với độ trễ nhất định và điều đó dẫn đến tình huống có nhiều trung tâm ra quyết định như trong hình vẽ I.1 ở trên

Trang 8

Trong thực tế, một NBV nào đó tin rằng không còn ô trống nữa trong khi một NBV khác lại vừa mới cho ra khỏi bãi một số xe ô tô mà anh ta chưa kịp báo cho các NBV khác Cũng có thể diễn ra trường hợp là cùng một lúc các người bảo vệ giải quyết các xe vào cùng một vị trí trong bãi do vì họ thiếu thông tin

Như vậy, các người bảo vệ phải hợp lực với nhau để phân phối chính xác các

chỗ trong bãi, đặc biệt là số lượng ô còn trống càng ít, thì vai trò của sự hợp lực càng quan trọng

Vì lý do ổn định và hiệu quả của hệ trong quá trình cung cấp tài nguyên dùng chung cho các tiến trình mà ta phải phân tán chức năng cung cấp trên nhiều Server/Workstation khác nhau 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 để bảo đảm cho hoạt động cung cấp được hoàn toàn chính xác

Tiếp tục nghiên cứu khía cạnh đồng bộ và ý nghĩa của việc gắn bó dữ liệu phân tán của bài toán điều khiển bải đỗ xe dưới đây, ta có thể rút ra một số kết luận quan trọng làm cơ sở cho việc giải quyết thích hợp các vấn đề đặt ra của tiểu luận văn này

Trong các phần trước, ta đã xác định một người bảo vệ có vai trò như là chương trình điều khiển và cung cấp chổ của bãi để xe ô tô Ở đây, chổ để xe được xem như là tài nguyên dùng chung của hệ Giả sử rằng ở thời diể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 người bảo vệ đều 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 các thông tin như sau :

TT Thông điệp Thông tin phát đi trong thông điệp

3 T3 Dành 10% chổ trống để quét dọn sân bãi

Bảng I.5 Nội dung của các thông điệp phát đi

Nếu ta không có ràng buộc nào đối với trình tự xử lý các thông điệp nhận được của các người bảo vệ, thì các người bảo vệ này sẽ có số lượng chổ trống khác nhau Để

bảo đảm các bản cập nhật giống nhau, thì trình tự cập nhật nhất thiết phải giống nhau trên tất cả các Server/Workstation

Thông

điệp

Giá trị

Thông

điệp

Giá trị

Thông

điệp

Giá trị

Trang 9

2 T3 108 T2 110 T1 110 T3 81

Bảng I.6 Sự không gắn bó giữa các người bảo vệ Tại đây, để dễ dàng hình dung vấn đề, ta có thể xem người bảo vệ như là

chương trình cung cấp tài nguyên nêu trên, còn chổ trong bãi là tài nguyên và các ô tô

là các tiến trình của hệ Dễ dàng nhận thấy rằng các vị trí (chỗ để xe) và các xe là

những thực thể đồng nhất Vì vậy, tiến trình và tài nguyên được xét trong ví dụ này là

tiến trình và tài nguyên đồng nhất

Để tìm giải pháp cho bài toán điều khiển bãi để xe, thực chất, là ta phải giải

quyết vấn đề đồng bộ hóa giữa các thực thể tạo ra các sự kiện trong hệ phân tán Đó

chính là các tiến trình tại các Server/Workstation yêu cầu tài nguyên để phát triển và tạo nên các thu, phát và là nguyên nhân chính của việc chuyển từ trạng thái này sang trạng thái khác một cách ngẩu nhiên

Liên quan đến vấn đề đồng bộ hoá là vấn đề gắn bó dữ liệu và tầm quan trọng

của nó với bài toán điều khiển phân tán, vấn đề trật tự hóa các sự kiện và vai trò của giải thuật Lamport với giá trị đồng hồ lô gíc mà ta sẽ lần lượt trình bày trong các phần

sau này được đánh giá như là vấn đề ưu tiên hàng đầu cần phải xé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ên cùng một tập hợp các tài nguyên chỉ đặt được nêu tuân thủ các quy tắc sau, ở đây các thông điệp được hiểu là các yêu cầu hay khuyến nghị giải phỏng tài nguyên

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

Bảng I.7 Các quy tắc tổng quát của việc đồng bộ hoá các tiến trình

Quy tắc sau cùng nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trên

tậ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ợp lực giữa các tiến trình cung cấp mà ta sẽ gặp trong các chương sau hay giữa các tiến trình phát thông điệp Trong các phần sau đây của chương này, ta sẽ kiểm tra hai chiến

lược hợp lực giữa các tiến trình phát nhằm phân phối cho mỗi thông điệp một dấu ( có tài liệu còn gọi là dấu hiệu ) nhằm dựa vào đó, ta có thể xác lập một trật tự hoàn toàn

Các chiến lược phản ứng được với các sự cố diễn ra trên một Server/Workstation, nếu

giả sử H 4 của được nghiên cứu và triển khai

Trang 10

VII S Ắ P X Ế P B Ằ NG B Ộ TU Ầ N T Ự

1 Khái niệm bộ tuần tự

Khái niệm bộ tuần tự được giới thiệu nhằm mục đích đánh số thứ tự và sắp xếp các sự kiện của hệ và tránh được các nhược điểm mà các phương pháp nêu trên đã mắc phải

Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi yêu cầu một số (hay còn gọi

là một tíc kê) nhằm xác lập trật tự

Giá trị số mà nó cung cấp phải là các giá trị nguyên, không âm Để cho hai yêu

cầu kế tiếp nhau, thì hai số liên tục nhau được cung cấp Giá trị 0 được cung cấp cho

yêu cầu đầu tiên

Một tiến trình muốn nhận giá trị từ bộ tuần tự S, thì nó phải gọi thủ tục (hoặc hàm) có tên là phieu(S) Mỗi một giá trị chỉ phục vụ cho một và chỉ một sự kiện mà

thôi

Giả sử rằng tất cả các sự kiện được đánh số bởi một bộ tuần tự duy nhất S Khi một tiến trình cung cấp cho sự kiện i một số thông qua phieu(S), ta có thể khẵng định

như sau (không có sự cố) :

1 rằng các sự kiện t bao hàm các giá trị nhỏ hơn t đã được diễn ra

2 rằng số thứ tự sự kiện kề liền sau t phải bằng t+1

Việc triển khai một bộ tuần tự cần phải mang hai đặc tính sau đây :

1 P1 Nếu a và b là hai sự kiện thực hiện trên cùng hàm

phieu(S), thì ta có ab hay ba

Nếu a thực hiện phép t = phieu(S), thì giá trị gán cho t là

số lượng các phép phieu(S) đã được thực hiện trước a

Bảng I.8 Đặc tính của bộ tuần tự

Đặc tính P1 thể hiện việc loại trừ tương hổ trên các phép toán phieu(S), còn P2

thể hiện tính liên tục trong khi đánh số có nghĩa là không để lại khoản trống khi đánh

Việc vận dụng tương đối tổng quát bộ tuần tự S trong hệ phân tán là sự chuyển động giữa các trạm một đối tượng duy nhất gọi là ấn phong chứa giá trị hiện hành của

bộ tuần tự Khi một trạm có ấn phong, nó có thể thực hiện hàm phieu(S)

Trang 11

Trước hết, chúng ta nghiên cứu hai phương pháp cho phép di chuyển ấn phong,

sau đó là giải thuật triển khai phép toán phieu Cuối cùng, ta quan tâm hai vấn đề là sử

dụng đường lan truyền và việc sao chép bộ tuần tự trên mỗi trạm

2 Bộ tuần tự di chuyển

2.1 Vòng tròn ảo

Để triển khai một ấn phong có kết quả, đầu tiên ta cần phải xác định hành trình của nó trong mạng máy tính như thế nào Phương pháp đơn giản nhất là lắp đặt các trạm nằm trên một vòng theo một chiều xác định Mỗi trạm chỉ được liên hệ với hai trạm gần nhất

Ta hãy xem xét một mạng được hoàn toàn nối với nhau có nghĩa là một tập hợp

bao gồm N trạm, trong đó một trạm có thể liên lạc với các trạm khác một cách dễ dàng Một số duy nhất bao gồm từ 0 đến N-1 được phân phối một lần cho toàn bộ trên từng trạm Trạm i đều có trạm hàng xóm phải hay còn gọi trạm kế tiếp sau mà số của trạm đó là suc[i] và hàng xóm bên trái hay còn gọi là trạm kề liền trước mà số của nó

là pred[i] Sự mô tả này cho ta hình dung một vòng tròn ảo Khi hoạt động bình thường, N trạm được thể hiện đầy đủ trên vòng tròn, lúc này ta có :

Các thuật toán được giới thiệu sau đây dựa trên nguyên tắc như sau Ấn phong được cụ thể hóa trên một vài cấu hình của các biến trạng thái và quay trên vòng tròn ảo luôn luôn theo một chiều xác định Để vòng tròn có thể hoạt động tốt, thì cần thiết phải xây dựng lại vòng tròn khi có một trạm nào đó bị sự cố Phép xử lý này gọi là cấu hình

lại bao gồm cả việc cập nhật các giá trị của suc[i] và pred[i] của các hàng xóm của

trạm bị sự cố Việc cấu hình lại mạng không khó khăn lắm, nếu trạm bị sự cố không phá huỷ hoàn toàn liên kết lô gíc Khi một trạm bị sự cố có thể hoạt động trở lại, thì phép toán chèn cho phép nó tham gia vào mạng Tốt nhất là hai phép toán cấu hình lại

và chèn được thể hiện ở tầng giao vận

2.2 Ấn phong bằng các biến trạng thái

Giải thuật đầu tiên là một giải pháp thích nghi của giải thuật Dijkstra

2.2.1 Hoạt động không sự cố

Một số nguyên K (K >1) được chọn cho tập hợp của hệ Trên trạm i (i chiếm giá trị từ 0 đến N-1), một tiến trình Pi được giao nhiệm vụ di chuyển ấn phong tuân thủ

các quy tắc sau đây :

1 Mỗi tiến trình Pi đều có biến trạng thái S[i] có thể nhận các giá trị nguyên từ

0 đến K-1

suc[i] = i + 1 modulo N pred[i] = i-1 modulo N

Trang 12

2 Mỗi biến S[i] đều được cập nhật bởi Pi và có thể đọc bởi trạm kế tiếp sau của Pi

Thuật toán di chuyển trạng thái ấn phong được thể hiện như sau :

a Tiến trình Pi có ấn phong chỉ khi :

S[i] ≠ S[i - 1] , cho i ≠ 0 S[0] - S[N - 1] , cho i = 0

b Khi tiến trình Pi có ấn phong, thì nó phải bỏ ấn phong sau một

khoản thời gian xác định và phải thay đổi trạng thái :

S[i] := S[i-1], nếu i ≠ 0 S[0] := S[0] + 1 mod K, nếu i = 0

Đó là trường hợp duy nhất mà tiến trình có thể cập nhật các biến trạng thái của

mình

Nếu tất cả các tiến trình loại Pi đều sử dụng thuật toán này, thì quyền bình đẳng

giữa các trạm được bảo đảm vì mỗi tiến trình đều được nhận ấn phong khi đến phiên mình

Ta lấy ví dụ với các giá trị N =3 và K = 2 Nếu trạng thái ban đầu của ba biến trạng thái là 000, hệ thống chuyển qua các trạng thái sau đây Ta ký hiệu dấu * là biến

của tiến trình có ấn phong

Trang 13

2.2.2 Đưa trạm bị sự cố vào lại

Để đưa một trạm bị sự cố đã khắc phục xong vào mạng, ta cần phải định lại cấu

hình vòng tròn ảo Sau đó, tiến trình cần phải khởi động lại S[i] Miễn là trạm j

=suc[i] không cho phép đọc biến S[j] của mình trong thời gian vào đoạn găng Chỉ

cần thực hiện như sau là đủ :

Nếu j < i thì S[i] := S[j] - 1 mod K

nếu không S[i] := S[j]

Kết thúc nếu

2.3 Jeton tuần hoàn

Trong thuật toán thứ hai thuộc Le Lann, ấn phong được cụ thể hóa bằng một thông điệp đặc biệt và gọi là Jeton tuần hoàn trên vòng tròn Như thế, việc sự cố trên trạm có thể dẫn đến mất Jeton Các biến trạng thái được duy trì trên mỗi trạm cho phép tái sinh jeton trong trường hợp bị mất

Thuật toán triển khai ý tưởng này là :

1 Jeton mang giá trị là v tương tự với cao độ của mặt trước trong thuật toán của Mỗi một trạm j có một biến trạng thái S[j] Trước khi phát lại jeton vào mạng, các

tác động như sau được thực hiện :

S[j] := v cho j ≠ 0

v := v +1 mod K ; S[j] := v cho j = 0

2 Mỗi một lần chuyển jeton trên trạm j , một đồng hồ bảo vệ được trang bị Nếu nó được phát động trước khi jeton đến, thì j tham chiếu đến biến trạng thái S[i] của trạm kề liền trước i = pred(i) trên vòng tròn

Nếu một trong hai điều kiện sau đây được kiểm tra,

2.4 Triển khai bộ tuần tự tuần hoàn

Hai thuật toán đã trình bày đều dựa vào sự tuần hoàn của ấn phong có thể được

sử dụng nhằm triển khai một bộ tuần tự Trong thuật toán thứ hai, ví dụ ta áp cho jeton

Trang 14

một công tơ với các giá trị nguyên mà duy nhất chỉ có trạm có jeton mới có thể tăng và tham chiếu Các giá trị xuất phát từ tham chiếu đó được xem như là kết quả của các

phép toán phieu được thực hiện trên trạm

TT /Bảng I.9/ Diễn giải

1

Khi có một tiến trình trên một trạm muốn gọi phép toán phieu(S), thì phải có

một yêu cầu đặt vào trong hàng đợi vào của TBTT Tiến trình yêu cầu đó cần phải đợi cho đến khi yêu cầu của nó xuất hiện trong hàng đợi ra của TBTT : tại thời điểm đó, yêu cầu này đã được lan truyền và nó được sắp xếp cùng với các yêu cầu khác

2

Trạm i xử lý tất cả các yêu cầu phieu(S) đang có trong hàng đợi ra của TBTT của

nó Mỗi khi có một yêu cầu đến từ một trong các trạm khác, thì trạm i sẵn sàng

tăng nội dung công tơ cục bộ của mình lên Khi có một yêu cầu nào đó đến từ

một trong các tiến trình của chính trạm i, thì tiến trình này nhận giá trị hiện hành

của công tơ cục bộ và công tơ này tăng lên một số gia

Lợi ích hiển nhiên của phương pháp đánh số không lổ hổng này là tránh được hội thoại giữa các trạm để biết số sự kiện tiếp theo sau một sự kiện đã cho Nhưng thực

tế, việc hội thoại này lại phải diễn ra để có được số hiện hành Sự khác nhau của phương pháp này và phương pháp dấu là ở chổ chịu đựng được các sự cố Trên thực

tế, các trạm bị sự cố không thể nào phục vụ số được, bộ cung cấp cần phải tìm lại số lượng và giá trị của các số đó Để thực hiện điều đó, cần phải hội thoại với các trạm khác

3 Bộ tuần tự trên kênh lan truyền

Bây giờ ta hãy xem xét trường hợp liên lạc giữa các trạm được thực hiện bởi một kênh duy nhất Các trạm nối với kênh này bởi thiết bị truyền thông (TBTT) Việc cạnh tranh truy cập đường truyền, việc xử lý các xung đột và việc nhận các thông điệp được thực hiện thông qua thiết bị này theo các kỹ thuật và công nghệ đã được trình bày trong môn học mạng máy tính Theo thiết kế, một lúc, chỉ có một thông điệp được truyền

Ta giả sử rằng mỗi TBTT truyền các thông điệp vào đường truyền theo trình tự

mà trạm liên lạc với nó xác định và dội lại trạm này các thông điệp từ đường truyền,

kể cả các thông điệp của chính nó Ngoài ra, ta còn giả định là

đường truyền không hề làm mất thông điệp và các TBTT đều sắp xếp các thông điệp theo một trật tự giống nhau Trong trường hợp này, ta có một trật tự tổng quát và

nó được thể hiện trong hình vẽ I-4

Trang 15

Để thực hiện một bộ tuần tự phân tán S , trạm i nào đó cần phải duy trì công tơ

cục bộ và thực hiện cùng một thuật toán

Thuật toán đó thể hiện như bảng I.9

Trong trường hợp có một trạm bị sự cố, các trạm khác vẫn tiếp tục hoạt động theo thuật toán nêu trên hay nói một cách giản đơn cũng có ít nhất một công tơ đang hoạt động

Để có thể tự tham gia lại công việc trong mạng sau sự cố, trạm i phải gửi yêu cầu vào lại cho một trạm nào đó trong số các trạm còn lại, ví dụ như j chẳng hạn, và

đặt mình vào trạng thái lắng nghe đường truyền trong hàng đợi ra của TBTT của mình

Trạm j sẽ gửi cho nó một thông điệp đồng bộ để cập nhật Khi thông điệp này xuất

hiện trong hàng đợi ra của TBTT, thì :

1 Trạm j là trạm cần phải gửi thông điệp cho i hiểu rằng nó phải gửi giá trị

hiện hành của công tơ của nó

2 Trạm i hiểu rằng nó có thể vào lại được trong mạng Để cho việc đó, nó bắt

đầu bằng cách lờ đi tất cả các thông điệp đến trước thông điệp đồng bộ Thông điệp đồng bộ đến sau cùng Nó lưu trữ mà không xử lý tất cả các thông điệp theo sau nó và

điều đó được duy trì cho đến khi xuất hiện giá trị hiện hành của công tơ được gửi bởi j

Sau khi thông điệp đồng bộ đến, trạm xử lý tất cả các thông điệp theo sau thông điệp đồng bộ

Trang 16

Các trạm khác không được phép can thiệp Do vậy, chúng lờ đi yêu cầu vào lại , thông điệp đồng bộ và giá trị truyền

Phương pháp cập nhật này cũng có thể được sử dụng tại các trạm để trao đổi giá trị của các công tơ trong việc kiểm tra định kỳ

Tóm lại, trạng thái của các thành phần thuộc hệ thống tin học phân tán chỉ được biết một cách không chắc chắn lắm do vì thời gian truyền thông tin trên đường truyền không cố định, tăng số lượng các trung tâm ra quyết định và đặc biệt có thể xảy ra sự

cố bất cứ lúc nào

Chúng ta đã nghiên cứu một số vấn đề về đồng bộ không chắc chắn và một số vấn đề khác trên cơ sở trật tự toàn bộ mà việc triển khai được đặt trên nền tảng đánh số

sự kiện

Chúng ta cũng đã giả định rằng việc sự cố một trạm hay một đường truyền nào

đó không là nguyên nhân gián đoạn trao đổi giữa các trạm

VIII K Ế T LU Ậ N

Thông qua chương 1 của tiểu luận, những vấn đề có tính chất cơ sở về phân tích, thiết kế, xây dựng, khảo sát - kiểm nghiệm các chiến lược đồng bộ hoá tiến trình trong hệ phân tán được trình bày Hệ phân tán với các đặc điểm quan trọng là :

1 Không sử dụng chung bộ nhớ và đồng hồ vật lý,

2 Được mắc nối với nhau thông qua hệ thống đường truyền (viễn thông), nhưng về cơ bản hệ hoạt động hoàn toàn độc lập với nhau trên bộ xử lý riêng của mình,

Trang 17

3 Các thành phần cơ bản của hệ có thể được bố trí trên một phạm vi địa lý rộng lớn,

4 Việc ăn khớp giữa các hoạt động này (còn gọi là đồng bộ hóa các hoạt động thành phần) được tiến hành thông qua trao đổi thông điệp giữa các thực thể của hệ,

5 Truy cập mang tính ngẫu nhiên, từ xa và số lượng truy cập lớn

6 Trong qua trình hoạt động, hệ có thể bị sự cố kỹ thuật

Một hệ thống với những đặc điểm như vậy là hệ thống kỹ thuật lớn, đa dạng và rất phức tạp về mặt cấu trúc mà việc nghiên cứu đồng bộ hoá các tiến trình đang hoạt động trong đó là yếu tố then chốt cho sự ổn định của toàn hệ, đặc biệt là tiến trình có nhu cầu được cung cấp tài nguyên ở xa và bản thân lời yêu cầu cung cấp cũng được tiến hành từ xa

Trang 18

CH ƯƠ NG II : SỰ GẮN BÓ DỮ LIỆU TRONG HỆ QUẢN LÝ

BÃI ĐỖ XE

I ĐẶ T V Ấ N ĐỀ

Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh

và hiệu quả để đồ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 :

1 Nhìn chung, các tiến trình kể 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

Vì vậy, tương tranh là nguyên nhân chính của các xung đột giữa các tiến trình muốn truy cập vào tài nguyên dùng chung đây là một trong những nguyên nhân phải thực hiện cơ chế đồng bộ hoá các tiến trình

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 đây là một trong những nguyên nhân phải thực hiện cơ chế đồng bộ hoá các tiến trình

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 tin 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 bỏ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung Trong

hệ thống tin học phân tán, các thông tin cần trao đổi thông qua các kênh thuộc hệ viễn thông

II TR Ậ T T Ự T Ừ NG PH Ầ N

Cần chú ý rằng, trong các hệ thống tin học tập trung, vấn đề đồng bộ hoá được giải quyết thông qua cơ chế loại trừ tương hỗ Cơ chế này cho phép sắp đặt (xác lập trật tự) hoàn toàn các sự kiện Trong thực tiễn, nói một cách chính xác, có một hệ thống vấn đề về đồng bộ hoá chỉ đòi hỏi trật tự từng phần Chính vì vậy trật tự hoá từng phần giữa các sự kiện mà các tiến trình của nó cần phải đồng bộ là vấn đề cần phải quan tâm giải quyết

Trong các hệ thống phân tán, việc đồng bộ hoá chỉ đặt ra duy nhất vấn đề 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ự đó chỉ có thể hiện được thông qua việc trao đổi các thông điệp với nhau

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 ký hiệu là → và gọi là “có trước” hay “ở ngay trước”

Quan hệ này tối thiếu phải thoã mãn được ràng buộc thể hiện trong bảng sau đây :

Trang 19

Hình vẽ II.1 sau đây cho ta một ví dụ về trật tự hoá từng phần của các sự kiện trong hệ thống

Ràng buộc C2 nói lên nguyên tắt nhân quả

Quan hệ có trước xác định một trật tự từng phần trên tập hợp các sự kiện của hệ

và trật tự này có thể hiện trong hình vẽ trên

C1 : Nếu A và B là hai sự kiện của cùng một trạm và nếu A được thực hiện trước B thì theo trật tự cục bộ của trạm ta có A → B

C2 : Nếu A là phát thông điệp bởi một trạm nào đó và nếu B là thu của thông điệp này thì ta có A → B

A1 A2 A3 A4 A5

B1 B2 B3 B4

B5

t

Ngày đăng: 23/03/2015, 21:35

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w