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

báo cáo tiểu luận môn lập trình mạng viết chương trình cài đặt thuật toán lamport trên n server

19 769 3

Đ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 19
Dung lượng 363,5 KB

Nội dung

Nội dung trình bày  Yêu cầu bài toán  Hướng giải quyết bài toán  Thuật toán loại trừ tương hỗ  Thuật toán Lamport cải tiến Ricart-Agrawala  Cách xác định giá trị đồng hồ logic  Xây

Trang 1

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TIỂU LUẬN MÔN HỌC

LẬP TRÌNH MẠNG

Đề tài :

VIẾT CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN LAMPORT TRÊN n

SERVER, n>3

SERVER, n>3

GVHD: PGS.TS LÊ VĂN SƠN HVTH: Trần Ngọc Chinh

LỚP: KHMT – K17

GVHD: PGS.TS LÊ VĂN SƠN HVTH: Trần Ngọc Chinh

LỚP: KHMT – K17

Trang 2

Nội dung trình bày

 Yêu cầu bài toán

 Hướng giải quyết bài toán

 Thuật toán loại trừ tương hỗ

 Thuật toán Lamport cải tiến (Ricart-Agrawala)

 Cách xác định giá trị đồng hồ logic

 Xây dựng cấu trúc các thông điệp

 Kết luận

 Demo chương trình

Trang 3

Yêu cầu bài toán

 Viết chương trình cài đặt thuật toán Lamport trên n SERVER, n>3

 Xây dựng đa server theo kiểu ngang hàng và có khả năng phát và nhận thông điệp

 Xây dựng cấu trúc các loại thông điệp trao đổi giữa các server

 Xây dựng đoạn chương trình sắp xếp các thông điệp đến căn cứ vào giá trị đồng hồ Lamport

 Xây dựng chương trình quan sát trình tự sắp xếp tại các server trên màn hình

Trang 4

Hướng giải quyết

 Sử dụng thuật toán loại trừ tương hỗ

 Sử dụng thuật toán Lamport cải tiến (Ricart-Agrawala)

 Xây dựng cấu trúc thông điệp trao đổi giữa các Server

 Viết chương trình demo dựa trên nền tảng lý thuyết và ngôn ngữ Java

Trang 5

Thuật toán loại trừ tương hỗ

Một tiến trình khi sử dụng xong tài nguyên, sẽ truyền một thông điệp giải phóng đến các tiến trình

khác

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

Trang 6

Giới thiệu thuật toán

 Ricart-Agrawala là một thuật toán để loại trừ lẫn nhau trên một hệ phân tán

 Là một thuật toán mở rộng và tối ưu hóa của Lamport, bằng cách loại bỏ được sự cần thiết phải phát hành các tin nhắn

 Được phát triển bởi Glenn Ricart và Ashok

Thuật toán Ricart-Agrawala

Trang 7

Thuật toán Ricart-Agrawala (tt)

Nội dung thuật toán

Khi Pi yêu cầu tài nguyên:

Tiến trình Pi gửi thông điệp Request(t i ,i) đến tất

cả các tiến trình kể cả bản thân nó

Khi một tiến trình Pk nào đó nhận được yêu cầu

từ Pi:

Pk sẽ gửi thông điệp Reply cho Pi nếu: tài nguyên đang

rỗi hoặc là yêu cầu được phát sinh sớm nhất.

Còn lại yêu cầu sẽ bị trì hoãn (deferred).

Trang 8

Thuật toán Ricart-Agrawala (tt)

Khi Pi yêu cầu tài nguyên:

P1

P2 P3

Request(P1,8) Request(P1,8) Request(P1,8)

1

1

1

Request(P2,12)

Request(P2,12)

Request(P2,12)

2

2

2

Tiến trình P1 yêu cầu tài nguyên

Trang 9

Thuật toán Ricart-Agrawala (tt)

Khi Pi yêu cầu tài nguyên

P1

P2 P3

1

1

1 2

2

2

Quá trình phản hồi từ các tiến trình

Reply(is OK) Reply(is OK) Reply(is OK)

Yêu cầu bị trì hoãn

Yêu cầu bị trì hoãn

Trang 10

Thuật toán Ricart-Agrawala (tt)

Khi và chỉ khi tiến trình đó nhận được thông

điệp Reply từ tất cả các trạm.

Khi Pi giải phóng tài nguyên:

 Khi Pi giải phóng tài nguyên, nó sẽ gửi thông điệp

Release lại cho các tiến trình đang bị trì hoãn

trước đó

Trang 11

Thuật toán Ricart-Agrawala (tt)

Khi giải phóng tài nguyên

P1

P2 P3

2

2

Release(is OK)

Trang 12

Cách xác định giá trị đồng hồ logic

Bước 1: Tất cả các trạm (tiến trình - P i) sử dụng một

bộ đếm (đồng hồ - C i) với giá trị khởi tạo là 0

Bước 2: Trước khi xử lý một sự kiện (gửi, nhận

hoặc ngắt), Pi xử lý như sau: tăng bộ đếm và gán cho mỗi sự kiện, như là thời gian đánh dấu (timestamp) của nó

Ci = Ci + d (d>0, thường d=1)

Bước 3: Mỗi thông điệp mang giá trị đồng hồ của

tiến trình gửi nó tại thời điểm gửi Khi Pi nhận một thông điệp với timestamp Cmsg, nó xử lý như sau:

1 Ci = Max(Ci, Cmsg)

2 Phát thông điệp.

3 Quay về Bước 2.

Trang 13

Cách xác định giá trị đồng hồ logic (tt)

Ví dụ về thời gian logic Lamport

Trạm 1

Trạm 2

Trạm 3

Trạm 4

0

0

2

2

3

3

4

5

7 8

7

Thời gian vật lý

n Giá trị đồng hồ.

timestamp

Thông điệp

0

1

2

3 4

6

8

7

Các sự kiện logic đồng thời

Trang 14

Xây dựng cấu trúc các loại thông điệp

Thiết kế cấu trúc chung của các thông điệp

Lamport @$ ServerRecei "|" ServerSend "|” CodeMess "|” Data $@

Trong đó:

Lamport: Trường giá trị của đồng hồ Lamport ServerRecei: Trường tên Server nhận dữ liệu ServerSend: Trường tên Server gửi dữ liệu CodeMess: Trường thể hiện mã loại thông điệp Data: Lưu trữ phần dữ liệu chính của thông điệp cần gửi (nếu có)

Trang 15

Xây dựng cấu trúc các loại thông điệp(tt)

Trang 16

Kết luận

 Nắm được các lý thuyết cơ bản về hệ phân tán

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

 Tìm hiểu nguyên lý đồng bộ hóa các tiến trình

trong hệ tin học phân tán

 Nắm được thuật toán đồng bộ hóa các tiến trình Lamport và thuật toán Ricart-Agrawala

 Xây dựng cấu trúc của các thông điệp

 Thiết kế thành công đa server theo kiểu ngang

hàng có khả năng phát và nhận thông điệp

 Cài đặt chương trình sắp xếp các thông điệp đến căn cứ vào giá trị của đồng hồ lamport

 Giám sát trình tự sắp xếp tại các server

Trang 17

Kết luận

 Chưa khắc phục được hiện tượng tràn bộ nhớ khi hoạt động ở chế độ tự động

 Chưa kiểm soát tối ưu các thông điệp đến và đi khi đồng thời có nhiều thông điệp phát sinh

Hướng phát triển

 Khắc phục những hạn chế trên

 Nghiên cứu thêm các thuật toán tối ưu để đồng

bộ hóa các tiến trình

 Đề tài này làm cơ sở để có thể xây dựng các

chương trình ứng dụng về hệ phân tán vào thực tế

Trang 18

DEMO CHƯƠNG TRÌNH

Trang 19

XIN CHÂN THÀNH

CÁM ƠN !!!

Ngày đăng: 31/01/2015, 23:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w