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. 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 33 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. 34 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 41 Chương 3 ỨNG DỤNG HỆ PHÂN TÁN 42 3.1 Một số bài toán ứng dụng hệ phân tán 42 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 43 3.2.2 Cơ chế hoạt động của hệ thống 44 KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48
Trang 1
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
Trang 2MỤ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
Trang 3Chươ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
Trang 42005 : 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
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ể :
Trang 51987 : Đĩ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
Trang 6- 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 :
Trang 7Song 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.
Trang 8Trong đó :
+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
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
Trang 9phâ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)
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.
Trang 10Tà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
Trang 11thờ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
Trang 121.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
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
Trang 13Hì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
Trang 14có 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ý
Trang 15Hì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
Trang 16Để 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
Trang 17Hì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.
Trang 18Switched 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
Trang 19NUMA(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ế
Trang 20Hì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
Trang 21“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
Trang 22Hình 1.12 Mô hình client-server
Ví dụ: Khi truy cập vào internet vào địa chỉ :
http://www.PTIT.edu.com/A1/A2/index 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
Trang 23client 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
Trang 24(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