Tải bản đầy đủ (.doc) (48 trang)

Tiểu luận Ứng dụng của hệ phân tán để giải một số bài toán phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.11 MB, 48 trang )


LỜI GIỚI THIỆU
Hệ phân tán đóng vai trò quan trọng trong lĩnh vực phát triển của công nghệ
máy tính, đặc biệt là trong điều kiện phát triển bùng nổ của các mạng máy tính. Sự
phát triểncủa các mạng LAN, WAN cho phép hàng trăm, hàng nghìn hay thậm chí
hàng triệu máy tính có thể kết nối với nhau. Kết quả của sự phát triển công nghệ
hiện nay không chỉ đáng tin cậy mà còn tạo nên các hệ thống máy tính rất lớn,
được kết nối bằng các đường kết nối tốc độ cao. Chúng tạo nên các mạng máy tính
lớn hoặc các hệ phân tán, ngược với hệ thống tập trung trước đây, bao gồm các
máy tính đơn và có thể cả thiết bị điều khiển đầu cuối (remote teminal).
Tính toán phân tán mang đến cho người truy cập trong suốt là sức mạnh nhiều
máy tính và dữ liệu như người sử dụng cần để thực hiện bất kỳ công việc nhất
định, và đồng thời, đạt hiệu suất cao và độ tin cậy mục tiêu. Ứng dụng trong các
hệ thống máy tính phân tán đã phát triển nhanh chóng trong thập kỷ qua. Các chủ
đề của máy tính được phân tán là đa dạng và nhiều nhà nghiên cứu đang điều tra
các vấn đề khác nhau liên quan đến cấu trúc phần cứng phân tán và việc thiết kế
các phần mềm phân tán để các tiềm năng xử lý song song và khả năng chịu lỗi có
thể khai thác.
Trong chương này, chúng ta hãy xem xét một số khái niệm cơ bản và các vấn
đề liên quan đến hệ thống phân tán.
1
MỤC LỤC
Chương 1 TỔNG QUAN VỀ HỆ PHÂN TÁN 3
1.1 Lý do ra đời hệ thống phân tán 3
1.2 Định nghĩa về hệ thống phân tán 6
1.3 Những đặc trưng chủ yếu của hệ phân tán 9
1.4 Xây dựng và phân loại các hệ thống phân tán 12
1.4.1 Phần cứng 12
1.4.1 Phần mềm 20
1.5 Các mô hình tổ chức hệ phân tán 21
1.5.1 Client/Sever 21


1.5.2 Mạng ngang hang (Peer to peer) 26
1.5.3 Mobile agent 28
1.6 Các ví dụ về hệ thống phân tán 29
Chương 2 TRUYỀN THÔNG TRONG HỆ PHÂN TÁN 32
2.1 Lời gọi thủ tục từ xa (RPC- Remote Procedure Call) 33
2.1.1 Giới thiệu 33
2.1.2 Kiến trúc của chương trình Client-Server cài đặt theo cơ chế lời
gọi thủ tục xa 33
2.2 Kích hoạt phương thức xa (RMI- Remote Method Invocation ) 35
2.2.1 Giới thiệu 35
2.2.2 Kiến trúc của chương trình Client-Server theo cơ chế RMI 36
2.2.3 Các cơ chế liên quan trong một ứng dụng đối tượng phân tán 37
2.2.4 Cơ chế vận hành của của một ứng dụng Client-Server theo kiểu
RMI 39
2.3 So sánh RPC và RMI 40
2.4 Kết luận chương 2 40
Chương 3 ỨNG DỤNG HỆ PHÂN TÁN 41
3.1 Một số bài toán ứng dụng hệ phân tán 41
3.2 Hệ thống gửi – rút tiền tại các ngân hàng 42
3.2.1 Kiến trúc hệ thống 42
3.2.2 Cơ chế hoạt động của hệ thống 44
KẾT LUẬN 46
TÀI LIỆU THAM KHẢO 47
2
Chương 1 TỔNG QUAN VỀ HỆ PHÂN TÁN.
1.1 Lý do ra đời hệ thống phân tán.
Ngày nay, các yêu cầu càng trở khắt khe đối với các hệ thống máy tính trong
tương lai: về tốc độ xử lý, sự tin cậy của hệ thống ngay cả khi có sự cố xảy ra, khả
năng lưu trữ, tính mở rộng khi cần thiết và hiệu quả chi phí mà nó mang lại, do đó
cần phải thay thế cấu trúc truyền thống theo tổ chức máy tính của Von Neumann.

Theo LeLann có hai tác nhân chính ảnh hưởng đến hệ thống phân tán: công
nghệ thay đổi và nhu cầu của người sử dụng.
Chẳng hạn đối với phát triển về công nghệ :
Về mạng máy tính :
6/1976 : Robert Metcalfe trình bày khái niệm về Ethernet tại Hội nghị quốc gia
máy tính.Ý tưởng về thời gian chia sẻ (time-sharing) lần đầu tiên được đề cập, là
bước đầu tiên hướng đến hệ thống phân tán.
1980 : Ethernet được phát minh bởi Robert Metcalfe và David Boggs tại Xerox
PARCvào năm 1973, Ethernet đầu tiên chạy ở 2,94 Mbps. Sau đó, Metcalfe đã
tham, ông đã tạo điều kiện cho một liên doanh giữa kỹ thuật số giữa Intel và
Xerox hợp tác hơn phát triển trên Ethernet. Phiên bản 1 được hoàn thành vào năm
1980, và các sản phẩm này được sử dụng một năm sau đó.
1983, IEEE đã phê chuẩn Ethernet với chuẩn 802.3.Ethernet được giới thiệu
như một mô hình chuẩn và sau đó là thập kỹ của máy tính cá nhân ra đời. Ngày
nay, hầu như tất cả các máy tính PC và máy tính Mac với port 10/100 Ethernet.
Tốc độ mạng LAN không ngừng tăng nhanh.
1985 : thick Ethernet: tốc độ 10 Mbps.
1991 : 10BaseT – sử dụng cáp xoắn đôi (twisted pair), tốc độ 10 Mbps.
1995 : 100 Mbps Ethernet ra đời.
1998 : Gigabit Ethernet được giới thiệu (1 Gbps Ethernet)
1999 : Chuẩn 802.11b (wireless Ethernet) sử dụng cho LAN không
2001 : 10 Gbps được giới thiệu.
3
2005 : 100 Gbps sử dụng cho kết nối bằng cáp quang (optical link)Sau đó, chỉ
một vài công ty lớn hoặc trường đại học được kết nối Internet, sử dụng gateways
giao tiếp giữa các mạng khác nhau, hình thức kết nối là dial –up.
1985 : Có khoảng 1.961 hosts trên Internet.
2006 : Có khoảng 439.286.364 hosts trên Internet. Hiện nay, hầu hết các hoạt
động của con người được diễn ra trên Internet.
Năm 1 Dolar/ 1Mb Loại

Bảng 1.1. Kết quả chi phí trên băng thông sử dụng
Năm 1 dollar/1 mb Loại
1977 32.000 16 kbs
1987 250 640 kbs- 2mb
1997 2 64 mb- 256mb
2007 0.06 522 mb- 2Gbs
Kết nối với băng thông lớn (High-speed WAN connectivity: 1– >50 Mbps).
Nhiều kiến trúc mạng ra đời (Switched LANs,wireless v.v…). Máy tính ngày càng
trở nên nhỏ hơn, rẻ hơn, hiệu quả hơn, tính toán nhanh hơn, do đó Vi xử lý trở
thành công nghệ dẫn đầu.
Về giao thức (Protocols) :
Nhờ tốc độ nhanh hơn của CPU làm chúng nó có thể thực hiện nhiều giao thức
một thời gian như :
- Thực hiện mã hóa công khai dựa vào phương pháp ECC(Elliptic curve
cryptography), thực hiện các kỹ thuật kiểm tra lỗi để bảo đảm dữ liệu cho truyền
dữ liệu hoặc lưu trữ (Ví dụ trong ngôn ngữ XML).
- Thực hiện các kỹ thuật nén ảnh, âm thanh.v.v…
- Mạng nhanh hơn nên có thể các giao thức có kích thước lớn hơn như :
SOAP/XML, H.323 được thực hiện đồng thời.
Về lưu trữ (Storage):
Tăng 60.000.000 lần hơn 50 năm qua, cụ thể :
1977 : Với đĩa mềm 310KB giá $1480
4
1987 : Đĩa cứng 40 MB giá $679
2008 : Đĩa cứng 750 GB giá $99, trung bình khoảng $0.13 / 1GB.
Chẳng hạn, vào năm 1987, Website nổi tiếng về giới thiệu âm nhạc của
Billboard : 4,207 bài nhạc, kích thước mỗi bài : 4.4 MB; dung lượng 18 GBs.
Thực hiện download một bài hát với modem V90-44Kbps mất 15 phút, tốn 76,560
đôla để download toàn bộ bộ sưu tập đó. Ngày nay, để download 1 bài hát với kích
thước 12,9 Mbps mất không quá 3,5 giây; tốn khoảng: $5.00.

Ở trong các hệ thống máy tính ngày nay, một ước mơ mới là có thể tính toán
phân toán ( distributed computing). Nhờ tính toán phân tán, tận dụng sức mạnh do
nhiều máy tính mang lại để thực hiện bất cứ công việc nào con người cần ở cùng
một thời gian, đạt hiệu suất cao và độ tin cậy cao. Sự quan tâm đến hệ thống máy
tính phân tán được phát triển nhanh chóng trong hơn một thập kỉ qua. Các đối
tượng nghiên cứu về hệ phân tán rất đa dạng, liên quan đến lĩnh vực khác nhau
như: cấu trúc phần cứng phân tán, thiết kế các phần mềm phân tán mà nó có thể xử
lý song song.
Hệ thống máy tính phân tán (hay hệ thống phân tán) sẽ mất rất nhiều hình thức
và bao gồm một loạt các hệ thống kiến trúc. Để một có thể sử dụng một hệ thống
phân tán đòi hỏi một tập hợp của nhiều bộ xử lý làm việc chặt chẽ với nhau để giải
quyết một vấn đề.
Tại sao chúng ta cần đến mạng?
- Tăng hiệu suất đường truyền : Với sự thực hiện multiprocessors làm tăng
đáng kể hiệu suất mạng
- Thực hiện được các ứng dụng phân tán:
+Thanh toán tự động(Automated Banking Systems)
+Giám sát giao thông (Air-Traffic Control Systems)
+Bán lẻ (Retail Point-of-Sale Terminals)
+Định vị toàn cầu (Global Positioning Systems)
+Tìm kiếm (Search Engine)
+Giám sát từ xa (Remote Monitor System) v.v
5
- Có khả năng giao tiếp tương tác và giải trí:
+ Vừa làm vệc và tiêu khiển đồng thời: email,chơi game, điện thoại, nhắn tin
v.v…
Các thách thức :
Khi xây dựng các phần mềm phân tán, các khó khăn gặp phải :
- Sử dụng hệ điều hành nào để xử lý phân tán ?
- Sử dụng ngôn ngữ lập trình nào?

- Làm thế nào đảm bảo tính hiệu quả (Efficiency)?
- Làm thế nào đảm bảo tính tin cậy (Reliability) ?
- Đối với các ứng dụng trên mạng : Dễ bị mất kết nối, thất thoát dữ liệu, tiềm
tảng những nguy hiểm khác nhau.
- Về bảo mật : Có thể bị tấn công mọi lúc mọi nơi.
1.2 Định nghĩa về hệ thống phân tán
Có nhiều định nghĩa khác nhau về hệ phân tán :
Định nghĩa 1 : Là một hệ có chức năng và dữ liệu phân tán trên các máy trạm
được kết nối với nhau qua mạng máy tính.
Định nghĩa 2 : Là một tập các máy tính tự trị được kết nối với nhau bởi mạng
máy tính và được cài đặt phần mềm phân tán.
Định nghĩa 3 : Là một tập các máy tính dộc lập giao tiếp với nhau như một hệ
thống thống nhất và toàn vẹn.
Trước đây, hệ phân tán được chia thành ba loại : hệ điều hành hệ phân tán, cơ
sở dữ liệu hệ phân tán và các hệ thống tính toán hệ phân tán.
Ngày nay, hệ phân tán được phân chia như sau:
- Hệ phân tán mang tính hệ thống: hệ điều hành phân tán.
- Hệ phân tán mang tính ứng dụng: các hệ thống truyền tin phân tán.
Theo Seitz, tùy theo sự khác biệt của ứng dụng mà ta có các định nghĩa cho
phù hợp :
6
Song song (Parallel): Thao tác trên dữ liệu được thiết lập từ luồng điều khiển
đơn. Tại máy tính song song,máy tính đa dữ liệu (multiple-data – SIMD)sử dụng
nhiều thành phần xử lý dữ liệu để thực hiện cùng một hoạt động hoặc tương tự về
nhiều bản ghi dữ liệu tại một lần.
Đồng bộ (Concurrent): Một số hành động có thể được thực hiện theo bất cứ
thứ tựnào.
Phân tán (Distributed): Các chi phí hoặc hiệu suất của một tính toán được chi
phối bởi các giao tiếp dữ liệu và điều khiển.
Theo Seitz, hệ thống phân tán có thể kiểm soát bằng cách sử dụng 3 kích thước

của phần cứng, điều khiển, và dữ liệu :
Hệ thống phân tán = Phân tán phần cứng + Phân tán kiểm soát + Phân tán dữ
liệu.
Hình 1.1. Mô hình một hệ phân tán tổng quát.
7
Trong đó :
+H1 : Một CPU đơn với một đơn vị kiểm soát.
+H2: Một CPU đơn với nhiều ALUs (arithmetic and logic units). Chỉ có một
đơn vị kiểm soát.
+H3: Đơn vị chức năng riêng biệt, như là một trong những CPU với dấu chấm
động (floating-point coprocessor).
+H4: Nhiều bộ xử lý với nhiều CPU nhưng chỉ có duy nhất một hệ thống I / O
và bộ nhớ toàn cục.
+H5: Nhiều bộ xử lý với nhiều CPU, nhiều hệ thống I / O và các bộ nhớ cục
bộ.
+C1: Điểm kiểm soát cố định duy nhất. Lưu ý rằng các hệ thống vật lý có thể
không có nhiều CPU.
+C2: Điểm kiểm soát di động duy nhất. Trong nhiều trường hợp nhiều CPU,
các điều khiển có thể thay đổi theo thời gian giữa các CPU.
+C3: Cấu trúc cố định master / slave. Trong hệ thống chỉ có một CPU và một
coprocessor, CPU master cố định, coprocessor slave cố định.
+C4: Cấu trúc master/slave động. Vai trò của master / slave được định nghĩa
bởi phần mềm.
+C5: Nhiều điểm đồng nhất, nơi mà các bản sao của cùng một bộ điều khiển
được sử dụng.
+C6: Nhiều điểm kiểm soát hỗn tạp, nơi mà các bộ điều khiển khác nhau được
sử dụng.
Cơ sở dữ liệu có hai thành phần và có thể được phân tán:
- Các tập tin và thư mục được lưu trữ trên các file.
- Kênh phân phối có thể được thực hiện bằng một trong hai cách, hoặc một sự

kết hợp của cả hai: tạo bản sao và phân vùng (replication and partition).
- Một cơ sở dữ liệu được tái tạo (replicated): có một số bản sao của cơ sở dữ
liệu giao cho các địa điểm khác nhau. Một cơ sở dữ liệu partitioned: nếu nó được
8
phân chia thành các cơ sở dữ liệu phụ và sau đó mỗi phụ cơ sở dữ liệu được phân
công vào các site khác nhau. Các điểm trong kích thước này bao gồm:
+D1 :Tập trung các cơ sở dữ liệu với một bản sao của cả hai tập tin và thư
mục.
+D2 :Phân phối các tệp tin với một thư mục tập trung và không có thư mục cục
bộ.
+D3 :Cơ sở dữ liệu tái tạo vớivới một bản sao của tập tin và thư mục ở mỗi
site.
+D4 : Cơ sở dữ liệu phân vùng với cơ sở dữ liệu master mà giữ được một bản
sao hoàn thiện của tất cả các tập tin.
+D5 : Cơ sở dữ liệu phân vùng với một cơ sở dữ liệu master mà chỉ giữ một
thư mục hoàn thiện.
+D6. Cơ sở dữ liệu phân vùng mà không có tập tin master hoặc thư mục.
Theo Schroeder, nếu một hệ thống có các điểm sau đây thì nó có thể là một hệ
thống phân tán :
+Nhiều yếu tố xử lý (Multiple processing elements - PES)
+Các kết nối phần cứng (Interconnection hardware)
+PES không độc lập.
+Có trạng thái chia sẻ.
+Không có đồng hồ trên toàn cầu : Các chương trình phối hợp hành động qua
trao đổi thông điệp.
+Thất bại độc lập : Khi một số hệ thống không thành công, những người khác
có thể không biết.
1.3 Những đặc trưng chủ yếu của hệ phân tán
Hệ phân tán mang tính hữ dụng là nhờ có các đặc tính : chia sẻ tài nguyên, tính
mở, tính đồng thời, tính quy mô, tính chịu lỗi và tính trong suốt.

a. Chia sẻ tài nguyên.
9
Tài nguyên bao gồm những thành phần phần cứng như : đĩa, máy in, và
những thành phần phần mềm như : file, cơ sở dữ liệu và những đối tượng dữ liệu
khác. Lợi ích của việc truy cập và hệ thống chứa các cơ sở dữ liệu, chương trình,
tài liệu và những thông tin chung khác được thể hiện rõ trong hệ thống chia sẻ thời
gian hoắc hệ thống nhiều người sử dụng vào đầu những năm 1960 và các hệ thống
UNIX MultiUser và những năm 1970.
Tài nguyên của máy tính nhiều người dùng thường được dùng chung cho tất cả
những người sử dụng nó, những người làm việc trong các máy trạm đơn lẻ của các
máy tính các nhân không có đặc tính hữu ích này. Các tài nguyên chung trong hệ
phân tán được đóng gói vật lý trong một máy tính của hệ, và từ các máy khác chỉ
có thể truy cập vào bằng con đường truyền thông. Để dùng chung một cách hiệu
quả, tài nguyên phải được quản lý bằng một chương trình cung cấp giao diện
truyền thống cho phép truy cập vào tài nguyên chung, sử dụng và cập nhật tài
nguyên thường xuyên và chắc chắn.
b. Tính mở.
Tính mở của hệ thống máy tính là đặc trưng để xác định xem hệ thống có thể
mở rộng theo nhiều cấp độ khác nhau hay không. Tính mở hoặc đóng của hệ thống
được xét dựa theo khả năng hỗ trợ việc mở rộng của thiết bị phần cứng ( ví dụ : bổ
sung các thiết bị ngoại vi, bộ nhớ và các giao diện truyền thông) và hỗ trợ việc mở
rộng các phần mềm, như : bổ sung thêm các tính năng của hệ điều hành, các giao
thức truyền thông và các dịch vụ chia sẻ tài nguyên. Tính mở của các hệ phân tán
được đánh giá theo mức độ bổ sung các dịch vụ chia sẻ tài nguyên mà không phá
vỡ hoặc lặp lại các dịch vụ hiện có.
Tính mở được thể hiện nhờ những giao diện phần mềm chủ chốt của hệ thống
giao diện đó được xác định rõ và lập thành tài liệu sẵn cho những người phát triển
phần mềm.
c. Tính đồng thời.
Khi một số tiến trình cùng tồn tại trong một máy tính, ta nói rằng, chúng được

thực hiện đồng thời. Nếu máy tính chỉ có một bộ xử lý trung tâm, thì tính đồng
10
thời xảy ra khi thực hiện xen kẽ các phần của một tiến trình. Nếu máy có n bộ xử
lý thì sẽ có n tiến trình được thực hiện đồng thời, tăng hiệu suất tính toán lên n lần.
Trong hệ phân tán thường có nhiều máy, mỗi máy có một hoặc nhiều bộ xử lý
trung tâm. Nếu có m máy, mỗi máy có một bộ xử lý trung tâm thì sẽ có tới m tiến
trình chạy song song, miễn là các tiến trình định vị ở các máy khác nhau. Hệ phân
tán dựa trên mô hình chia sẻ tài nguyên có nhiều cơ hội để thực hiện song song với
hai lý do:
- Nhiều người sử dụng đồng thời gọi tới lệnh hoặc tương tác với các
chương trình ứng dụng.
- Nhiều trình chủ chạy đồng thời, mỗi trình chủ đáp ứng với yêu cầu
mà trình khách đưa ra.
d. Tính quy mô.
Hệ phân tán hoạt động hiệu quả ở nhiều quy mô khác nhau. Hệ phân tán nhỏ
nhất chỉ gồm 2 trạm làm việc và một file Server, trong khi đó hệ phân tán xây
dựng từ một mạng LAN có thể bao gồm vài trăm trạm làm việc và một số file
server, print Server và các server có mục đích khác nhau. Một số mạng LAN
thường được kết nối với nhau thành các liên mạng và các liên mạng có thể bao
gồm hàng nghìn máy, nhưng chúng chỉ tạo thành một hệ phân tán nhờ khả năng
chia sẻ tài nguyên của chúng.
Phần mềm hệ thống và phần mềm ứng dụng không cần thay đổi khi quy mô
của hệ thống tăng lên. Đặc tính này có được nhờ khả năng mở rộng của hầu hết
các hệ phân tán hiện nay và các thành phần của chúng. Tuy nhiên, cần có những
nghiên cứu sâu hơn về lĩnh vực này trong sự phát triển của các hệ thống và các
phần mềm có quy mô rất rộng, hoặc khi xuất hiện các mạng có hiệu suất cao.
11
1.4 Xây dựng và phân loại các hệ thống phân tán.
1.4.1 Phần cứng.
Flynn ’s Taxonomy (1972) là một phân loại các kiến trúc máy tính đề xuất bởi

Michael J. Flynn năm 1966. Theo Ông có 2 đặc điểm cần thiết để phân loại hệ
thống máy tính nhiều CPU : Số lượng các dòng chỉ dẫn và số dòng dữ liệu.
Bảng 1.2. Cấu trúc máy tính theo mô hình Flynn’s Taxonomy
Single Instruction Multiple Instruction
Single Data SISD MISD
Multiple Data SIMD MIMD
SISD (Single Instruction, Single Data) là một thuật ngữ ám chỉ đến một kiến
trúc máy tính, trong đó một bộ xử lý đơn, uniprocessor một, thực thi một dòng chỉ
dẫn duy nhất, để hoạt động trên dữ liệu lưu trong một bộ nhớ duy nhất. Điều này
tương ứng với kiến trúc Von Neumann.
SISD là một trong bốn phân loại chính như định nghĩa trong phân loại của
Flynn. Trong hệ thống phân loại dựa trên số lượng đồng thời hướng dẫn và các
luồng dữ liệu hiện nay trong kiến trúc máy tính. Theo Michael J. Flynn, SISD có
thể có đặc điểm xử lý đồng thời.
Hình 1.2 Kiến trúc SISD
SIMD (Single Instruction, Multiple Data; colloquially, "vector instructions") :
Trong máy tính SIMD là một kỹ thuật làm việc để đạt được mức độ xử lý dữ liệu
song song.
12
Hình 1.3 Kiến trúc SIMD.
MISD (Multiple Instruction, Single Data) : Trong máy tính MISD là một kiểu
kiến trúc tính toán song song, nơi các đơn vị chức năng thực hiện nhiều hoạt động
khác nhau trên cùng dữ liệu. Kiến trúc đường ống (Pipeline) thuộc loại này. Kiến
trúc này không được sử dụng rộng rãi như MIMD và SIMD thường thích hợp hơn
cho dữ liệu phổ biến kỹ thuật song song. MISD đôi khi áp dụng để phân loại các
hệ thống dự phòng.
Hình 1.4 Kiến trúc SISD.
MIMD (Multiple Instruction stream, Multiple Data stream) : Là một kỹ thuật
làm việc để đạt được xử lý song song. Bằng cách sử dụng cơ chế MIMD có một số
chức năng của bộ vi xử lý mà không đồng bộ và độc lập. Bất cứ lúc nào, bộ vi xử

lý khác nhau có thể được thực hiện hướng dẫn khác nhau trên mảnh khác nhau của
dữ liệu.
13
Hình 1.5 Kiến trúc MIMD.
Kiến trúc MIMD có thể được sử dụng trong một số lĩnh vực ứng dụng như
máy tính hỗ trợ thiết kế, máy tính hỗ trợ sản xuất, mô phỏng, làm mẫu và là thiết
bị chuyển mạch giao tiếp. Cơ chế MIMD có thể được bộ nhớ chia sẻ hoặc bộ nhớ
phân tán. Phân loại này được dựa trên cách bộ vi xử lý truy cập bộ nhớ MIMD. Cơ
chế bộ nhớ chia sẻ có thể có bus mở rộng hoặc kiểu phân cấp. Cơ chế bộ phân tán
có thể có phân hypercube hoặc lược đồ kết nối hỗn hợp (mesh interconnection
schemes).
SMP (Symmetric Multi-Processing) : Trong máy tính SMP liên quan đến một
kiến trúc máy tính đa xử lý gồm hai hoặc nhiều bộ vi xử lý giống hệt nhau có thể
kết nối với một bộ nhớ đơn chính được chia sẻ. Hầu hết các hệ thống đa xử lý phổ
biến hiện nay sử dụng một kiến trúc SMP. Trong trường hợp xử lý đa lõi, kiến trúc
SMP áp dụng cho các lõi, xử lý như là bộ vi xử lý riêng biệt.
Hệ thống SMP cho phép bất kỳ bộ vi xử lý có làm việc trên bất kỳ nhiệm vụ
nào mà các dữ liệu không phải cho nhiệm vụ được đặt trong bộ nhớ. Với sự hỗ trợ
hệ điều hành thích hợp, các hệ thống SMP có thể dễ dàng di chuyển nhiệm vụ giữa
các bộ vi xử lý để cân bằng khối lượng công việc một cách hiệu quả.
Tất cả các CPU kết nối với bus chia sẻ. Hệ thống trông giống như từ bộ vi xử
lý.
14
Hình 1.6 a. Trường hợp xử lý quá tải trên bus.
Để đối phó với tình trạng quá tải trên bus, người ta thực hiện:
+Thêm bộ nhớ địa phương : CPU nào xử lý I / O thì sẽ bổ sung bộ nhớ cache
+Truy cập bộ nhớ chính trên bộ nhớ cache lỗi.
Hình 1.6 b. Bổ sung thêm bộ nhớ cache trên CPU xử lý I/O.
Làm việc với cache
CPU A đọc vị trí 12345 từ ô nhớ :

Hình 1.6 c. CPU A đọc vị trí trên bộ nhớ vào cache chịu lỗi.
CPU A sử vị trí 12345
15
Hình 1.6 d. CPU A sửa vị trí 12345.
CPU B đọc vị trí 12.345 từ bộ nhớ, thực hiện :
- Nhận giá trị cũ.
- Bộ nhớ không kết hợp.
Hình 1.6 e. Xử lý của CPU B
Write-through cache
Để thực hiện sửa lại giá trị trên, thực hiện bằng cách viết tất cả giá trị bus đi
qua đến bộ nhớ chính CPU A bằng cách sửa lại vị trí 12345 – write-through.
Bộ nhớ cache bây giờ sẽ như sau :
Hình 1.6 f. CPU A thực hiện Write-through để sửa lại vị trí 12345.
- CPU B đọc vị trí 12.345 từ bộ nhớ
- Nạp vào bộ nhớ cache.
16
Hình 1.6 g. CPU B đọc vị trí 12.345 từ bộ nhớ.
- CPU A đổi vị trí 12.345
- Thực hiện Write- through
- Cache trên CPU B không được cập nhật
- Bộ nhớ không kết hợp.
Hình 1.6 h. Kết hợp xử lý giữa CPU A và B.
Snoopy cache
- Thêm logic cho mỗi bộ điều khiển bộ nhớ cache
- Giám sát hoạt động bus
- Hầu như tất cả các kiến trúc cơ sở bus sử dụng một bộ nhớ cache snoopy.
Hình 1.6 i. Trường hợp bổ sung Snoopy cache.
17
Switched multiprocessors
- Với n CPUs và n modul bộ nhớ :

+ Cần log2n trạng thái chuyển đổi, mỗi trạng thái có n/2 lần chuyển đổi.
Tổng cộng : (nlog2n)/2 chuyển đổi.
+ Nhanh hơn n2 , nhưng giá thành còn đắt.
Hình 1.7 Kiến trúc Switched multiprocessors.
Kiến trúc bus cơ sở không mở rộng một số lượng lớn các CPU (8 +). Ở kiến
trúc này bộ nhớ chia thành các nhóm và kết nối khối của bộ nhớ đến các bộ vi xử
lý với một bộchuyển mạch thanh ngang. (Hình 1.10). N2 điểm chuyển đổi được
cấu thành.
Crossbar alternative: Mạng omega
Giảm điểm chuyển mạch bằng cách thêm nhiều giai đoạn chuyển đổi.
Hình 1.8 Kiến trúc mạng Omega
18
NUMA(Non-Uniform Memory Access or Non-Uniform Memory Architecture)
là một thiết kế bộ nhớ máy tính được sử dụng trong multiprocessors, nơi mà thời
gian truy cập bộ nhớ phụ thuộc vào vị trí bộ nhớ tương đối với một bộ xử lý. Với
Numa, một bộ xử lý có thể truy cập bộ nhớ địa phương của nó nhanh hơn bộ nhớ
không cục bộ; nghĩa là, bộ nhớ địa phương đến một bộ xử lý khác hay bộ nhớ chia
sẻ giữa các bộ vi xử lý.
Hình 1.9 Kiến trúc NUMA.
Kiến trúc Numa tổ chức theo kiến trúc đa xử lý đối xứng (SMP). Sau đó, nó
được thương mại hóa bởi Burroughs, Hewlett-Packard, Silicon Graphics,
Computer Systems v.v…trong những năm 1990. Kỹ thuật được phát triển và sử
dụng trong một loạt các kiểu hệ điều hành Unix, Linux (Linux 2.5 kernel ) và một
phần nào trong Windows NT.
Bus-based multicomputers
- Không có bộ nhớ chia sẻ.
- Cơ chế giao tiếp cần hoạt động trên bus:
+Giao thông thấp hơn nhiều so với bộ nhớ truy cập.
+Không cần bus hệ thống vật lý.
- Có thể sử dụng LAN để thay thế.

19
Hình 1.10 Sự kết hợp của các máy trạm trên LAN.
Switched multicomputers
Kết nối của các máy trạm trên mạng LAN :
Hình 1.11 Mô hình kết nối các máy tính trên LAN.
1.4.1 Phần mềm.
Hệ thống đơn
Sự kết hợp của các máy tính độc lập xuất hiện như một hệ thống đơn với người
dùng.
Đặc điểm của hệ thống này được thể hiện:
- Độc lập ( Independent): Có khả năng tự trị (autonomous)
- Hệ thống đơn (Single system): Người dùng không nhận thức được phân tán.
Phần mềm hệ thống phân tán
Theo Lamport :
20
“You know you have a distributed system when the crash of a computer you’ve
never heard of stops you from getting any work done.”
– Leslie Lamport
Các khái niệm phần mềm :
a. DOS (distributed OS).
- Là hệ điều hành cho các hệ multiproccessor và các hệ homogenous
multicomputer.
- Mục tiêu là ẩn giấu và cung cấp các dịch vụ quản trị tài nguyên.
- Đặc điểm là các dịch vụ có thể được thực hiện bởi các lời triệu gọi từ xa.
b. NOS (Network OS).
- Là hệ điều hành cho các hệ thống heterogenous multicomputer (LAN, WAN).
- Mục tiêu của NOS là cung cấp các dịch vụ từ xa.
c. Middleware.
- Là tầng phụ nằm giữa tầng dịch vụ của NOS và tầng ứng dụng phân tán.
1.5 Các mô hình tổ chức hệ phân tán.

Bao gồm 3 mô hình:
- Client/erver
- Peer to peer
- Mobile agent.
1.5.1 Client/Sever.
Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình
này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ
(đóng vai trò người cung ứng dịch vụ), máy chủ sẽ xử lý yêu cầu và trả kết quả về
cho máy khách.
21
Hình 1.12 Mô hình client-server
Ví dụ: Khi truy cập vào internet vào địa chỉ :
 yêu cầu hiển thị nội dung trang chủ
dưới dạng web ở máy chủ về client. Yêu cầu này phải chính xác thì server mới
hiểu được. A1, A2 là 2 thư mục trên máy chủ PTIT.edu.com.
- Client: Gửi yêu cầu và đợi đến khi server trả kết quả thì hiển thị
- Server: Nếu máy chủ này không có thông tin, nó sẽ phải kết nối đến các
máy chủ khác có thông tin đó để xử lý và trả về kết quả cho client. Nếu
thông tin có trên máy chủ mình yêu cầu thì gọi là 2 lớp. Nếu thông tin có
trên máy chủ khác mà phải kết nối thì gọi là n lớp. Giữa các máy chủ liên
kết với nhau dùng peer to peer.
- Trên mạng TCP, các dịch vụ chủ yếu dùng mô hình này.
Thuật ngữ server được dùng cho những chương trình thi hành như một dịch
vụ trên toàn mạng. Các chương trình server này chấp nhận tất cả các yêu cầu hợp
lệ đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về máy yêu
cầu. Một chương trình được coi là client khi nó gửi các yêu cầu tới máy có chương
trình server và chờ đợi câu trả lời từ server. Chương trình server và client nói
chuyện với nhau bằng các thông điệp (messages) thông qua một cổng truyền thông
liên tác IPC (Interprocess Communication). Để một chương trình server và một

chương trình client có thể giao tiếp được với nhau thì giữa chúng phải có một
chuẩn để nói chuyện, chuẩn này được gọi là giao thức. Nếu một chương trình
22
client nào đó muốn yêu cầu lấy thông tin từ server thì nó phải tuân theo giao thức
mà server đó đưa ra. Bản thân chúng ta khi cần xây dựng một mô hình
client/server cụ thể thì ta cũng có thể tự tạo ra một giao thức riêng nhưng thường
chúng ta chỉ làm được điều này ở tầng ứng dụng của mạng. Với sự phát triển mạng
như hiện này thì có rất nhiều giao thức chuẩn trên mạng ra đời nhằm đáp ứng nhu
cầu phát triển này. Các giao thức chuẩn (ở tầng mạng và vận chuyển) được sử
dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức SNA của IBM, OSI,
ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS. Một máy tính chứa chương
trình server được coi là một máy chủ hay máy phục vụ (server) và máy chứa
chương trình client được coi là máy tớ (client). Mô hình mạng trên đó có các máy
chủ và máy tớ giao tiếp với nhau theo 1 hoặc nhiều dịch vụ được gọi là mô hình
client/server. Thực tế thì mô hình client/server là sự mở rộng tự nhiên và tiện lợi
cho việc truyền thông liên tiến trình trên các máy tính cá nhân. Mô hình này cho
phép xây dựng các chương trình client/server một cách dễ dàng và sử dụng chúng
để liên tác với nhau để đạt hiệu quả hơn.
Mô hình client/server như sau: Client/Server là mô hình tổng quát nhất, trên
thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu
quả và nhanh hơn. Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp
yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó
không thể xử lý yêu cầu này được. Máy server có thể thi hành các nhiệm vụ đơn
giản hoặc phức tạp. Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày,
khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu
theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server
sẽ trả về thông tin mà client yêu cầu. Có rất nhiều các dịch vụ server trên mạng
nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý
và trả kết quả cho client yêu cầu. Thông thường chương trình server và client được
thi hành trên hai máy khác nhau. Cho dù lúc nào server cũng ở trạng thái sẵn sàng

chờ nhận yêu cầu từ client nhưng trên thực tế một tiến trình liên tác qua lại
23
(interaction) giữa client và server lại bắt đầu ở phía client, khi mà client gửi tín
hiệu yêu cầu tới server. Các chương trình server thường đều thi hành ở mức ứng
dụng (tầng ứng dụng của mạng). Sự thuận lợi của phương pháp này là nó có thể
làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông
chuẩn cụ thể ở đây là giao thức TCP/IP. Với các giao thức chuẩn này cũng giúp
cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họ lên mạng
mà không gặp phải khó khăn gì. Với các chuẩn này thì các chương trình server
cho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian
(timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy
trên chính một máy tính các nhân bình thường. Có thể có nhiều chương server
cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.
Với mô hình trên chúng ta nhận thấy rằng mô hình client/server chỉ mang đặc
điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu
cho một máy server là cao hơn nhiều so với máy client. Lý do là bởi vì máy server
phải quản lý rất nhiều các yêu cầu từ các clients khác nhau trên mạng. Ưu và
nhược điểm chính Có thể nói rằng với mô hình client/server thì mọi thứ dường
như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao
gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ) với nhiều dịch vụ
đa dạng mà mô hình cũ không thể làm được. Mô hình client/server cung cấp một
nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế
hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS) Một trong những vấn
đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng.
Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra
hiện tượng thông tin truyền trên mạng bị lộ.
Client Trong mô hình client/server, người ta còn định nghĩa cụ thể cho một
máy client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn
thể hiện tính độc lập cho nó. Máy client có thể sử dụng các hệ điều hành bình
thường như Win9x, DOS, OS/2 Bản thân mỗi một client cũng đã được tích hợp

24
nhiều chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng
LAN, WAN theo mô hình client/server thì nó còn có thể sử dụng thêm các chức
năng do hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể
là các dịch vụ do các server trên mạng này cung cấp), ví dụ như nó có thể yêu cầu
lấy dữ liệu từ một server hay gửi dữ liệu lên server đó Thực tế trong các ứng
dụng của mô hình client/server, các chức năng hoạt động chính là sự kết hợp giữa
client và server với sự chia sẻ tài nguyên, dữ liệu trên cả 2 máy Vai trò của client
Trong mô hình client/server, client được coi như là người sử dụng các dịch vụ trên
mạng do một hoặc nhiều máy chủ cung cấp và server được coi như là người cung
cấp dịch vụ để trả lời các yêu cầu của các clients. Điều quan trọng là phải hiểu
được vai trò hoạt động của nó trong một mô hình cụ thể, một máy client trong mô
hình này lại có thể là server trong một mô hình khác. Ví dụ cụ thể như một máy
trạm làm việc như một client bình thường trong mạng LAN nhưng đồng thời nó có
thể đóng vai trò như một máy in chủ (printer server) cung cấp dịch vụ in ấn từ xa
cho nhiều người khác (clients) sử dụng. Client được hiểu như là bề nổi của các
dịch vụ trên mạng, nếu có thông tin vào hoặc ra thì chúng sẽ được hiển thị trên
máy client.
Server Server còn được định nghĩa như là một máy tính nhiều người sử
dụng (multiuser computer). Vì một server phải quản lý nhiều yêu cầu từ các client
trên mạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm
với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX,
WINDOWS Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyên
của hệ thống. Các ứng dụng chạy trên server phải được tách rời nhau để một lỗi
của ứng dụng này không làm hỏng ứng dụng khác. Tính đa nhiệm đảm bảo một
tiến trình không sử dụng toàn bộ tài nguyên hệ thống. Vai trò của server. Như
chúng ta đã bàn ở trên, server như là một nhà cung cấp dịch vụ cho các clients yêu
cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống Các
ứng dụng server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạt
25

×