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

báo cáo môn lập trình mạng nâng cao lập trình bằng các phương pháp phân tán để điều khiển bãi đổ xe

35 540 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 35
Dung lượng 0,99 MB

Nội dung

ĐỀ TÀI :LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE BÁO CÁO TIỂU LUẬN LẬP TRÌNH MẠNG Giáo viên hướng dẫn : PGS.TS Lê Văn Sơn Người thực hiện : Lê Quốc Dũng Lớp : Kho

Trang 1

BÁO CÁO TIỂU LUẬN

LẬP TRÌNH MẠNG

Trang 2

ĐỀ TÀI :

LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP

PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

BÁO CÁO TIỂU LUẬN LẬP TRÌNH MẠNG

Giáo viên hướng dẫn : PGS.TS Lê Văn Sơn Người thực hiện : Lê Quốc Dũng

Lớp : Khoa học máy tính Khoá : K16

Trang 3

Giới thiệu đề tài

 Mục tiêu nghiên cứu của đề tài nhằm tìm hiểu về sự gắn bó dữ liệu

và lập trình bằng phương pháp phân tán để điều khiển bãi đổ xe, dựa trên đồng hồ lôgíc để giải quyết trình tự cập nhật thông tin nhất thiết phải giống nhau trên các trạm trong hệ phân tán

 Nội dung chủ yếu trình bày của đề tài được phân bố trên ba chương :

- Chương 1 : Phần cơ sở lý thuyết những vấn đề chung nhất của hệ tin học

phân tán làm cơ sở cho các phần sau của đề tài

- Chương 2 : Nội dung của bài toán hệ quản lý bãi đổ xe và nêu ra những vấn đề không gắn bó dữ liệu trên các trạm

- Chương 3 : Lập trình bằng phương pháp phân tán để điều khiển bãi đổ xe

Những nguyên lý và thuật toán sắp xếp các thông điệp đến dựa trên đồng hồ lôgíc (nội dung của giải thuật được trình bày theo giải thuật Lamport)

Trang 4

II SỰ GẮN BÓ DỮ LIỆU TRONG HỆ

QUẢN LÝ BÃI ĐỖ XE

II.1 Đặt vấn đề

•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

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.

Trang 5

II SỰ GẮN BÓ DỮ LIỆU TRONG HỆ

QUẢN LÝ BÃI ĐỖ XE

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

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

Trang 6

II SỰ GẮN BÓ DỮ LIỆU TRONG HỆ

Trang 7

II SỰ GẮN BÓ DỮ LIỆU TRONG HỆ

QUẢN LÝ BÃI ĐỖ XE

II.3 GIẢ ĐỊNH CÁC ĐIỀU KIỆN CHUNG

• Các hệ phân tán được xây dựng trên cơ sở các trạm làm việc được mắc nối với nhau (nối mạng) Mỗi một trạm có bộ nhớ riêng của mình

và tuyệt đối không có bộ nhớ chung.

1 H1 Một trạm trong các trạm đều có thể liên lạc với các trạm còn lại

trong hệ

2 H2 Không có lỗi truyền thông tin và không mất thông điệp

3 H3 Trật tự nhận trên trạm j của dãy các thông điệp cũng giống như

chính tại trạm I là giống với trật tự của nơi phát

4 H4 Sự cố hay gián đoạn vật lý tại một trạm nào đó được phát hiện sẽ

lập tức thông báo đến tất cả các trạm có ý định liên lạc với nó

Trang 8

II SỰ GẮN BÓ DỮ LIỆU TRONG

VT VT

Trong bài toán

- Bãi đậu xe chính là tài nguyên

- Xe chính là các tiến trình

- Nếu một cửa là tập trung còn nhiều của sẽ diến ra tranh

chấp

Trang 9

II SỰ GẮN BÓ DỮ LIỆU TRONG

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 được cho các xe khác tiếp tục đượ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

Trang 10

II SỰ GẮN BÓ DỮ LIỆU TRONG

trạng thái với độ trễ nhất định và điều đó dn đến tình huống thứ

2 Đó là tình huống có nhiều trung tâm ra quyết định như trong hình vẽ

Trên thực tế một người bảo vệ nào đó tin rằng không còn chỗ trống nữa, trong khi một người bảo vệ khác lại vừa mới cho ra khỏi bãi một số xe mà anh ta chưa kịp báo cho các người bảo vệ 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

Trang 11

II SỰ GẮN BÓ DỮ LIỆU TRONG

HỆ QUẢN LÝ BÃI ĐỖ XE

II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE

Tình huống thứ 3 :

Giả sử rằng ở thời điể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 lúc này của hệ là gắn bó Ba trong số họ phát đi các thông tin

Trang 12

Bảo vệ 1 Bảo vệ 2 Bảo vệ 3

Hình II.3 : Thời hạn truyền và nhận thông điệp có trật tự

II SỰ GẮN BÓ DỮ LIỆU TRONG

Trang 13

II SỰ GẮN BÓ DỮ LIỆU TRONG

Trang 14

II SỰ GẮN BÓ DỮ LIỆU TRONG

HỆ QUẢN LÝ BÃI ĐỖ XE

II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE

Tình huống thứ 4 :

Giả sử rằng ở thời điể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 lúc này của hệ là gắn bó Ba trong số họ phát đi các thông tin

Trang 15

II SỰ GẮN BÓ DỮ LIỆU TRONG

Trang 16

II SỰ GẮN BÓ DỮ LIỆU TRONG

HỆ QUẢN LÝ BÃI ĐỖ XE

II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE

Bảng II.1 : Sự không gắn bó giữa bốn người bảo vệ

Giá Trị Thông điệp Giá Trị Thôn g

điệp

Giá Trị Thôn g

điệp

Giá Trị

Trang 17

II SỰ GẮN BÓ DỮ LIỆU TRONG

HỆ QUẢN LÝ BÃI ĐỖ XE

II.6 KẾT LUẬN

Trong bài toán hệ quản lý đổ xe việc không gắn bó dữ liệu luôn luôn xảy ra ở các trạm nếu không có một cơ chế để thực hiện đồng bộ hoá các tiến trình (cho phép các ô tô vào bãi đậu theo một trình tự) Khi thực hiện phân tán chức năng cung cấp trên nhiều trạm khác nhau (các bảo vệ) 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 để đảm bảo cho hoạt động cung cấp hoàn toàn chính xác Trên cơ

sở phân tích bài toán ở trên chúng ta nhận thấy vấn đề không gắn bó dữ liệu trên các hệ phân tán cần phải có cách giải quyết thích hợp Phương pháp giải quyết vấn

đề này được nêu lên ở phần tiếp theo.

Trang 18

III SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN DỰA TRÊN ĐỒNG HỒ LOGIC

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

III 1 CƠ SỞ LÝ THUYẾT

III.1.2 Các quy tắc

Trang 19

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

Queue: là một danh sách tuyến tính mà phép thêm được

tiến hành một đầu danh sách, phép loại bỏ được tiến hành tại đầu còn lại của danh sách Queue còn gọi là danh sách

FIFO (First In First Out)

III 1 CƠ SỞ LÝ THUYẾT

III.1.2 HÀNG ĐỢI

Trang 20

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

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 Giải thuật này nhằm giải quyết vấn đề trình tự (vấn đề mấu chốt của hệ phân tán) dựa trên giá trị đồng hồ lo gích để sắp xếp các thông điệp đến.

Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là Cs Đó chính là đồng hồ lô gích 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 r cập nhật đồng hồ Cr riêng của mình bằng giải thuật sau đây :

III.2 GIẢI THUẬT

Nếu Cr, thì

Cr := Ce +1 Chấm dứt nếu

Trang 21

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

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à Ci(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 :

III.2 GIẢI THUẬT

a  b  Ci(a) < Ci(b)

Đó là trật tự không chặt chẽ do vì 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.

Trang 22

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

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 (Ci(a),i).

Theo định nghĩa, ta có :

a  b  (Ci(a) < Ci(b)) hay (Ci(a) = Ci(b) và i<j)

III.2 GIẢI THUẬT

Trang 23

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

Giả thiết

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

III.2 TRÌNH BÀY GIẢI THUẬT

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 i cho trạm j đã nhận

được từ trạm i thông điệp REQ.

Trang 24

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

2.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 :

Mi = (REL, Cinit , i)

Trong đó, i, C init là thời điểm khởi sự giống nhau cho tất cả các trạm.

III.2 TRÌNH BÀY GIẢI THUẬT

Trang 25

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.2 GIẢI THUẬT

Tiêu chí để sắp xếp dựa vào Ci

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.

Thuật toán được mô tả theo sơ đồ sau :

Khởi tạo hàng đợi, mỗi máy tự phát thông điệp

Mi = (REL, Cinit , i)

Trang 26

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.2 GIẢI THUẬT

+ Khi trạm đang truy cập vào tài nguyên

- Để truy cập vào tài nguyên một trạm nào đó sẽ phát một thông điệp

yêu cầu M i (T,C i ,i) đến tất cả các trạm khác và đưa yêu cầu vào hàng

đợi yêu cầu của trạm này.

- Khi trạm j nhận thông điệp yêu cầu từ i, nó sẽ gởi ngược lại thông

điệp (có chứa đồng hồ logic C j ) cho trạm j và đưa yêu cầu này vào

trong hàng đợi yêu cầu của nó.

If (state =muon) and (T, C j ,j) < (T i , C i ,i) then Begin

Send M(T,C j ,j) đến trạm i INSERT(M i ,hàngđợi) ‘được sắp xếp theo H End

Trang 27

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.2 GIẢI THUẬT

+ Khi trạm đang thực thi yêu cầu

Trạm i nhận một thông điệp với đồng hồ logic lớn hơn đồng hồ

ở thời điểm hiện tại của trạm i và yêu cầu của trạm i đang ở vị trí của

hàng đợi yêu cầu của nó.

If (C>C i ) and (Vị trí M ở đầu của hàng đợi) then state=namgiu

+ Khi trạm không thực hiện gì cả

Xoá yêu cầu và gởi thông điệp giải phóng những trạm khác sẽ loại bỏ yêu cầu tương ứng

If state=ranh then xử lý(các thông điệp hàng đợi) ‘sau đó xoá

Send thông điệp giải phóng đến các trạm

Những trạm khác cũng sẽ xoá yêu cầu của nó trong hàng đợi của

mình

Trang 28

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.3 CÀI ĐẶT CHƯƠNG TRÌNH

III.3.1 Phân tích bài toán

• Để xây dựng một hệ thống quản lý bãi đổ xe

chúng ta sử dụng mô hình mạng client/ server

để thực hiện việc truyền các thông tin từ giữa các máy trạm cho máy chủ hoặc máy chủ với máy chủ đảm bảo dữ liệu dùng chung (bãi xe) cho các thao tác tại các cổng (xe vào/xe ra)

• Để đảm bảo gắn bó dữ liệu trong bài toán

quản lý bãi đổ xe sử dụng thuật toán Lamport

để cài đặt

Trang 29

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.3 CÀI ĐẶT CHƯƠNG TRÌNH

III.3.1 Phân tích bài toán

Với các giả thiết

+Một trạm trong các trạm đều có thể liên lạc với các trạm còn lại trong hệ

+ Không có lỗi truyền thông tin và không mất thông điệp

+ Trật tự nhận trên trạm j của dãy các thông điệp cũng giống như chính tại trạm i là giống với trật

tự của nơi phát

+ Sự cố hay gián đoạn vật lý tại một trạm nào

đó được phát hiện sẽ lập tức thông báo đến tất cả các trạm có ý định liên lạc với nó.

Trang 30

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.3 CÀI ĐẶT CHƯƠNG TRÌNH

III.3.1 Phân tích bài toán

Các ràng buộc trong chương trình :

+ Các bộ cung cấp bắt buộc phải thực hiện cùng một giải thuật

+ 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

+ 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

Trang 31

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.3 CÀI ĐẶT CHƯƠNG TRÌNH

Trang 32

III LẬP TRÌNH BẰNG PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE

III.3 CÀI ĐẶT CHƯƠNG TRÌNH

III.3.3 Demo chương trình

- Chương trình gồm có các Modul : SERVER1, SERVER2, SERVER3,

CLIENT1, CLIENT2

- Cấu trúc chương trình trong mỗi Server gồm các phần:

+ Phần kết nối đến với Client và các Server.(dưới các thủ tục Connect)+ Gởi và nhận các thông điệp qua các cổng (dưới các thủ tục

Getserver, SendServer, GetClient, SendClient)

+ Tổ chức và Sắp xếp các thông điệp trên mảng (Cấu trúc FIFO) (dưới các thủ tục POP, PUSH, SORT)

+ Trao đổi giữa Server với Server, Server với Client

Cấu trúc chương trình trong mỗi Client gồm các phần:

+ Phần kết nối đến với Client và các Server.(dưới các thủ tục Connect)+ Gởi và nhận các thông điệp qua các cổng (dưới các thủ tục

GetClient, SendClient)

+ Quản lý bãi xe (Xuly)

- Kết quả chạy thử chương trình :

Trang 33

SEVER 1 SEVER 2 SEVER 3

CỔNG 1 (CLIENT 1) CỔNG 2 (CLIENT 2)

Trang 34

KẾT LUẬN

- Việc sắp xếp các thông điệp đến dựa trên đồng hồ lôgích cho phép đánh dấu các sự kiện và xác định một trật tự tổng quát chặt chẽ Nhưng tại đây ta không có quan hệ nào giữa các sự kiện và các giá trị của dấu.

- Sự mâu thuấn : giả thiết cả hai trạm 1 và 2 cùng thực hiện trùng nhau Rồi sau đó cả hai điều kiện yêu cầu đều nằm ở đỉnh của hàng đợi của mỗi chúng nhưng trong trường hợp đồng hồ lôgíc của trạm 1 lại nhỏ hơn trạm 2

- Rõ ràng là yêu cầu trạm i phải có mặt trong hàng đợi của trạm j khi

trạm j đang vào đoạn găng Điều này cung cấp sự mâu thuẫn yêu cầu của chính tạm j ở tại đỉnh của hàng đợi yêu cầu khi một đồng hồ logic nhỏ hơn đang có mặt

Trang 35

XIN CÁM ƠN CÁC THẦY CÔ VÀ

CÁC BẠN TRONG LỚP

Email : dunglq82@yahoo.com.vn dunglq1982@gmail.com

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

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

TÀI LIỆU LIÊN QUAN

w