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

Tiểu luận hệ phân tán Đồng bộ hóa bằng phương pháp trật tự

15 235 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 15
Dung lượng 120,5 KB

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

Nội dung

Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán distributed system là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết v

Trang 1

LỜI MỞ ĐẦU

Trong thời đại hiện nay, ngành công nghệ thông tin phát triển vô cùng mạnh mẽ Đặc biệt sự bùng nổ của mạng Internet cùng với các ứng dụng của nó đã giúp cho con người chúng ta khai thác tài nguyên một cách thuận tiện và nhanh chóng 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 cũng đóng vai trò hết sức quan trọng Trong phạm vi của tiểu luận này tôi chỉ đề cập đến một khía cạnh nhỏ trong hệ tin

học phân tán đó là: “Đồng bộ hóa bằng phương pháp trật tự”.

Tôi xin chân thành cảm ơn thầy: PGS.TS Lê Văn Sơn đã giúp tôi hoàn thành tiểu

luận này

Thực hiện

Nguyễn Quốc Vương

Trang 2

PHẦN I CƠ SỞ LÝ THUYẾT

Chương 1 Giới thiệu vài nét về hệ phân tán

1.1 Giới thiệu hệ tin học phân tán

Hệ tin học phân tán là hệ thống rất đa dạng, đa diện, phức tạp về mặt cấu trúc, là vùng tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan tâm

và đổi mới rất nhanh chóng Trong điều kiện đó, hiện nay, đứng trên những 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 nêu liền sau đây

Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (distributed system) là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.

Từ định nghĩa trên, ta có thể xem hệ phân tán như là một 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 Đ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

Vậy, trong hệ phân tán cần phải có cơ chế kỹ thuật đủ mạnh 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.

1.2 Mạng máy tính Phân tán

Hệ thống tính toán phân tán đã tạo được bước ngoặc vĩ đại so với các hệ tập trung,

và hệ khách chủ (Client/Server) Việc tính toán phân tán về cơ bản cũng giống như việc

tính toán của hệ khách chủ trên phạm vi rộng lớn Dữ liệu được chứa trên nhiều máy chủ ở tại nhiều vị trí địa lý khác nhau kết nối nhau thông qua mạng diện rộng WAN hình thành các nơi làm việc, các phòng ban, các chi nhánh của một cơ quan

Tính toán phân tán hình thành từ tính toán tập trung và Client/Server Các mạng

được xây dựng dựa trên kỹ thuật Web (Ví dụ: Internet; intranet…) là các mạng phân tán

Hệ thống cơ sở dữ liệu back-end có thể được nối kết với các server Web để lấy được các thông tin động Kỹ thuật Web này đã mở ra hướng mới cho hệ phân tán Các trình duyệt

Trang 3

khống chế bởi bất kỳ hệ điều hành nào đang chạy trong máy của khách hàng này Một xu

hướng mới khi xây dựng các Intranet là dữ liệu phải được tập trung hóa tại một nhóm

các máy chủ để có khả năng đáp ứng cùng một lúc cho nhiều người dùng Giờ đây các hệ thống mainframe đã thật sự trở lại vì tính năng xử lý mạnh mẽ Xu hướng này có lẽ trái ngược với việc tính toán phân tán nhưng trong thực tế chúng cùng tồn tại bên nhau

1.3 Các điểm mạnh trong hệ tin học phân tán

Cơ chế tính toán phân tán hỗ trợ truy cập các dữ liệu được lưu ở nhiều nơi

Nhờ cơ chế nhân bản nên người dùng chỉ cần truy cập cục bộ cũng lấy được các thông tin từ các trung tâm chính ở rất xa

Hệ thống này khắc phục được các hiểm họa địa phương Vì nếu chúng ta không truy cập dữ liệu được tại vị trí này, chúng ta có thể thử ở nơi khác

Dữ liệu phân tán đòi hỏi phải được nhân bản và đồng bộ hóa cao thông qua các mối liên kết mạng, điều này làm cho việc quản trị và giám sát phức tạp hơn Một số nhà quản trị cho rằng, ở hệ thống như thế này sẽ gây khó khăn trong vấn đề bảo mật và điều khiển

Hệ phân tán được xây dựng trên giao thức TCP/IP và các kỹ thuật Web cùng với các ứng dụng trung gian (middleware) thúc đẩy việc tính toán phân tán Quả thật đây là một đổi thay mang tính cách mạng Nhiệm vụ trước mắt là làm thế nào để chuyển tiếp sang hệ nầy một cách khoa học

Cơ chế Client/Server cung cấp kiến trúc phù hợp cho việc dàn trải hệ thống phân tán Mô tả nhiều cách truy cập trong các hệ thống phân tán Các máy Mainframe sẽ dùng

để lưu trữ các dữ liệu di sản hoặc đóng vai trò kho dữ liệu (data warehouse) Cơ chế nầy giúp xây dựng các trung tâm dữ liệu staging (công bố), phục vụ tốt cho việc truy cập Người dùng ở xa có thể truy cập dữ liệu trên hệ staging hay tại các máy chủ cục bộ Người dùng còn có thể trao đổi thông tin với nhau bằng thư điện tử và hình thành các nhóm công tác

1.4 Xử lý Phân tán

Có hai khái niệm xử lý phân tán và có liên quan với nhau Khái niệm thứ nhất liên quan đến việc tính toán trên hệ Client/Server Trong đó ứng dụng được chia ra thành hai phần, phần của server và phần của client và được vận hành ở hai nơi Trong tính toán phân tán nầy cho phép truy cập trực tiếp dữ liệu trên đĩa và xử lý các thông tin trên đĩa cho các client

Khái niệm thứ hai là việc thực hiện các tác vụ xử lý phức tạp trên nhiều hệ thống Không gian nhớ và bộ xử lý của nhiều máy cùng hoạt động chia nhau tác vụ xử lý Máy

Trang 4

trung tâm sẽ giám sát và quản lý các tiến trình nầy Có trường hợp thông qua Internet, hàng nghìn máy cùng xử lý một tác vụ

1.5 Các Mô hình ứng dụng Phân tán

Có một số mô hình trong xây dựng ứng dụng phân tán, và cung cấp cách giao tiếp giữa các client, các server, các thành phần chương trình gồm:

RPC (remote procedure call) Giao thức truyền thông theo phiên giữa các máy được kết nối giữa các mạng RPCs thường được sử dụng trong các thao tác cần thời gian thực, hướng kết nối

Messaging services Dịch vụ thông điệp còn gọi là dịch vụ MOM (message-oriented middleware)-cung cấp một phương thức trao đổi thông tin giữa các ứng dụng và các thành phần dùng hàng đợi và cách chuyển thông điệp theo từng bước (store-and-forward) Cách này không phù hợp với truyền thông trong thời gian thực

ORB (object-request broker) Một tác nhân kiểm soát truyền thông, cho phép các đối tượng được phép truyền thông lên mạng Ví dụ một đối tượng đang chạy trên client nào

đó nếu muốn gửi một thông điệp cho một đối tượng khác đang chạy trên server, ta có thể gửi thông điệp từ giao diện ORB của client đến cho giao diện ORB của server

Trang 5

Chương 2 Đồng bộ hóa bằng phương pháp trật tự

Trong phạm vi của tiểu luận này, tôi tập trung nghiên cứu một phương pháp đồng

bộ hóa tương đối đơn giản nhưng khá hiệu quả đó là “ Đồng bộ hóa bằng phương pháp trật tự ”

Trong mô hình đồng bộ hoá bằng phương pháp trật tự có 2 phương pháp mà ta đặc biệt chú ý quan tâm và nghiên cứu kỹ là:

+ Đồng bộ hóa bằng phương pháp trật tự từng phần

+ Đồng bộ hóa bằng phương pháp trật tự tổng quát chặt chẽ

2.1 Đồng bộ hóa bằng phương pháp trật tự từng phần

Trong các hệ thống tin học tập trung vấn đề đồng bộ hóa được giải quyết thông qua

cơ chế loại trừ tương hỗ Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện Trong thực tiễn, có một số hệ thống vấn đề về đồ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à các tiến trình của nó cần phải đồng bộ là vấn đề cần quan tâm giải quyết

Trong các hệ thống phân tán, việc đồng bộ hóa 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ỉ 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” Quan hệ này tối thiểu phải thỏa mãn

được các ràng buộc thể hiện qua hai cách:

+ 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

+ 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

Xét mô hình quen thuộc trong phần nguyên lý hệ điều hành là người sản xuất-người tiêu thụ, trong đó khả năng tiêu thụ là nguyên nhân chính hạn chế số lượng hàng hóa sản xuất ra để nó không vượt quá số lượng tiêu thụ một giá trị lớn hơn N Người sản xuất P

và người tiêu thụ C là hai người nằm trên hai trạm cách xa nhau

Giả sử rằng NP là số lượng sản xuất ra và NC là số lượng tiêu thụ tại thời điểm khởi

sự C chỉ tiêu thụ được một sản phẩm, nếu sản xuất sản phẩm đó đã diễn ra, có nghĩa là, nếu

NP – NC > 0 Tương tự, P chỉ sản xuất một thông tin, nếu

NP – NC < N

Trang 6

Hai quan hệ này thể hiện các điều kiện của việc đồng bộ hóa và có thể mô tả trong hình sau:

Trong hệ thống tin học phân tán, người ta có thể vận dụng hợp lực này theo kiểu như sau:

+ Trên trạm P một biến NP Thể hiện số lượng chính xác sản xuất đã có

+ Trên trạm C một biến NC thể hiện số lượng chính xác tiêu thụ đã thực hiện

+ Trên trạm P một biến NC’ ảnh của NC mà P gia tăng mỗi một lần nó nhận được thông điệp từ C báo cho nó biết là tiêu thụ mới đã diễn ra

+ Trên trạm C một biến NP’ ảnh của NP mà C gia tăng mỗi một lần nó nhận thông điệp từ P báo cho nó biết một sản xuất mới đã diễn ra

Ta sẽ chứng minh rằng một sự đồng bộ hóa chính xác được đảm bảo bằng việc xác nhận trên mỗi trạm các điều kiện sau đây:

1/ Trên trạm sản xuất:

NP’ – NC > 0 2/ Trên trạm tiêu thụ:

NP – NC’ < N

Ta có thể viết:

NP = NP’ + np, với np>= 0 Trong đó, np số lượng thông tin đã sản xuất bởi P mà C không biết

Pi+N+1

P i : Sản xuất thứ i

C i : Tiêu thụ thứ i

Hình 2: Quan hệ có trước trong mô hình người sản

xuất-người têu thụ

Trang 7

NC = NC’ + nc, với nc >= 0 Trong đó, nc số lượng thông tin đã tiêu thụ bởi C mà P không biết

Ta có thể khái quát hóa phương pháp này cho điều kiện đồng bộ hóa bằng công thức:

3/ ∑CiXi>K (theo i)

Trong đó, Ci và K là các hằng số Ta hoàn toàn có khả năng và điều kiện mạnh hơn bằng cách thay thế tất cả các Xi mà hệ số của nó là đại lượng dương bằng các ảnh của nó X’i , nếu và chỉ nếu các Xi là các biến không lùi

Vì nguyên nhân xa cách giữa người sản xuất và người tiêu thụ mà trật tự tổng quát này không cần thiết và chỉ cần sủ dụng để đồng bộ hóa các bản sao các biến trạng thái gần đúng là đủ

Trong hệ thống người sản xuất - người tiêu thụ, nếu N=1, thì có sự liên kết chặt chẽ giữa hai tiến trình cho phép xác định một trật tự chặt chẽ giữa các sự kiện

Cơ chế đồng bộ ở đây là dùng các công tơ sự kiện phù hợp với từng vấn đề đặt ra.

Mỗi một công tơ, biến nguyên không lùi, được kết hợp với một nhóm đặt biệt các sự kiện

Trên một công tơ sự kiện nào đó có phối hợp với nhóm E nào đó, được xác định bởi

ba hàm nguyên thủy:

+ Tang_len(E) : Tăng nội dung công tơ lên 1 đơn vị Cũng có nghĩa là một sự kiện

nhóm E đến

+ Truy_van(E): Cung cấp giá trị hiện hành của công tơ phối hợp với E

+ Cho(E,n): Treo tiến trình gọi chừng nào giá trị công tơ còn nhỏ hơn n

Mỗi công tơ được khởi động ngay khi thành lập nó Việc triển khai các công tơ sự kiện có thể được thực hiện bằng cách giao cho bộ xử lý duy nhất đảm trách việc điều khiển toàn bộ công việc này

2.2 Đồng bộ hóa bằng phương pháp trật tự tổng quát chặt chẽ

Phương pháp này được áp dụng trong một số trường hợp cần phải sắp xếp toàn bộ theo kiểu chặt chẽ các sự kiện của hệ Nguyên lý của phương pháp này được khái 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

Trang 8

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à kiế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 thông điệp, chuyển theo các kênh của hệ thống viễn thông Chính vì vậy nhu cầu sắp xếp các yêu cầu này theo một trật tự nhất định nào đó luôn luôn được đặt ra

Nếu chỉ có một thông điệp đến chương trình cung cấp thì trật tự đến thể hiện một trật tự chặt chẽ Ngược lại nếu có nhiều thông điệp đến cùng một lúc thì việc sắp xếp chúng phải theo kiểu loại trừ trương hỗ trong hàng đợi cục bộ của trạm có chứa chương trình cung cấp Điều đó cũng cho phép ta có được một trật tự chặt chẽ

Trật tự có được tại trạm cung cấp có thể không giống như trật tự phát, nếu thời gian truyền không được cố định Trường hợp này khá phổ biến trong mạng máy tính Nhưng nếu ta muốn xử lý các thông điệp theo trình tự không tính tới thời gian truyền, thì cần phải tính đến một trật tự tổng quát của các lần truyền thông điệp từ các trạm khác nhau Những cơ chế thể hiện chức năng này được mô tả sau đây:

Giải thuật được trình bày ở đây là giải thuật Lamport nhằm cho phép ghi lại các sự kiện của hệ tin học phân tán

Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là Hs Đó chính là đồng hồ logic tăng lên giữa hai sự kiện kế tiếp Trạm e phát thông điệp ghi dấu E của mình dựa trên giá trị hiện hành của He Khi nhận được thông điệp, trạm nhận r cập nhật đồng hồ Hr riêng của mình bằng giải thuật sau đây:

Nếu Hr thì

Hr := E+1 Kết thúc nếu

Sự kiện “nhận thông điệp” lúc này được ghi nhận bằng giá trị của Hr Thuật toán này đảm bảo rằng thời gian nhận thông điệp là sau thời gian phát nó đi Thời gian này cho phép xác định một quan hệ trật tự toàn bộ mà ta đã ký hiệu  và cho phép kiểm tra được các điều kiện trong C1 và C2

Một sự kiện a sinh ra trong trạm i và được đánh dấu bởi đồng hồ cục bộ gọi là

Hi(a) Nếu a và b đều là hai sự kiện trên hai trạm i và j, ta luôn luôn có quan hệ xác định như sau:

a  b ⇔ Hi(a) < Hi(b)

Trang 9

Đó là trật tự không chặt chẽ do hai sự kiện trên hai trạm khác nhau có thể đến cùng một thời điểm giống nhau Ta có thể mở rộng quan hệ  thành quan hệ trật tự chặt chẽ

⇒ bằng cách kết hợp một số khác cố định cho mỗi trạm và bằng cách đánh dấu thời gian cho mỗi sự kiện a của trạm i bằng cặp (Hi(a),i) Theo định nghĩa ta có:

a ⇒ b ⇒ (Hi(a) < Hi(b)) hay

(Hi(a) = Hi(b) và i<j)

2.3 Kết Luận:

Trong hệ thống tin học phân tán các thành phần trạng thái của hệ được biết một cách không chắc chắn, vì thời gian truyền thông tin trên đường truyền không cố định, thời gian trể trong quá trình truyền giữa các trạm cũng khác nhau, nên độ rủi ro về mất thông tin trên hệ phân tán khá cao Vì vậy việc thiết kế một hệ thống phân tán hiệu quả là một vấn đề khó, cần phải quan tâm đến nhiều khía cạnh khác nhau Trong số đó vấn đề

về đồng bộ hóa giữa các tiến trình trong hệ là hết sức quan trọng và cần đặt biệt chú ý đến Nếu xây dựng giải pháp đồng bộ hóa giữa các tiến trình tốt thì việc trao đổi dữ liệu giữa các trạm trong hệ cũng thông suốt và vấn đề treo hệ thống là ít xảy ra Đảm bảo thông suốt về mặt dữ liệu và đáp ứng thời gian thực về mặt truyền thông

Có nhiều giải pháp đồng bộ hóa, trong đó đồng bộ hóa bằng phương pháp trật tự được ứng dụng nhiều trong các hệ tin học phân tán, được triển khai trên nền tảng đánh số

sự kiện thông qua các công tơ sự kiện, giúp quản lý dễ dàng việc truy xuất tài nguyên dùng chung

Trang 10

PHẦN II BÀI TẬP

Trên cơ sở kiến thức đã lĩnh hội trong phần công tơ sự kiện, ta hãy chứng minh các quan hệ có trước:

sản xuất thứ i → tiêu thụ thứ i → sản xuất thứ (i + N)

Nhằm phục vụ mục đích này, ta thành lập hai hàm nguyên thủy sau:

tang(E) – tăng lên 1 đơn vị cho công tơ đếm

cho(E,i) – treo cho đến khi lớn hơn hay bằng i

Phép toán thứ i: tang(E) → cho(E,i)

Giải quyết bài toán:

Trong bài toán này ta xét hai trạm là trạm sản xuất, ký hiệu là PS và trạm tiêu thụ,

ký hiệu là CS

Ta gọi NP số lượng sản phẩm đã được sản xuất ra trên trạm sản xuất PS và NC là số lượng sản phẩm đã được trạm CS tiêu thụ

Tại trạm sản xuất PS ta đặt thêm một công tơ NC’ Trạm PS sẽ tăng giá trị của công

tơ sự kiện NC’ thêm 1 đơn vị mỗi khi nhận được thông điệp từ trạm CS thông báo cho biết đã tiêu thụ thêm một sản phẩm

Tương tự, trên trạm CS ta đặt một công tơ NP’ Giá trị của công tơ sự kiện NP’ được tăng lên một đơn vị khi trạm CS nhận được thông điệp từ trạm PS thông báo đã có một sản phẩm vừa được sản xuất

Để giải quyết bài toán đã nêu ra, ta sử dụng một số hàm nguyên thủy sau:

tang(E) : tăng giá trị công tơ lên một đơn vị

cho(E,i) : treo cho đến khi giá trị của công tơ sự kiện E lớn hơn hoặc bằng i send(S): gửi thông điệp đến trạm S.

receive(S): nhận thông điệp từ trạm S.

Theo giả thiết của bài toán, trạm sản xuất PS chỉ có thể sản xuất sản phẩm nếu:

NP – NC’ < N

và trạm tiêu thụ CS chỉ có thể tiêu thụ sản phẩm nếu:

NP’ – NC > 0

với: NP: số lượng sản phẩm đã sản xuất bởi trạm PS

NC: số lượng sản phẩm đã tiêu thụ bởi trạm CS

NC’: công tơ sự kiện tiêu thụ đặt trên trạm sản xuất PS

NP’: công tơ sự kiện sản xuất đặt trên trạm tiêu thụ CS

Ta gọi Pi là sản xuất thứ i và Ci là tiêu thụ thứ i

Ta thấy rằng:

Ngày đăng: 23/03/2015, 18:45

TỪ KHÓA LIÊN QUAN

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