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 đảm bảo chống trùng vé tàu hỏa khi phân tán chức năng bán vé cho các ga trong hệ thống đường sắt

17 778 2

Đ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 17
Dung lượng 226 KB

Nội dung

ĐỒNG BỘ TIẾN TRÌNH Điều kiện chủ yếu của việc đồng bộ hóa tiên trình trong hệ phân tán là: • Các tiến trình của hệ phải được phát triển trong cùng một chu kỳ thực hiện với các thời gian

Trang 1

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

**************

TIỂU LUẬN MÔN LẬP TRÌNH MẠNG

Đề tài: (đề 14) VIẾT CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC

GA TRONG HỆ THỐNG ĐƯỜNG SẮT

Giảng viên hướng dẫn: PGS.TS Lê Văn Sơn

Học viên thực hiện: Phan Văn Lĩnh Lớp: Khoa Học Máy Tính-CHK16

Trang 2

LÝ THUYẾT

Trang 3

ĐỒNG BỘ TIẾN TRÌNH

 Điều kiện chủ yếu của việc đồng bộ hóa tiên trình trong hệ phân tán là:

• Các tiến trình của hệ phải được phát triển trong cùng một chu kỳ thực hiện với các thời gian thực hiện lệnh khác nhau do khả năng xử lý của các bộ xử lý (hoặc vi xử lý) thành phần khác nhau;

• Các tiến trình phát triển trong các hệ thống thành phần khác nhau, nằm ở các địa điểm khác nhau và được nối nhau qua đường truyền trong điều kiện có diễn ra sự cố kỹ thuật;

• Không sử dụng bộ nhớ và đồng hồ chung

Xuất phát từ yêu cầu và điều kiện kỹ thuật cụ thể nêu trên, rõ ràng người ta cần phải nghiên cứu các giải pháp đủ mạnh và hiệu quả để có thể đồng bộ hóa các tiến trình như là đối tượng chủ yếu tham gia tạo nên sự hoạt động của hệ không đồng bộ

Tính cấp thiết của vấn đề đồng bộ hóa tiến trình thể hiện ở hai điểm mấu chốt sau đây:

• Nhìn chung, 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 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 làm phát sinh vấn đề truy cập tương tranh

• Các tiến trình của cùng một hệ hoạt động theo kiểu hợp lực để giải quyết các chức năng xác định nhằm

cho kết quả nhanh và hiệu quả 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

Trang 4

ĐỒNG BỘ TIẾN TRÌNH (TT)

Vì vậy, tương tranh và 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 Đây là quá trình phức tạp

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ớ hoặc một biến chung là đủ Trong hệ phân tán, các thông tin cần trao đổi phải thông qua các kênh thuộc hệ thống viễn thông dưới dạng các thông điệp

Trang 5

ĐỒNG HỒ LOGIC LAMPORT

Những điều kiện đồng hồ

• Trong một hệ thống các đồng hồ logic, các tiến trình riêng biệt có một đồng hồ logic mà được áp dụng theo một giao thức

• Mỗi sự kiện được gán một timestamp (thời gian đánh dấu) trong cách thức mà thỏa mãn điều kiện

bền chặt đồng hồ: nếu e1  e2 thì C(e1) < C(e2)

Trong đó: C(ei) là timestamp (thời gian đánh dấu) được gán cho sự kiện ei

• Nếu giao thức thỏa mãn các điều kiện theo sau nữa, thì đồng hồ được nói rằng bền chặt mạnh: nếu C(e1) < C(e2) thì e1  e2

Trang 6

ĐỒNG HỒ LOGIC LAMPORT

Sự cài đặt đồng hồ logic

• Tất cả các máy (tiến trình - Pi) sử dụng một bộ đếm (đồng hồ - Ci) với giá trị khởi tạo là 0

• 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à timestamp (thời gian đánh dấu) của nó

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

• Mỗi thông điệp mang giá trị đồng hồ của người gửi nó tại thời điểm gửi Khi Pi nhận một thông điệp với timestamp (thời gian đánh dấu) Cmsg, nó xử lý như sau:

• Ci = Max(Ci, Cmsg)

• Xử lý R2

• Phát thông điệp

Các thời gian đánh dấu Lamport (Lamport timestamps)

Trang 7

ĐỒNG HỒ LOGIC LAMPORT

Ví dụ 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

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 8

THUẬT TOÁN LARMPORT TỔNG QUÁT

(a) cả hai tiến trình 0 và 2 yêu cầu vào đoạn găng

(b) tiến trình 0 vào đoạn găng vì nó có yêu cầu đầu tiên

(c) tiến trình 0 rời đoạn găng, tiến trình 2 vào đoạn găng

Trang 9

THUẬT TOÁN RICART & AGRAWALA

2

Process 0 releases resource

 Khi một tiến trình muốn vào đoạn găng

Gửi một thông điệp yêu cầu tới tất cả các tiến trình khác trong nhóm

Đợi tới khi tất cả các tiến trình khác trong nhóm có chấp nhận

• Vào đoạn găng

Trang 10

THUẬT TOÁN TOKEN RING

(a) Nhóm các tiến trình không có trật tự trong một mạng

(b) Cấu trúc vòng tròn logic trong phần mềm

Trang 11

THUẬT TOÁN LOẠI TRỪ TUƠNG HỔ

state := RELEASED;

Để một tiến trình chuẩn bị vào được đoạn găng

state := WANTED;

Gởi thông điệp yêu cầu vào đoạn găng cho N-1 trạm còn lại

H := request’s timestamp; {Thời gian dấu của yêu cầu}

Wait until ( Số lượng các thông điệp trả lời cho nó = (N - 1));

state := HELD;

Để một tiến trình ra khỏi đoạn găng

state := RELEASED;

Gởi thông điệp cho mọi tiến trình khác trong hệ Khi nhận một yêu cầu <T,H,I,D>:

Cập nhật đồng hồ Logic của trạm theo công thức clock_logic=Max(clock_logic,H)+1

Nếu T=”REQ” thì bỏ thông điệp vào hàng đợi của trạm Ở đây là chèn thông điệp vào hàng đợi theo hai giá trị của H và I

Nếu T= “ACK” thì Tham chiếu vào hàng đợi của mình để xem các thông điệp có giá trị T=”REQ”, IREQ=IACK ở đầu hàng đợi

Các thông điệp có giá trị T=”ACK” đã nhận đầy đủ từ các trạm khác trong hệ để trả lời cho nó

Nếu đã hội đủ hai vấn đề trên thì cho vào đoạn găng

Trang 12

ỨNG DỤNG

Trang 13

PHÁT BIỂU BÀI TOÁN

Giả sử có N ga tàu ở tại N thành phố khác nhau, có một chiếc tàu SE1 đi lần lượt từ ga đầu tiên đến ga cuối cùng và tại mỗi ga đều bán vé cho chiếc tàu đó Quy định ga đầu tiên có thể bán vé tự do, kể từ ga thứ hai trở đi chỉ bán 5% của số vé trống còn lại và sau 30 phút có thể bán tự do số vé trống đó Như vậy, xảy ra trường hợp là các ga tiếp theo không biết vị trí nào có người và vị trí nào không có người, ngoài ra còn trường hợp tại thời điểm t trước đó một vị trí số 3 có người nhưng tại thời điểm t’ thì vị trí đó không có người vì đến ga

đó khách đã rời tàu, … Vậy, vấn đề đặt ra là phải tạo ra một cơ chế đồng bộ hóa các tiến trình để cho các nhân viên biết mới có thể bán vé tàu được một cách chính xác và hiệu quả.

Trang 14

MÔ HÌNH BÀI TOÁN

S3

S1

S4

S2

Mạng TCP/IP

Các trạm phải tuân thủ các nguyên tắc sau

• Mỗi trạm sử dụng bộ nhớ tất thời hoặc đĩa cứng của mình trong quá trình xử lý thông tin và cập nhật

cơ sở dữ liệu dùng chung cho chính trạm đó

• Việc trao đổi dữ liệu của hệ thống được tiến hành thông qua sự trao đổi thông điệp giữa các trạm với

nhau

• Mỗi khi có sự cố trên một trạm thì các trạm trong hệ đều phải biết

Trang 15

MÔ HÌNH BÀI TOÁN

Mỗi trạm cài đặt một chương trình gồm hai tiến trình.Trong đó một tiến trình có nhiệm vụ phát đi các thông điệp yêu cầu cung cấp hoặc kiến nghị vị trị có

khách hàng, tiến trình còn lại nhận các thông điệp từ các tiến trình phát Trên mỗi trạm đều có xây dựng một hàng đợi, dùng để lưu trữ các thông điệp từ các tiến trình phát

Như vậy, tại mỗi trạm nào đó, nếu có một khách hàng muốn mua một vé tàu thì tiến trình phát tại trạm này sẽ gởi thông điệp đến các trạm khác và ngay cả

chính nó Những thông điệp này sẽ được tiến trình nhận và đưa vào hàng đợi cục bộ tại trạm Sau đó tùy theo giải thuật xử lý mà ta biết được là nó có thể mua được hay không?

Trang 16

MÔ HÌNH BÀI TOÁN

Queue của Trạm

Ghi Nhận

Tiến trình

yêu cầu

mua vé

S

Thông báo đã mua vé được Cập nhật dữ liệu tại trạm

Ra khỏi hàng đợi

Tiến trình

Ch ờ

*: Xử lý theo giải thuật

Hình 1.13 Mô hình tại trạm với yêu cầu mua vé

Trang 17

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