ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
------
TIỂU LUẬN
ĐỀ TÀI: SO SÁNH MƠ HÌNH TRUYỀN THƠNG ĐỒNG BỘ VÀ DỊ BỘ
Chun Ngành: Khoa học máy tính
Mã số: 8480101
Học phần: Xử lí song song
Giảng viên: TS. Nguyễn Hoàng Hà
Người thực hiện: Nguyễn Đức Hòa
Thừa Thiên Huế, tháng 12 năm 2021
MỤC LỤC
MỞ ĐẦU ......................................................................................................................... 1
CHƯƠNG 1: TRUYỀN THÔNG ĐIỆP.......................................................................... 2
1.1. Định nghĩa ................................................................................................................ 2
1.2. Truyền thơng điệp trên mơ hình Client-Server......................................................... 2
1.2.1. Truyền thông điệp dị bộ: ................................................................................... 2
1.2.2. Truyền thơng điệp đồng bộ: .............................................................................. 2
CHƯƠNG 2: MƠ HÌNH TRUYỀN THƠNG ĐIỆP. ...................................................... 3
2.1. Tính tốn phân tán ................................................................................................ 3
2.2. Mơ hình truyền thơng điệp (Message Passing) .................................................... 3
2.2.1. Mơ hình truyền thơng điệp đồng bộ ............................................................. 4
2.2.2. Mơ hình truyền thông điệp dị bộ .................................................................. 5
KẾT LUẬN ..................................................................................................................... 8
TÀI LIỆU THAM KHẢO ............................................................................................... 9
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Nhiệm vụ của Cơng nghệ thơng tin là nghiên cứu các mơ hình, phương pháp và
công nghệ, công cụ hỗ trợ để tạo ra những hệ thống phần mềm giải quyết được những
bài toán phức tạp của thực tế. Những vấn đề về xử lý ngơn ngữ tự nhiên, tiếng nói, nhận
dạng dự báo thời tiết,…đều đòi hỏi phải xử lý dữ liệu với tốc độ rất cao, với khối lượng
dữ liệu rất lớn. Mặc dù tốc độ và số lượng các bộ xử lý tăng nhiều trong những năm qua,
nhưng do giới hạn về phương diện vật lý nên khả năng tính tốn của chúng khơng thể
tăng mãi theo u cầu hiện tại, càng không đáp ứng trong tương lai. Điều này dẫn tới
muốn tăng được khả năng tính tốn của các hệ thống máy tính để giải được những bài
tốn đáp ứng u cầu thực tế thì khơng cịn cách nào khác là phải khai thác được những
khả năng xử lý song song và phân tán của hệ thống máy tính hiện đại.
Mục đích của xử lý song song và phân tán là tận dụng các khả năng tính tốn của
các hệ đa bộ xử lý, của các máy tính song song để thực hiện những tính tốn nhanh hơn
trên cơ sở sử dụng nhiều bộ xử lý đồng thời. Cùng với tốc độ xử lý nhanh hơn,việc xử
lý song song và 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ế.
Vấn đề truyền thông trong mơi trường tính tốn song song và phân tán cũng rất
quan trọng trong việc giải quyết những bài toán lớn hơn và phức tạp hơn. Trong nội
dung bài tiểu luận này xin được trình bày về mơ hình truyền thơng điệp đồng bộ và dị
bộ.
2. Mục tiêu nghiên cứu
Tìm hiểu so sánh mơ hình truyền thơng đồng bộ và dị bộ
3. Phương pháp nghiên cứu
Tìm hiểu về lý thuyết dựa vào các cơng trình đăng tải trên các tạp chí có uy tín
trong và ngồi nước, các giáo trình, sách tham khảo được xuất bản bởi những nhà xuất
bản đáng tin cậy.
4. Nội dung nghiên cứu
Tìm hiểu về truyền thơng điệp
Tìm hiểu về mơ hình truyền thơng đồng bộ và dị bộ
5. Cấu trúc tiểu luận
Cấu trúc tiểu luận gồm:
Chương 1: Tìm hiểu về truyền thơng điệp
Chương 2: Tìm hiểu về mơ hình truyền thơng điệp
1
Chương 1: TRUYỀN THÔNG ĐIỆP
1.1. ĐỊNH NGHĨA
Trong khoa học máy tính, truyền thơng điệp (tiếng Anh: message passing) là kỹ
thuật để gọi hành vi (ví dụ như chạy chương trình) trên máy tính. Chương trình gọi sẽ
gửi thơng điệp tới một q trình (có thể là tác nhân hay đối tượng) và dựa vào quy trình
với cơ sở hạ tầng hỗ trợ để chọn và gọi mã thực sự để chạy. Truyền thơng điệp khác với
lập trình thơng thường ở chỗ quá trình, chương trình con, hay hàm được gọi trực tiếp
bằng tên. Truyền thơng điệp là chìa khóa cho một số mơ hình lập trình tương tranh và
hướng đối tượng.
Truyền thông điệp được sử dụng phổ biến trong phần mềm máy tính hiện đại. Nó
được sử dụng như một cách để các đối tượng tạo nên một chương trình hoạt động với
nhau và là phương tiện để các đối tượng và hệ thống chạy trên các máy tính khác nhau
(ví dụ trên Internet) tương tác. Truyền thơng điệp có thể dược hiện thực theo nhiều cơ
chế khác nhau, bao gồm các kênh.
1.2. TRUYỀN THƠNG ĐIỆP TRÊN MƠ HÌNH CLIENT-SERVER
Đơn vị để xử lý là các tiến trình
Các tiến trình có thể thực hiện trên các bộ xử lý khác nhau.
Chỉ có kênh truyền mới có thể chia sẻ cho các tiến trình
Việc truyền thơng và đồng bộ hóa các tiến trình được thực hiện qua hai phương
thức: send() và receive()
Việc đồng bộ hóa các tiến trình được thực hiện theo cơ chế truyền thơng điệp:
một tiến trình muốn gửi một thơng điệp thì nó phải chờ tiến trình nhận sẵn sàng nhận
thơng điệp đó và ngược lại
1.2.1. Truyền thơng điệp dị bộ:
Một kênh truyền được giả thuyết là có khả năng tiếp nhận khơng bị giới hạn.
Tiến trình gửi khơng cần tiến trình nhận sẵn sàng mà cứ gửi khi có u cầu.
Giao thức UDP thích hợp cho mơ hình này
1.2.2. Truyền thơng điệp đồng bộ:
Tiến trình gửi bị chặn lại cho đến khi tiến trình nhận sẵn sàng nhận
Sự truyền thơng và đồng bộ hóa ln gắn chặt với nhau
Giao thức TCP thích hợp cho mơ hình này.
2
Chương 2: MƠ HÌNH TRUYỀN THƠNG ĐIỆP
2.1. TÍNH TỐN PHÂN TÁN
Tính tốn phân tán là những tính tốn được thực hiện trên cơ sở kết hợp tính tốn
và truyền thơng của hai hay nhiều máy tính trên mạng.
Ưu điểm:
- Cho phép chia sẻ dữ liệu được lưu nhiều nhiều máy tính khác nhau (khơng có
bộ nhớ chia sẻ).
- Chia sẻ với nhau về một số chức năng chính của máy tính.
- Độ tin cậy và khả năng thứ lỗi cao hơn. Trong trường hợp có một máy tính bị
sự cố thì những - máy tính khác có thể thay thế để hồn thành nhiệm vụ của hệ thống.
- Tính kinh tế: thường đầu tư vào hệ phân tán sẽ thấp hơn đầu tư cho hệ tập trung.
Nhược điểm:
- Những vấn đề liên quan đến mạng, quản trị hệ thống, định vị tài nguyên, vấn
đề đảm bảo an toàn, an ninh thông tin, v.v. không bằng hệ tập trung.
- Xử lý trong các hệ thống phân tán khơng có bộ nhớ chia sẻ để trao đổi dữ liệu
với nhau. Sự trao đổi được thực hiện bằng cách truyền thơng điệp.
2.2. MƠ HÌNH TRUYỀN THƠNG ĐIỆP (MESSAGE PASSING)
Các đơn vị XLSS trong mơ hình truyền thơng điệp là các tiến trình.
Các tiến trình có thể thực hiện trên những bộ xử lý khác nhau và không truy cập
được vào không gian địa chỉ chia sẻ.
Chỉ có kênh truyền là có thể chia sẻ cho các tiến trình, thường đó là LAN hoặc
mạng diện rộng.
Hiện nay có nhiều cơng cụ lập trình được sử dụng cho tính tốn phân tán ở nhiều
mức độ trừu tượng khác nhau, như PVM, MPI, RMI, v.v.
Trong các hệ thống phân tán khơng có bộ nhớ chia sẻ để trao đổi dữ liệu với nhau
việc trao đổi được thực hiện bằng cách truyền thơng điệp. Mơ hình Client-Server cũng
có thể sử dụng cơ chế này để cài đặt.
Máy 2
receive(mesage)
Máy 1
Send(mesage)
Mơ hình truyền thơng điệp tổng qt
3
Socket
Điểm giao tiếp giữa máy tính và mạng
Được dùng để gửi và nhận dữ liệu (có thể cho 1 ứng dụng đọc và ghi trên mạng)
Được hỗ trợ bởi nhiều hệ thống và ngơn ngữ lập trình
Socket
Server
Client
Sockets và Ports
Cổng chấp nhận
socket
socket
Cổng
Thông báo
client
server
Các cổng khác
Cổng là 1 con số nguyên (2 byte)
Một số cổng đã được dành riêng cho các dịch vụ mạng phổ biến: 80 (http), 27
(ftp), …
Khi mở cổng phải sử dụng các cổng chưa được mở: netstat –a
2.2.1. Mơ hình truyền thơng điệp đồng bộ:
Trong mơ hình này, tiến trình gửi bị chặn lại cho đến khi tiến trình nhận sẵn sàng
nhận. Ở đây, sự truyền thơng và đồng bộ hố ln gắn chặt với nhau.
Hệ thống truyền thơng điệp đồng bộ hồn tồn giống như hệ điện thoại, kênh truyền
bị chặn lại trong quá trình đàm thoại. Hệ truyền dị bộ lại giống nhiều hơn với hệ thống
bưu chính, người nhận phải chờ cho đến khi có thư được gửi đến.
Hầu hết các thư viện lập trình hỗ trợ mơ hình truyền thơng điệp đồng bộ.
Truyền thơng điệp đồng bộ: dùng giao thức TCP
4
Ưu điểm: Làm cho nhiều vấn đề trong đồng bộ hoá và việc cấp phát bộ nhớ động
trở lên đơn giản hơn.
Nhược điểm:
- Việc gắn chặt các tiến trình với thời gian phân phát thông điệp cũng được xem
như là điều kiện ràng buộc bổ sung đòi hỏi trong khi thiết kế và thực thi chương trình.
- Việc bắt tiến trình gửi phải chờ dẫn đến việc làm giảm tính đồng thời của hệ
thống.
- Ngoài ra, để cài đặt hiệu quả các hệ thống truyền thơng đồng bộ địi hỏi phải có
những phần cứng đặc biệt để đảm bảo rằng sự truyền thông phải cực nhanh và sự trao
đổi dữ liệu khơng ảnh hưởng tới sự tính tốn của hệ thống. Các mạng truyền thơng nhanh
có nhiều nút mạng trao đổi dữ liệu với nhau có chi phí cao.
2.2.2. Mơ hình truyền thơng điệp dị bộ:
Trong mơ hình này, một kênh truyền được giả thiết là có khả năng tiếp nhận không
bị giới hạn (bằng cách sử dụng buffer) để tiếp nhận các thơng điệp gửi đến cho mỗi tiến
trình.
Tiến trình gửi sẽ khơng phải chờ để tiến trình nhận sẵn sàng nhận mà cứ gửi khi
có yêu cầu.
Hai tiến trình gửi và nhận có thể hoạt động gần như độc lập nhau và thơng điệp có
thể nhận được sau một khoảng thời gian nào đó (lâu bất kỳ) kể từ khi nó được gửi đi.
5
Tiến trình nhận thì phải chờ cho đến khi có được thơng điệp của một tiến trình khác gửi
cho nó.
Nhược điểm: khơng an tồn
Truyền thơng điệp dị bộ: dùng giao thức UDP
Một số lưu ý trong mơ hình truyền thơng dị bộ:
- Khi tiến trình A gửi đi một thơng điệp cho tiến trình B thì sau đó nó cần phải
được biết xem B có nhận được hay khơng, nghĩa là A phải chờ để nhận được câu trả lời
khẳng định của B. Việc phân phát thông điệp cũng không thể đảm bảo rằng không bị
thất bại. Nếu A gửi đi một thông điệp cho B và A không nhận được câu trả lời từ B thì
nó sẽ khơng biết là thơng điệp đó đã được gửi đến đích B hay chưa? (có thể là tiến trình
B khơng nhận được hoặc câu trả lời của B không đến được A).
- Tất cả các thông điệp đều phải đưa vào bộ đệm (hàng đợi), nhưng trong thực tế
không gian hàng đợi là hữu hạn. Khi có q nhiều thơng điệp được gửi đi thì phương
thức gửi sẽ bị chặn lại. Điều này vi phạm ngữ nghĩa của mơ hình truyền thơng điệp dị
bộ.
Sự khác biệt chính giữa truyền đồng bộ và không đồng bộ
Trong dữ liệu truyền đồng bộ được truyền dưới dạng khung, mặt khác trong Dữ
liệu truyền không đồng bộ được truyền 1 byte mỗi lần.
6
Truyền đồng bộ yêu cầu tín hiệu đồng hồ giữa người gửi và người nhận để thông
báo cho người nhận về byte mới. Trong khi đó, trong người gửi và người nhận truyền
khơng đồng bộ khơng u cầu tín hiệu đồng hồ vì dữ liệu được gửi ở đây có một bit
chẵn lẻ được đính kèm với nó cho biết bắt đầu byte mới.
Tốc độ truyền dữ liệu của truyền thông không đồng bộ chậm hơn so với truyền
thông đồng bộ.
Truyền thông không đồng bộ là đơn giản và kinh tế trong khi đó, truyền thơng
đồng bộ là phức tạp và đắt tiền.
Truyền thông đồng bộ là hiệu quả và có chi phí thấp hơn so với truyền thơng
khơng đồng bộ.
Cơ sở để so sánh
Truyền thông đồng bộ
Gửi dữ liệu dưới dạng khối
hoặc khung
Nhanh
Chi phí cao
Khơng thay đổi
Truyền thơng dị bộ
Gửi 1 byte hoặc ký tự một
lần
Chậm
Chi phí thấp
Ngẫu nhiên
Vắng mặt
Hiện tại
Bảo mật
An tồn
Khơng an tồn
Giao thức
Dùng giao thức TCP
Dùng giao thức UDP
Ví dụ
Phịng trị chuyện, hội nghị
truyền hình, hội thoại qua
điện thoại, v.v.
Thư, email, diễn đàn, vv
Ý nghĩa
Tốc độ truyền
Giá cả
Khoảng thời gian
Khoảng cách giữa các dữ
liệu
7
KẾT LUẬN
Mơ hình truyền thơng đồng bộ và khơng đồng bộ đều có những ưu điểm và nhược
điểm. Khơng đồng bộ là đơn giản, tiết kiệm và được sử dụng để truyền một lượng nhỏ
dữ liệu trong khi đó, Truyền đồng bộ được sử dụng để truyền phần lớn dữ liệu vì nó hiệu
quả. Do đó, cả truyền thơng đồng bộ và không đồng bộ đều cần thiết cho việc truyền dữ
liệu.
Thơng qua tìm hiểu các kiến thức về mơ hình truyền thơng đồng bộ và dị bộ trong
xử lý song song và phân tán, qua đó có thể nắm được các nguyên tắc, cấu trúc, cơ chế
và phương pháp truyền thông trong thực hiện song song để phát triển những phần mềm
khai thác hiệu quả những khả năng tính tốn song song, phân tán của các máy tính hiện
đại nhằm giải quyết các bài toán đặt ra trong thực tế.
Với sự phát triển của công nghệ thông tin, hệ phân tán và xử lý song song sẽ tiến
đến nghiên cứu sâu hơn để có thể áp dụng giải được nhiều bài toán lớn và phức tạp trong
thực tế.
8
TÀI LIỆU THAM KHẢO
[1]. TS. Nguyễn Hoàng Hà – Xử lý song song - Khoa Công nghệ thông tin,
ĐHKH, Đại học Huế, 2021.
[2]. PGS. TS. Đoàn Văn Ban, TS. Nguyễn Mậu Hân - Xử lý song song và phân
tán – Nhà xuất bản khoa học và kỹ thuật, 2006.
[3]. Al Geist, Adam Beguelin, Jack Dongarra, Weichang Jiang, Robert Manchek,
Vaidy Sunderam - PVM: Parallel Virtual Machine A User’s Guide and Tutorial
for Networked Parallel Computing/, - London: The MIT Press, 1995.
[4]. Barry Wilkingson, Michael Allen – Parallel Programming, Technigues and
Applications Using Networked Workstations and Parallel Computers / Prentice
Hall New Jersey, 1999.
[5]. />[6]. />[7]. />[8].
9