Mạng máy tính và hệ tin học phân tán 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
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
CÁC CÔNG TƠ SỰ KIỆN TRÊN MỖI TRẠM
Giáo viên hướng dẫn:
PGS TS LÊ VĂN SƠN Học viên thực hiện:
Huỳnh Anh Tuấn
Lớp: Khoa học Máy tính – K24
Đà Nẵng, 5/2012
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI GIỚI THIỆU 2
YÊU CẦU CỦA ĐỀ TÀI 3
CHƯƠNG I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP TRÌNH MẠNG 4
I.1 Hệ thống tin học 4
I.2 Hệ tin học phân tán 4
I.3 Các mô hình hệ phân tán và ứng dụng mạng 4
I.4 Kiến trúc hệ thống 5
CHƯƠNG II: ĐỒNG BỘ HÓA TRONG HỆ PHÂN TÁN 7
II.1 Đồng bộ hóa tiến trình 7
II.2 Sắp xếp kiểu đóng dấu 14
II.3 Đồng bộ hóa theo trật tự tổng quát chặt chẽ 15
CHƯƠNG III: SỰ GẮN BÓ DỮ LIỆU TRONG CSDL PHÂN TÁN 20
III.1 Tác động và giao dịch 20
III.2 Trật tự hóa các tác động 21
III.3 Triển khai giao dịch tôn trọng sự gắn bó 22
III.4 Quản lý gắn bó các giao dịch 24
PHẦN BÀI TẬP 25
KẾT LUẬN 28
TÀI LIỆU THAM KHẢO 29
Trang 3LỜI GIỚI THIỆU
Ngày nay với sự phát triển của khoa học kỹ thuật đặc biệt là kỹ thuật tin học đã phần nào đáp ứng ngày càng tốt hơn nhu cầu trao đổi thông tin của con người, làm cho mọi người khắp thế giới trở nên gần nhau hơn, thông tin liên lạc nhanh chóng, thuận lợi và hiệu quả Mạng máy tính và hệ tin học phân tán 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
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 như 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 của thực tế
Trong hệ tin học phân tán, việc hợp lực của các thành viên trong hệ dẫn đến hàng loạt các vấn đề như: định danh, cấp phát tài nguyên dùng chung (đảm bảo tránh tương tranh), giải quyết sự cố tạo nên tính tin cậy của hệ Để đảm bảo tính gắn bó của hệ, yêu cầu đặt ra trước hết là đồng bộ hóa các tiến trình Với hệ phân tán (không có bộ nhớ chung, bộ tạo xung đồng hồ chung), khả năng gắn bó và việc đồng bộ hóa cho hệ chỉ dựa trên phương tiện duy nhất là truyền thông điệp nên lời giải cho yêu cầu đồng bộ hóa thường chỉ dừng lại ở mức chấp nhận được đối với mỗi hệ.
Nội dung của tiểu luận trình bày các vấn đề:
Cở sở lý thuyết hệ phân tán.
Đồng bộ hoá và gắn bó dữ liệu trong hệ phân tán.
Triển khai chương trình tìm “ảnh” của các công tơ.
Em xin chân thành cảm ơn thầy giáo PGS.TS Lê Văn Sơn đã cung cấp kiến thức và tài liệu để em có thể hoàn thành tiểu luận này.
Học viên thực hiện
Huỳnh Anh Tuấn
Trang 4YÊU CẦU CỦA ĐỀ TÀI
Vấn đề:
Ta triển khai công tơ sự kiện phân tán trên N Server (N≥2) Giả sử rằng trong thời gian
đầu các trạm hoạt động rất ổn định và ta cài đặt trên mỗi trạm một công tơ sự kiện cục
bộ Hãy cho biết làm thế nào một trạm có thể có giá trị "ảnh" của các công tơ sự kiện trênmỗi trạm
Mục tiêu:
1 Giải quyết bài toán đồng bộ hóa và gắn bó dữ liệu
2 Viết chương trình cho biết giá trị “ảnh” của các công tơ
Trang 5CHƯƠNG I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP TRÌNH MẠNG I.1 Hệ thống tin học
Hệ thống tin học (Informatics System) là hệ thống bao gồm hai phần cơ bản là
phần cứng (hardware) hay là phần vật lý và phần mềm (software) là phần logic hay là
chương trình gắn bó hữu cơ với nhau và có khả năng xử lý thông tin Hệ thống tin học
gồm ba thực thể: phần cứng, phần mềm, dữ liệu
I.2 Hệ tin học phân tán
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 các tại các vị trí khácnhau 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ểnthống nhất của một hệ điều hành
Hệ tin học phân tán là hệ thống không chia sẻ bộ nhớ và đồng hồ Điều đó cho phépphân biệt với một xu hướng tin học khác về phân tán các tính toán trên nhiều bộ xử lýhay vi xử lý của hệ thống đa bộ xử lý
Hệ tin học phân tán đòi hỏi hệ thống phần cứng của mình phải trang bị bộ nhớ cục
bộ Các bộ xử lý trao đổi với nhau thông qua các hệ thống đường truyền khác nhau như làcáp quang, điện thoại, cáp chuyên dụng, bus trao đổi,
Mục tiêu của hệ phân tán:
- Tăng tốc độ bình quân trong tính toán, xử lý
- Cải thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên
- Tăng độ an toàn cho dữ liệu
- Đa dạng hóa các loại hình dịch vụ tin học
- Đảm bảo tính toàn vẹn của thông tin
I.3 Các mô hình hệ phân tán và ứng dụng mạng
Trang 6Các lớp phần mềm:
Kiến trúc phần mềm: cấu trúc của phần mềm như là các lớp và các module trongcác thuật ngữ của các dịch vụ đưa ra và yêu cầu giữa các tiến trình trên cùng hoặc trêncác máy tính khác nhau
Platform (hệ nền): phần cứng mức thấp nhất và các lớp phần mềm (hệ điều hành).Middleware: một lớp của phần mềm mà mục đích của nó là đánh dấu heterogeneity
và để cung cấp một mô hình lập trình cho các ứng dụng, như: CORBA, RMI (RemoteMethod Invocation), DCOM (Distributed Component Object Model),
I.4 Kiến trúc hệ thống
I.4.1 Mô hình Client/Server
Một WebServer thường là một client của một File Server cục bộ
Các WebServer và các Server của Internet khác là các client của một DNS Servercái mà dịch các tên miền Internet thành các địa chỉ mạng
Trang 7Một máy tìm kiếm là một Server, nhưng nó chạy chương trình được gọi là WebCrawlers cái mà truy cập các Web server thông qua Internet cho thông tin yêu cầu.
Dịch vụ cung cấp bởi nhiều server, trong đó nhiều Server có thể:
Mỗi phần là một tập hợp các đối tượng
Duy trì các bản sao của toàn bộ tập hợp các đối tượng trên một vài máy
Ví dụ: Web Proxy Server: cung cấp một bộ nhớ cache chia xẻ cho các máy client tại
một site hoặc băng qua một vài site khác nhau
I.4.2 Mô hình tương tác trong hệ phân tán
Thực hiện truyền thông:
o Không có khái niệm toàn cục của thời gian
o Nhịp độ đồng hồ trôi: nhịp độ tương đối ở một đồng hồ máy tính trôidạt ra khỏi từ một đồng hồ tham chiếu hoàn hảo
o Đồng bộ hóa đồng hồ:
Trang 8o Hệ thống định vị toàn cầu (GPS): một ít máy tính có thể sử dụng máy
thu radio để nhận thời gian đọc từ GPS với độ chính xác là 1 giây Chúng có thể gửi các thông điệp thời gian đến các máy tính kháctrong mạng tương ứng của chúng
micro- Các đồng hồ logic: mỗi thông điệp là thời gian đóng dấu lên với một số nối
tiếp mà phản chiếu thứ tự lôgic của chúng.
II.1.Đồng bộ hóa tiến trình
Đồ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ớinhau 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, tincậy và phòng tránh các sự cố kỹ thuật
II.1.1 Vấn đề tương tranh và hợp lực
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ậtcủ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ốntruy 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ôngtin dùng chung cùng một lúc gây nên hiện tượng truy cập tương tranh Tươngtranh là nguyên nhân chính của các xung đột giữa các tiến trình muốn truycậ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ảiquyết các bài tóan đặt ra và cho kết quả nhanh chóng nhất Điều này chophé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ữacá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ọcphâ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
Trang 9Mộ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ùngmột tập hợp các tài nguyên chỉ đạt được nếu tuân thủ các qui tắc sau:
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
Qui tắc cuối, 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ợpcá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 của cáctiến trình cung cấp Ở phần sau chúng ta nghiên cứu một số phương pháp sắp xếp nhằmxác lập một trật tự đảm bảo cho yêu cầu đồng bộ hóa
Các mũi tên hai chiều được sử dụng để mô tả dòng ra vào
Trong bài toán này chúng ta nhận thấy :
Bãi đậu xe chính là tài nguyên
VT VT VT
VT
VT VT VT
VT
VT VT
VT
VT VT VT VT VT VT
VT VT
VT VT
BV BV
BV
BV
Trang 10do 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ácchổ trong bãi, đặc biệt là số lượng chổ còn trống càng ít thì vai trò của hợp lựccòn quan trọng Đây chính là sự không gắn bó dữ liệu ở bãi đậu xe ô tô
- Để hiểu rõ hơn vấn đề đồng bộ hoá ta xét ví dụ cụ thể như sau : 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ácngười bảo vệ đều có thông tin đó Trạng thái lúc này của hệ là gắn bó Batrong số họ phát đi các thông tin sau :
1 M1 Thêm 20 chỗ trống
2 M2 Đã có 10 chỗ bị chiếm
3 M3 Dành 10% chỗ trống để quét dọn sân bãi
Trang 11Nế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 NBV sẽ có thông tin về 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 trạm.
Trật tự
xử lý
Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
Thôngđiệp
GiáTrị
Thôngđiệp
GiáTrị
Thôngđiệp
GiáTrị
Thôngđiệp
GiáTrị
II.1.3 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ảiquyế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 là 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
Trang 12Trong 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ậpmộ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 đượcthô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àoquan 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 :
Hình vẽ 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
Theo hình vẽ trên, ta có thể biểu diễn trật tự như sau :
Trật tự từng phần của các sự kiện
A1 → A2 → A3 → A4 → A5B1 → B2 → B3 → B4
Trao đổi thông tin
Trang 13A1 → A2 → B2 → B3 → B4B1 → B2 → B3 → A4 → A5A1 → A2 → B2→ B3 → A4 → A5
Ví dụ: Về các sự kiện không so sánh
B1 và A1, A2, A3A3 và B2, B3, B4Ràng buộc C1 thể hiện rằng trật tự có thể được bởi quan hệ có trước là tương thíchvới các trật tự cục bộ được định nghĩa trong từng trạm
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
II.1.4 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
Ta áp dụng các ký hiệu trong bảng sau :
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
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ó
Trước hết, trong đề tài này nghiên cứu sự hoạt động của hệ không có sự cố, rồi sau
đó sẽ chỉ ra hiệu ứng của sự cố hay việc phục hồi lại một trạm Đó là trường hợp đã nêulên trong H4 ở trên Ngoài ra còn giả sử rằng hiện tượng gây sự cố trên một trạm chỉ làmcho trạm đó không liên lạc được với mạng mà hoàn toàn không ảnh hưởng đến sự hoạtđộng của các trạm còn lại hoặc ít nhất là một nhóm các trạm khác
Trang 14II.1.5 Trật tự tổng quát chặt chẽ
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ệncủa hệ liên quan trực tiếp đến việc cung cấp các tài nguyên Nguyên lý của vấn đề đượckhái quát như sau Một tiến trình nào đó gởi thông điệp để yêu cầu sử dung 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
Cung cấp tập trung :
Hiện tại, trong các hệ thống tập trung, mỗi một loại tài nguyên của hệ được quản lýbởi một chương trình cung cấp duy nhất, goi là bộ cung cấp tài nguyên Chương trình nàytiếp tục nhận tất cả các yêu cầu, khuyến nghị giải phóng và sắp xếp chúng trong một hàngđợi xử lý theo kiểu loại trừ tương hỗ và xử lý chúng theo một trật tự nhất định của hàngđợi này
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à khuyến nghị giải phóng được truyền chochươ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 đượ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ộttrậ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ếpchúng phải theo kiểu loại trừ tương hỗ trong hàng đợi cục bộ của trạm có chứa chươngtrình cung cấp Điều đó cũng cho phép ta 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 giantruyền không được cố định Đây là trường hợp khá phổ biến trong mạng máy tính Nhưngnế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ầnphả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
Cung cấp phân tán :
Vì lý do ổn định và hiệu quả mà ta phải phân tán chức năng cung cấp trên nhiềutrạm 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ầnthiết để đảm bảo cho hoạt động cung cấp được hoàn toàn chính xác
II.2.Sắp xếp kiểu đóng dấu
Trang 15phần giữa các sự kiện mà tiến trình của
nó cần phải đồng bộ là vấn đề cần phải quan tâm
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àoquan hệ “có trước” () hay “ở ngay trước”:
Trật tự các sự kiện được xác định dựa
trên các nguyên tắc sau:
1 Nếu A và B là hai sự kiện của cùng
một trạm và A xảy ra trước B thì ta
có AB (trật tự cục bộ)
2 Nếu A là phát thông điệp từ một trạm
nào đó và B là nhận thông điệp thì ta
có AB (nhân-quả)
3 Nếu AB và BC, thì AC (bắc
cầu)
Sơ đồ của “ có trước ”:
p3 p4
q1 q2 q3 q4 q5 q6
r1 r2 r3 r4