1. Trang chủ
  2. » Giáo án - Bài giảng

Ôn thi môn lý thuyết hệ phân tán

27 792 4

Đ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 27
Dung lượng 1,74 MB

Nội dung

Tính trong suốt transparency Một hệ phân tán được gọi là trong suốt nếu nó có khả năng che dấu tính rời rạc và những nhượcđiểm có thể của nó đối với người sử dụng cuối và người lập trìn

Trang 1

Câu 1 Làm rõ các dạng trong suốt của hệ phân tán.

Các đặc trưng cơ bản của hệ phân tán (6 đặc trưng)

1) Kết nối người sử dụng với tài nguyên

2) Tính trong suốt (transparency)

3) Tính mở (openess)

4) Tính co dãn (scalability)

5) Tính chịu lỗi (Fault tolerance)

6) Tính an toàn an ninh (security)

Tính trong suốt (transparency)

Một hệ phân tán được gọi là trong suốt nếu nó có khả năng che dấu tính rời rạc và những nhượcđiểm có thể của nó đối với người sử dụng cuối và người lập trình ứng dụng Có 8 dạng trong suốt :

1 Trong suốt truy cập: che dấu cách biểu diễn dữ liệu và cách thức truy cập tài nguyên (ko cần biết dlđược lấy ntn.)

2 Trong suốt vị trí: che dấu vị trí thực của tài nguyên (ko cần biết lấy từ đâu)

3 Trong suốt di trú: che dấu khả năng di trú (di chuyển từ nơi này sang nơi khác) của tài nguyên màngười sd ko hề biết

4 Trong suốt định vị lại: che dấu khả năng tài nguyên có thể di chuyển từ nơi này đến nơi khác ngay cảkhi đang được sử dụng

5 Trong suốt về nhân bản: che dấu các bản sao được nhân ra

6 Trong suốt về tương tranh.(Các máy ko cạnh tranh về tài nguyên)

7 Trong suốt về lỗi (có lỗi về hệ thống nhưng người dùng ko biết)

Câu 2: Tính co dãn của hệ phân tán Các biện pháp nâng cao khả năng co dãn của hệ phân tán.

a Tính co giãn (Scalability)

Một hệ phân tán được gọi là có tính co giãn nếu nó thích nghi với sự thay đổi quy mô của hệ thống.

Thể hiện trên các khía cạnh sau:

- Dễ bổ sung người sử dụng và tài nguyên hệ thống

- Khi hệ thống thay đổi quy mô về mặt địa lý là dẫn đến sự thay đổi về vị trí địa lý của người sử dụng

và các tài nguyên

- Hệ thống có thay đổi quy mô về quản trị

Nếu hệ phân tán có tính co giãn thường ảnh hưởng đến hiệu năng của hệ thống (hiệu năng của hệ thống

là hiệu quả năng lực hoạt động của đối tượng)

b Có ba giải pháp phổ dụng để giải quyết vấn đề co giãn của hệ phân tán:

- Rút ngắn thời gian đợi: được sử dụng trong một trường hợp mở rộng về mặt địa lý Ý tưởngcủa nó là

hạn chế tối đa thời gia chờ đợi đối với những trả lời từ server ở xa

- Phân tán: phân nhỏ thành phần hệ thống và phân bố chúng trên phạm vi của hệ thống (quản lý phân

cấp) Ví dụ DNS xác định theo cách phân cấp miền lớn thành các miền con Với phương pháp này sẽgiải quyết được vẫn đề khi thêm người dùng hay tài nguyên vào hệ thống

- Nhân bản: nhân bản một thành phần nào đó của hệ thống Ví dụ tài nguyên dữ liệu đặt tại các vị trí

khác nhau trong hệ thống

Câu 3 Phân biệt kiến trúc nhiều phần và kiến trúc đa tầng.

- Kiến trúc đa tầng (phân tầng) _ layered: các thành phần được tổ chức theo từng tầng gối lên nhausao cho 1 thành phần ở tầng trên được phép gọi các thành phần của tầng ngay bên dưới nó, nhưng ko

có chiều ngược lại

- Kiến trúc nhiều phần: Multitiers Architectures : mỗi máy tính chứa một số chức năng khác nhauDạng đơn giản:

Trang 2

1 Một máy client chỉ chứa chương trình thực hiện (một phần) các cấp giao diện người dùng

2 Một máy chủ server chứa các phần còn lại, đó là chương trình thực hiện việc ở mức xử lý và mức dữliệu

Dạng phức tạp:1 Máy client, 2 Máy vừa là client vừa là máy chủ server, 3 Máy server

Giống nhau:

Đường đi của Resquest và Response theo 2 chiều khác nhau Resquest đi từ tầng cao xuốngtầng thấp, Response theo chiều ngược lại Resquest đi từ Client tới Server và Response theochiều ngược lại (Không có chuyện đảo ngược đc đường đi này Server ko yêu cầu Client, tầng thấp koyêu cầu tầng cao)

Nếu sử dụng thin - client, server sẽ cung cấp các quá trình xử lý và quản lý dừ liệu; cung cấpcho khách hàng những giao diện đồ họa đơn giản Với kiến trúc này ta sẽ dễ dàng quản lý hơn, đáng tincậy hơn, các máy client không cần phải quá lớn và cấu hình cao nhưng lại làm mất các hoạt động nhậnthức của client

Mặt khác, nếu sử dụng máy fat - client tất cả các ứng dụng xử lý dữ liệu và một số dữ liệu tạiphía client sẽ làm giảm khối lượng công việc tại máy chủ, có khả năng mở rộng hơn nhưns lại khóquản lý bời quản trị hệ thống và kém an toàn

Vận dụng: Fat- client:với các game cần năng lực xử lý cao thì không để server xử lý nhiều, server chỉ

xử lý các thông tin quan trọng , client sẽ xử lý nhiều hơn, mô hình d,e (hình trên)

Thin - client: Học trực tuyến , sử dụng mô hình a,b vì cần quản lý dữ liệu tập trung có sự thốngnhất trong việc test, cập nhật… năng lực của Server hoàn toàn đảm bảo quản lý tập trung dl

Câu 5 Trình bày những hiểu biết về đặc điểm phần cứng của hệ phân tán Phân biệt hệ thống multiprocessor và multicomputer.

Quan niệm về giải pháp phần cứng cho hệ phân tán

Trang 3

- Kết nối dựa trên bus (bus-based): chỉ có một đường kết nối chung.

- Kết nối dựa trên chuyển mạch (switch-based): có nhiều đường kết nối từ máy này sang máy khác

Một điểm khác nhau giữa chúng đó là multiprocessors chỉ có một không gian địa chỉ duy nhất

được sử dụng cho tất cả các bộ vi xử lý Hay nói cách khác, tất cả các máy tính đều sử dụng chung một

bộ nhớ Ví dụ: nếu một bộ vi xử lý nào ghi thông tin, giá trị 44 vào địa chỉ 1000, thì tất cả các bộ vi xử

lý khác sau đó nếu đọc giá trj tại địa chỉ 100 đuề nhận được giá trị 44

Khác với hệ thống nêu trên, trong một hệ thống Multicomputers, mỗi máy tinh sử dụng bộ nhớ

của mình Sau khi một bộ vi xử lý ghi giá trị 44 vào địa chỉ 100 thì bộ vi xử lý khác nếu đọc giá trị tạiđịa chỉ 1000 sẽ nhận được giá trị mà nó lưu vào trước đó (không nhất thiết là 44) Ví dụ điển hình về

hệ thống này đó là: một vài máy tính được nối với nhau qua mạng

Liên kết kiểu BUS được hiểu là liên kết theo một mạng duy nhất, panel, bus, cable hay các môitrường khác kết nối các máy với nhau Ví dụ dễ hiểu nhất đó là mạng tivi, công ty cung cấp dịch vụ sẽkéo dọc theo các cable chính, còn người sử dụng sẽ kết nối từ cable chính đó vào ti vi của mình

Liên kết theo kiểu SWITCHED không tồn tại một đường kết nối duy nhất đó mà thay vào đó từmáy tính này đến máy tính kia được kết nối với nhau theo kênh riêng và được kết nối theo các côngnghệ khác nhau Các thông báo được chuyển đi theo các kênh với sự ra quyết định rõ ràng là sẽ kết nốivới kênh ra cụ thể của từng máy tính

KIẾN TRÚC ĐA BỘ XỬ LÝ - MULTIPROCESSORS

Hệ thống Multiprocessors có điểm đặc trưng là: Tất cả các bộ vi xử lý đều có khả năng truy cậpvào bộ nhớ chung Hệ thống Multiprocessors liên kết theo kiểu BUS được tạo thành bởi một vài bộ vi

xử lý được kết nối với nhau bởi panel chung và thông qua nó là bộ nhớ dùng chung Cấu hình đơn giảnnhất đó là panel với bus hay mainboard, ở đó đặt các bộ vi xử lý và bộ nhớ dùng chung

Do chúng dung chung bộ nhớ duy nhất, khi bộ vi xử lý A ghi 1 từ vào bộ nhớ, còn bộ nhớ Bkhoảng microsecond sau đó đọc từ bộ nhớ A Bộ nhớ mang đặc trưng thống nhất Vấn đề ở chỗ nếulược đồ này được tạo thành bởi 4 hay 5 processor thì bus sẽ trở nên quá tải và hiệu suất làm việc sẽgiảm trông thấy Giải pháp được đưa ra là đặt vào giữa processor và bus một bộ nhớ đệm Ở bộ nhớđệm này sẽ lưu thông tin được truy cập thường xuyên nhất Tất cả các yêu cầu đều được xử lý thôngqua bộ nhớ đệm này Nếu các thông tin yêu cầu nằm trên bộ nhớ đệm thì bộ vi xử lý sẽ sử dụng thôngtin trên bộ nhớ đệm này mà không cần thông qua bus Nếu kích thước của bộ nhớ đệm đủ lớn thì lưulượng bus tính theo bộ vi xử lý sẽ càng nhỏ, điều này cho phép kết nối vào hệ thống nhiều bộ vi xử lýhơn

Tuy nhiên, đưa bộ nhớ đệm vào thì lại tạo ra một vấn đề khác Cùng xem ví dụ hai bộ vi xử lý A

và B cùng đọc 1 từ từ bộ nhớ đệm của riêng mình, sau đó bộ vi xử lý A ghi đè lên từ đó trong khi bộ vi

xử lý B ở lần sau lại muốn sử dụng từ đó thì nó sẽ đọc giá trị cũ của mình từ bộ nhớ đệm mà khôngphải là giá trị mới được ghi bởi bộ vi xử lý A Như vậy là bộ nhớ trở lên không thống nhất và lập trìnhcho hệ thống trở lên khó khăn hơn Tuy nhiên sử dụng bộ nhớ đẹm trong hệ phân tán vẫn được sử dụngrộng rãi và ở đây chúng ta lại vướng phải vấn đề không thống nhất thông tin trong bộ nhớ

Trang 4

Vấn đề của hệ thống Multiprocessors nằm ở việc hạn chế khả năng mở rộng, thậm chí trongtrường hợp sử dụng bộ nhớ đệm Đối với hệ thống với hơn 256 vi xử lý, khi kết nối các bộ phận vi xử

lý này với bộ nhớ cần phải sử dụng phương pháp khác Một trong những phương pháp đí là phân bộnhớ ra làm các modul nhỏ và kết nối chúng với các bộ vi xử lý thông qua lưới kết nối (crossbar switch)giống như hình vẽ:

(a): Chuyển mạch thanh chéo (crossbar)

(b): Chuyển mạch Omega

Ở hình vẽ (a) thì mỗi bộ vi xử lý đều có thể kết nối với module bộ nhớ bất kỳ Các điểm nốigiữa bộ nhớ và vi xử lý là một điểm kết nối Ưu điểm của sơ đồ này là mỗi bộ vi xử lý có thể truy cậpvào bất cứ module bộ nhớ nào Một ưu điểm nữa là đồng thời 2 bộ vi xử lý có thể truy cập vào mộtmodule bộ nhớ, mặc dù nếu trong cùng một thời điểm hai bộ vi xử lý truy cập vào một bộ phận của bộnhớ thì một bộ vi xử lý phải đợi đến lượt

Tuy nhiên, nhược điểm của sơ đồ trên là nếu tồn tại n bộ vi xử lý và n module bộ nhớ thì chúng

ta phải có n2 điểm kết nối Nếu số lượng n là quá lớn thì phương pháp trên là không hiệu quả Phát hiện

ra điều này người ta đề xuất một mô hình mới, đòi hỏi ít điểm kết nối hơn đó là mô hình mạng Omeganhư hình (b)

Trong hình (b) ta thấy, tồn tại 4 điểm chuyển đổi 2x2, mỗi điểm có 2 đầu vào và 2 đầu ra Chúng

ta có thể thấy rằng với sơ đồ này thì mỗi bộ vi xử lý cũng có thể truy cập đến một khối bộ nhớ bất kỳ.Nhược điểm của sơ đồ trên chúng ta thấy rằng để mỗi bộ vi xử lý có thể truy cập đến các khối bộ nhớthì nó cần phải đi qua vài điểm kết nối và như vậy rõ rang làm giảm thời gian truy cập Như vậy cácswitch này phải xử lý rất nhanh

Người ta cố gắng giảm bớt chi phí vào các switch kể trên bằng cách chuyển qua sơ đồ hình cây.Đối với trường hợp này thì mỗi bộ vi xử lý có thể nhanh chóng truy cập đến phần bộ nhớ của mình.Truy cập vào các phần bộ nhớ khác nếu so sánh sẽ chậm hơn Ý tưởng này được thực hiện bới máyNUMA (NonUniform Memory Access) Mặc dù máy NUMA có thời gian truy cập trung bình nhanhhơn so với máy Omega Network Tuy nhiên nó vẫn còn tồn tại yếu điểm của nó, đó là khi phân phốicác chương trình và tài nguyên đòi hỏi phải phân bố sao cho phần lớn các truy cập là trên phần bộ nhớriêng của từng bộ vi xử lý

KIẾN TRÚC ĐA MÁY TÍNH - MULTICOMPUTERS

Hệ thuần nhất/ Hệ không thuần nhất:

Hệ thống thuần nhất: Mạng máy tính cùng sử dụng một công nghệ, các bộ vi xử lý là như

nhau, truy cập đến cùng một bộ nhớ giống nhau Thường dùng trong hệ thống có tính toán song song

Hệ thống không thuần nhất: Những máy tính khác nhau kết nối với nhau.

Hệ thuần nhất Multicomputers

Khác với hệ multiprocessers, xây dựng hệ multicomputers là tương đối dễ hơn Mỗi bộ vi xử lýliên kết trực tiếp với bộ nhớ của riêng mình Vấn đề còn lại là liên kết giữa các bộ vi xử lý với nhau Xem xét hệ đồng đều multicomputers Ở những hệ này chúng ta làm quen với tên gọi SystemArea Networks – SAN Các máy tính được lắp đặt riêng rẽ và chúng liên kết với nhau thông qua mạngkết nối với tốc độ cao Giống như trường hợp trước, chúng ta phải lựa chọn hoặc hệ thống theo kiểuBUS hoặc kiểu SWITCH

Trang 5

Trong các hệ thống theo kiểu BUS, các máy tính kết nối với nhau thông qua mạng phân chianhiều truy cập, ví dụ Fast Ethernet Tốc độ truyền tin thông thường là 100 Mb/s Cũng giống nhưtrường hợp multiprocessors, cấu trúc kiểu BUS này có những hạn chế liên quan đến việc mở rộng hệthống Càng nhiều máy tính hay càng nhiều nút thì hiệu quả làm việc của hệ thống càng giảm bớt Trong các hệ thống theo kiểu SWITCH thông tin được truyền từ bộ vi xử lý này sang bộ vi xử

lý khác Đã có một số đề xuất để giải quyết theo một số topology sau:

(a): Kiểu lưới; (b): Kiểu siêu khối

Trên hình vẽ, trên các đỉnh là các processor, còn các cạnh là liên kết giữa các processor

Đối với các hệ thống theo kiểu SWITCH tồn tại nguyên tắc: Các bộ vi xử lý hoạt động songsong Một máy tính khổng lồ hoàn toàn có thể được tạo ra bởi các bộ vi xử lý dùng cho các máy trạmthông thường, chúng chỉ khác ở chỗ phương pháp kết nối chúng với mạng chung Các mạng này đượcthiết kế sao cho thời gian chờ là ít nhất và hiệu quả làm việc là cao nhất Đồng thời cũng phải tính toánđến việc bảo vệ hệ thống khỏi hư hỏng Với sự tồn tại hang ngàn bộ vi xử lý thì hàng tuần phải có vài

bộ bị hỏng, cần khắc phục Phải đảm bảo làm sao cho hệ thống luôn ở trong trạng thái làm việc

Hệ không thuần nhất Multicomputers

Thông thường thì các hệ phân tán được xây dựng theo nguyên tắc không đồng đềumulticonputers Điều này có nghĩa là các máy tính là một bộ phận của hệ và chúng hoàn toàn có thểkhác nhau, ví dụ khác nhau về loại vi xử lý, về kích thước bộ nhớ, về hiệu suất làm việc của kênh xuấtnhập dữ liệu Các cách kết nối những máy tính như thế vào mạng chung cũng hoàn toàn có thể giốngnhau

Khi phát triển, mở rộng những hệ thống kể trên cần phải quan tâm đến vấn đề toàn diện, đápứng được phần lớn của hệ thống, để ý rằng khi thành lập những chương trinh đối với hệ thống khôngđồng đều trên cần phải sử dụng những chương trình riêng biệt sao cho người lập trình không phải lolắng về vấn đề phần cứng Phần mềm phải đảm bảo cho chương trình có thể hoạt động đối với mọi đặcđiểm khác nhau của phần cứng (đảm bảo tính trong suốt)

Câu 6 Hãy nêu đặc điểm giống nhau và khác nhau của truyền thông RPC và truyền thông ROI.

- RPC cho phép gọi các thủ tục nằm trên các máy khác Khi một tiến trình trên máy A muốnthực hiện một thủ tục nào đó nằm trên một máy B kết quả tương ứng sẽ được truyền trở lại cho máy A

- ROI (Triệu gọi đối tượng từ xa: Remote Object Invocation): Kỹ thuật hướng đối tượng đượcdùng rất phổ biến hiện nay trong việc phát triển các ứng dụng phân tán (distributed) và không phân tán(non-distributed) Điều quan trọng của đối tượng đó là nó ẩn giấu đi những gì bên trong cúa nó với bênngoài, mà nó sẽ chỉ cung cấp các giao diện (interface)

Giống nhau của truyền thông RPC và ROI:

Truyền thông RPC và ROI đều là các middleware(một cải tiến trong hệ phân tán là gộp tầngtrình diễn và tầng phiên thành 1 tầng mới là middleware.Tầng này nằm giữa hệ điều hanh và ứng dụng

ở mỗi đầu của hệ thống phân tán nằm trong mạng máy tính) được sử dụng với mục đích tăng tính mềmdẻo, trong suốt và hiệu quả cho hệ thống, tạo giao diện và cung cấp dịch vụ tốt cho tầng vận chuyểnphía dưới

Trang 6

Khác nhau của truyền thông RPC và ROI:

RPC: Được sử dụng rộng rãi nhất ưu điểm là đơn giản, hướng tới sự trong suốt về truy cập Tuy

nhiên những tham chiếu thông qua việc gọi thủ tục từ xa là hạn chế

ROI: Bản chất là một RPC nhưng điều đặc biệt là nó hướng tới đối tượng phân tán Điểm khác

biệt chính với RPC là roi cung cấp các thủ tục rmi cho phép tham chiếu đối tượng trong toàn hệ thốngthông qua các tham số thích hợp ROI đảm bảo tính trong suốt cao hơn RPC

Câu 7 Trình bày những hiểu biết về truyền thông RPC Yếu tố nào đảm bảo các lời triệu gọi thủ tục từ xa khác nhau thì thực hiện các công việc khác nhau.

Các mô hình dịch vụ Middleware.

a Gọi thủ tục từ xa - RPC (Remote Procedure Call)

b Triệu gọi đối tượng từ xa - ROI (Remote Object Invocation)

c Truyền thông hướng thông điệp - MOC (Message Oriented Communication)

d Truyền thông hướng dòng – SOC (Stream Oriented Communication)

1 RPC – gọi thủ tục từ xa

a Tổng quan về RPC:

Trong mô hình client - server thì lời gọi thủ tục từ xa được thực hiện qua các bước tóm tắt như sau:

· Tiến trình muốn thực hiện thủ tục ở máy client sẽ gọi client stub

· Client stub sẽ tạo một bản tin và có lời gọi đến hệ điều hành của client đó

· Hệ điều hành của máy client sẽ gửi bản tin đó tới hệ điều hành của máy server

· Hệ điều hành của server sẽ gửi bản tin tới server stub

· Server stub lấy các thông tin của gói tin và gọi server tương ứng

· Server thực hiện công việc được yêu cầu và trả kết quả về cho server stub

· Server stub đóng gói kết quả đó vào bản tin rồi gọi hệ điều hành của server đó

· Hệ điều hành của máy server này sẽ gửi bản tin kết quả đó hệ điều hành của máy client

· Hệ điều hành của máy client sẽ gửi bản tin cho client stub

· Client stub sẽ mở gói tin kết quả và trả về cho client

Hình 1: RPC giữa một client và server

b Xét chi tiết các thao tác RPC

- Đóng gói các tham số: việc đóng gói các tham số để chuẩn bị truyền đi do client stub thực hiện.

Client stub sẽ sắp xếp các tham số theo thứ tự và đưa vào hàng đợi Các tham số được truyền đi giúpcho server hiểu được công việc mình cần thực hiện tương ứng là gì để xác định lời gọi đến thủ tụcthích hợp

- Truyền tham số: Việc truyền tham số từ client tới Có hai cách truyền tham số là: truyền tham biến

và truyền tham trị

+ Truyền tham trị: các tham số được truyền đi là các giá trị cụ thể Các thủ tục được gọi đến sẽ coi

các tham biến được truyền kiểu tham trị như là các biến được khởi tạo cục bộ, có thể thay đổi giá trịnhưng lại không ảnh hưởng tới giá trị gốc trong lần gọi sau Vấn đề đặt ra khi truyền tham trị là yêucầu giữa các máy phải có sự đồng nhất về việc biểu diễn dữ liệu và các kiểu dữ liệu

Trang 7

+ Truyền tham biến: các tham số được truyền đi là con trỏ hay biến chứa địa chỉ của nơi chứa giá trị

thực của chúng Các thủ tục được gọi sẽ căn cứ vào địa chỉ này để tham chiếu đến giá trị khi tính toán.Khi giá trị này bị thay đổi trong khi thực hiện thủ tục thì sẽ được thông báo cho client và các lần gọisau sẽ dùng giá trị mới đó

c Nhược điểm:

- Phía gọi và bị gọi nằm ở 2 máy khác nhau nên K.gian địa chỉ khác nhau, phức tạp

- Tham số và k.quả trả về cũng phải được truyền đi Nếu tham số không thống nhất thì rất phứctạp

* Yếu tố nào đảm bảo các lời triệu gọi thủ tục từ xa khác nhau thì thực hiện các công việc khác nhau.: đóng gói các tham số

Câu 8 Nêu những hiểu biết về truyền thông hướng thông điệp và trường hợp vận dụng.

Truyền thông hướng thông điệp - MOC (Message Oriented Communication).

Trong một số trường hợp RPC tỏ ra không phù hợp, vì nó đòi hỏi cả bên gửi và bên nhận cùngphải sẵn sàng tại thời điểm diễn ra truyền thông Tuy nhiên, đôi khi chúng ta không thể biết được liệubên nhận yêu cầu có đang sẵn sàng hay không Chúng ta có thể giải quyết vấn đề này thông quaMessages-Oriented Middleware (MOM)

a Các loại truyền thông hướng thông điệp cơ bản

Truyền thông nhất thời (Message-oriented Transient communication): bản tin gửi đi chỉ được

lưu lại trong phiên trao đổi đó Khi phiên trao đổi đã hoàn thành hoặc khi kết nối bị hủy bỏ thì các bảntin đó cũng bị hủy bỏ trên các server Do đó, vì một lý do nào đó mà một server trung gian không thểchuyển tiếp bản tin đi được thì bản tin này sẽ bị hủy bỏ

Hình 5: Một số dạng truyền thông hướng thông điệp

Truyền thông kiên trì (Message-oriented Persistent communication): Thư điện tử là một ví dụ

minh họa rõ nét cho khái niệm truyền thông kiên trì Khi một trạm muốn gửi bản tin đi trên mạng, nó

sẽ gửi bản tin đó đến interface của máy mình Qua bộ nhớ đệm, bản tin đó được truyền đi trong mạngcục bộ để đến mail server cục bộ Mail server này tạm thời lưu trữ bản tin đó vào bộ nhớ đệm củamình, xác định địa chỉ trạm đích, rồi gửi tới server cục bộ của trạm đích tương ứng (có thể đi qua nhiềumail server trung gian khác) Tới mail server cuối cùng, bản tin lúc này sẽ được lưu lại trước khi phátcho trạm đích tương ứng

Với truyền thông nhất thời bản tin được lưu trong hệ thống truyền thông chỉ khi ứng dụng củabên gửi và bên nhận đều đang hoạt động Middleware không thể chuyển giao bản tin do việc truyềnthông bị gián đoạn hoặc nếu bên nhận đang offline thì bản tin sẽ bị huỷ bỏ Còn với truyền thông kiên

Trang 8

trì, bản tin được gửi đi sẽ được lưu trữ trong tầng trung gian truyền thông (communicationmiddleware) Do đó, ứng dụng gửi sẽ không cần tiếp tục ở trạng thái hoạt động sau khi gửi bản tin, vàứng ứng dụng bên nhận cũng không cần phải hoạt động khi bản tin được gửi.

Hai loại truyền thông cơ bản được sử dụng

Truyền thông đồng bộ (Synchronous communication): khi trạm gửi gửi đi một bản tin thì nó sẽ

ở trạng thái khóa (blocked) cho đến khi nhận được thông báo bản tin đó đã đến đích thành công

Truyền thông dị bộ (Asynchronous communication): khi trạm gửi gửi đi bản tin, nó sẽ tiếp tụcthực hiện công việc của mình Điều này cũng có nghĩa là bản tin đó được lưu lại trên bộ nhớ đệm củatrạm gửi hoặc của server cục bộ

b Một số loại truyền thông hỗn hợp.

Truyền thông dị bộ, kiên trì: bản tin được lưu trữ lâu dài hoặc là ở bộ nhớ đệm của trạm gửihoặc là trên server truyền thông đầu tiên mà bản tin đó tới Ví dụ hệ thống thư điện tử

Truyền thông đồng bộ, kiên trì: bản tin được lưu trữ lâu dài ở trạm nhận, trạm gửi sẽ ở trạng tháiblocked cho đến khi bản tin được lưu trữ ở bộ nhớ đệm trạm nhận

Truyền thông dị bộ, nhất thời: sau khi lưu trữ bản tin cần gửi ra bộ nhớ đệm của máy mình, trạmgửi sẽ tiếp tục thực hiện công việc của mình Cùng lúc, bản tin sẽ được truyền tới trạm nhận Khi bảntin đến được trạm nhận mà trạm nhận đó lại không làm việc, khi đó quá trình truyền thông bị hủy bỏ

Truyền thông đồng bộ, nhất thời: bản tin không được lưu trữ lâu dài Khi gửi đi một bản tin,trạm gửi sẽ chờ bản tin báo đã nhận thành công của trạm nhận gửi về mới thực hiện tiếp công việc củamình

Câu 9 Nêu những hiểu biết về truyền thông hướng dòng Tại sao trong truyền thông hướng dòng thì đồng bộ hóa các dòng lại có ý nghĩa quan trọng.

Truyên thông hướng dòng (stream - oriented communication)

Một số khái niệm:

Medium (media): chỉ các phươne tiện dùng để truyền thông tin như các thiết bị lưu trữ, đường truyền,các phương tiện hiên thị

Data stream: là một chuồi các đơn vị dữ liệu

Dòng đơn (simple stream) là dòna chi gồm một chuồi đơn vị dữ liệu Dòng phức (complex stream):bao gồm nhiều chuồi đơn vị dữ liệu khác nhau Mồi chuồi này được sọi là một dòns con (sub stream).Với data stream thì thời gian là yếu tố quyết định

Để kiểm soát thời gian người ta đưa ra ba phương thức truyền sau:

-Truyền dị bộ (asynchronous transmission mode): các mục dữ liệu truyền tuần tự và không có ràngbuộc thời gian đối với việc truyền

-Truyền đồng bộ (synchronous transmission mode): quy định trước độ trễ tối đa cho mồi đơn vị dữ liệutrong data stream

-Truvền đẳng thời (isochronous transmission mode): quy định độ trễ lớn nhất và nhỏ nhất cho mồi đơn

vị dừ liệu trona data stream Cách truyền này đóng một vai trò quan trọna trons việc trình diễn audio vàvideo

Đồng bộ các dòng:

-Đồng bộ đơn giản: thực hiện đồng bộ giữa dòng trễ và dòng liên tục Ví dụ irons việc trình diễn slide

có kèm âm thanh

• Dòng hình ảnh slide là dòna trễ còn dòng âm thanh là dòna liên tục

• Phải đồng bộ hai dòng này để thu được kểt quả trình diễn như ý muốn

-Đồng bộ phức tạp: là việc đồne bộ giữa các dòna dữ liệu liên tục Ví dụ trong việc xem phim trựctuyến, cả dòng âm thanh và dòng hình ảnh đều là các dòng liên tục cần phải được đồng bộ

Trang 9

Tại sao trong truyền thông hướng dòng thì đồng bộ hóa các dòng còn lại có ý nghĩa quan trọng

Với các hình thức truyền thông RPC, RMI, MOM, ta chỉ quan tâm đến việc trao đổi thông tin,

mà không hề quan tâm cụ thể rằng việc trao đổi thông tin sẽ diễn ra tại một thời điểm cụ thể nào, vàcũng không hề quan tâm đến việc thời gian truyền là nhanh hay chậm Nói cách khác, trong các môhình truyền thông RPC, RMI, MOM, thời gian không hề ảnh hướng tới tính đúng đắn của việc truyềntin

Với hình thức truyền thông hướng dòng, thời gian đóng vai trò cực kỳ quan trọng Ví dụ, nếumột đoạn âm thanh được phát lại với tốc độ khác với tốc độ của đoạn âm thanh ban đầu, nó có thể cho

ra kết quả khác với đoạn âm thanh gốc Tương tự như vậy, nếu chúng ta muốn xem một bộ phim trựctuyến trên mạng, nếu thời gian truyền của dữ liệu là quá chậm, bộ phim có thể bị gián đoạn Như vậy,hình thức truyền thông này được cung cấp nhằm tạo điều kiện thuận lợi cho việc trao đổi các thông tinphụ thuộc vào thời gian, khi mà thời gian sẽ ảnh hưởng đến tính đúng đắn của thông tin được trao đổi

Câu 10 Trình bày những hiểu biết về tiến trình trong các hệ phân tán.

1 Khái niệm về tiến trình

Tiến trình (process) là 1 chương trình đang trong quá trình thực thi nghĩa là một chương trìnhhiện đang được thực thi bởi một trong các bộ xử lý ảo của hệ điều hành Đối với tiến trình thì vấn đềquản lý và lập lịch cho các tiến trình những vấn đề quan trọng cần giải quyết Nhiều tiến trình có thểđồng thời chia sẻ cùng một CPU và các tài nguyên phần cứng khác

e Giá trị ở các thanh ghi (Register values)

3 Các trạng thái của tiến trình

- Trạng thái của tiến trình tại một thời điểm xác định bởi hoạt động của tiến trình tại thời điểm đó.

- Trong quá trình sống, tiến trình có thể thay đổi trạng thái do các nguyên nhân:

· Phải dừng hoạt động do hết thời gian

· Đợi một thao tác I/O hoàn tất

· Phải chờ một sự kiện xảy ra

-Tại một thời điểm, tiến trình có thể có một trong các trạng thái:

· new: Tiến trình đang được tạo

· running: Tiến trình đang chiếm hữu CPU & thực hiện các lệnh.

· waiting: Tiến trình đang chờ cung được cấp tài nguyên hoặc chờ một sự kiện nào đó xuất hiện

để chuyển sang trạng thái sẵn sàng

· ready: Tiến trình ở trạng thái sẵn sàng, được phân phổi đủ tài nguyên cần thiết, đang chờ đến

lượt được thực hiện theo cơ chế lập lịch của hệ điều hành

· terminated: Tiến trình kết thúc Nó không biến mất cho đến khi một tiến trình khác đọc được

trạng thái thoát của nó

Trang 10

Hoạt động(quá trình chuyển trạng thái)

– Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running Trong khi đó, nhiều tiếntrình có thể ở trạng thái waiting hay ready

– Tiến trình mới tạo được đưa vào hệ thống, được cung cấp đủ tài nguyên ở trạng thái ready(chờ

được phân phối CPU để thực hiện)

– Khi tiến trình đang thực hiện(running), nó có thể chuyển sang trạng thái:

• Kết thúc(terminal) nếu thực hiện xong

• Chờ(waiting) tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵnsàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất

• Sẵn sàng(ready) khi xảy ra ngắt để chuyển CPU cho tiến trình có mức ưu tiên cao hơn Bộ điềuphối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU hoặc hết thời gian chiếm hữu CPU– Bộ điều phối chọn một tiến trình khác có trạng thái ready cho xử lý

– Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát; hay sự kiện hoặc thao tác I/O tiếntrình đang đợi(có trạng thái waiting) hoàn tất, tiến trình chuyển sang ready

Câu 11 Luồng trong các hệ phân tán Ý nghĩa của việc sử dụng các hệ thống đa luồng.

– Mỗi tiến trình có một không gian địa chỉ và chỉ có một dòng xử lý

– Để tăng tốc độ và sử dụng CPU hiệu quả hơn cần nhiều dòng xử lý cùng chia sẻ một không gian địa chỉ, và các dòng xử lý này hoạt động song song tương tự như các tiến trình phân biệt (ngoại trừ

việc chia sẻ không gian địa chỉ)

– Mỗi dòng xử lý được gọi là một luồng(thread) hay một tiểu trình

• Khái niệm: Một luồng là một dòng xử lý cơ bản trong hệ thống Mỗi luồng xử lý tuần tự đoạn

code của nó, sỡ hữu một con trỏ lệnh, tập các thanh ghi và một vùng nhớ stack riêng

• Phân biệt luồng và tiến trình:

– Luồng được coi là mức thấp hơn của tiến trình, mỗi tiến trình có thể gồm nhiều luồng

– Hoạt động của các luồng giống như tiến trình nhưng các luồng cùng chia xẻ không gian địa chỉ chung, các tiến trình thì hoàn toàn độc lập

• Khi máy tính có nhiều CPU, mỗi CPU có thể thực hiện các công việc khác nhau hoặc các luồngkhác nhau cho cùng một công việc

• Khi hệ thống chỉ có một CPU, mỗi luồng được thực hiện luân phiên nhau Không có luồng nàochiếm ưu thế trong CPÚ

• Luồng là hữu ích vì chúng loại trừ được sự cần thiết phải để cho HĐH liên tục tải thông tin vào/ra

• *)Lời gọi hệ thống (System call): là tập lệnh mở rộng do hệ điều hành cung cấp xác định giao

diện giữa hệ điều hành và các chương trình người sử dụng

• *)Blocking System call: là lời gọi hệ thống mà sau khi được gọi bởi tiến trình người sử dụng thì

tiến trình này bị dừng lại cho đến khi thực hiện xong lời gọi hệ thống

• *)Non – Blocking System call: sau khi gọi, điều khiển được trả lại cho tiến trình gọi và tiến trình

này tiếp tục thực hiện song song với lời gọi hệ thống

Trang 11

* Một thuộc tính quan trọng của luồng là chúng cho phép khóa các lời gọi hệ thống mà không cần phảikhóa toàn bộ tiến trình mà có luồng đang chạy

* Kỹ thuật đa luồng (multi-threading) cho phép khai thác tính song song khi thực thi một chương trình trên một hệ thống nhiều bộ xử lý Khi đó, mỗi luồng được gán cho một CPU khác nhau trong

khi dữ liệu dùng chung được lưu trữ trong bộ nhớ chính dùng chung Phương pháp này thường đượcdùng trong UNIX

Câu 12 Trình bày những hiểu biết về mô hình đa luồng phía client và mô hình đa luồng phía server Cho ví dụ sử dụng trên thực tế.

Mô hình đa luồng phía Server

• Mặc dù những lợi ích quan trọng của việc sử dụng đa luồng trên ứng dụng phía khách hàng nhưngứng dụng chính của đa luồng trong hệ phân tán lại nằm bên phía máy chủ

• Thực tế cho thấy rằng đa luồng không chỉ làm đơn giản mã trên máy chủ mà còn làm cho việc pháttriển máy chủ khai thác xử lí song song đạt được hiệu năng cao Bây giờ các hệ thống đa xử lí đã được

sử dụng rộng rãi

• Mô hình máy chủ tệp tin: Đơn luồng, Đa luồng, Đa luồng ngăn xếp

• Máy chủ tệp tin đơn luồng: một khả năng là nó hoạt động như một luồng duy nhất

+ Vòng lặp chính của máy chủ tệp tin lấy một yêu cầu, kiểm tra nó và đưa nó ra để hoàn thành trướckhi thực hiện công việc kế tiếp

+ Trong khi chờ đợi đĩa, máy chủ trong trạng thái nhàn rỗi và không thực hiện bất kỳ yêu cầu nàokhác Do đó yêu cầu từ máy khách khác không thể xử lí

• Máy chủ tệp tin đa luồng

• Máy chủ tệp tin thường đợi các yêu cầu đến cho một hoạt động của tệp tin, sau đó thực hiện yêucầu, và gửi lại trả lời

• Tuy nhiên có thể thực hiện bằng cách khác, những yêu cầu được gửi đến một vị trí đặc biệt nào đótrên máy chủ, sau khi kiểm tra các yêu cầu máy chủ chọn ra một luồng nhàn rỗi nào đó để thực hiệnyêu này Như vậy có thể thực hiện nhiều yêu cầu mà vẫn đảm bảo hoạt động của hệ thống

• Tiến trình này sẽ thực hiện việc đọc các tệp tin trên hệ thống nội bộ, lúc này có thể làm cho luồng

bị dừng cho đến khi dữ liệu được đọc từ đĩa Nếu luồng bị dừng, luồng khác sẽ được chọn để thực thi

• Máy chủ tệp tin đa luồng ngăn xếp:

• Khi một yêu cầu đến, chỉ một luồng kiểm tra nó và nếu thỏa mãn thì thực hiện nếu không thì mộtthông điệp sẽ được gửi từ đĩa

• Tuy nhiên thay vì ngăn chặn nó ghi lại trạng thái của yêu cầu hiện tại vào một bảng và tiếp tục lấythông điệp tiếp theo Nếu thông điệp tiếp theo là công việc mới thì thực hiện còn nếu là lời trả lời từđĩa cho công việc trước đó thì nó sẽ lấy các thông tin liên quan từ bảng, lời trả lời đã được xử lí và sau

đó gửi lại cho phía máy khách

Theo cách này máy chủ sẽ sử dụng đến các lời gọi không chặn để gửi và nhận các yêu cầu

• Tóm lại

Trang 12

+ Với đa luồng , hệ thống thực hiện các lời gọi hệ thống(blocking system calls) và vẫn đạt được xử lýsong song Lời gọi hệ thống có thể che đươc làm cho việc lập trình dễ hơn và cải thiện hiệu suất xử lýsong song

+ Máy chủ đơn luồng đơn giản nhưng làm giảm một phần hiệu năng

+ Máy chủ theo kiểu máy hữu hạn trạng thái đạt được hiệu suất cao nhưng lại sử dụng lời gọi hệ thốngkhông che ( nonblocking system calls ) Việc này gây khó khăn trong lập trình

Mô hình đa luồng phía Client

● Hệ phân tán hoạt động trong một mạng lớn cần phải che dấu một số lần truyền các thông điệpnội bộ các quá trình

● Vòng trễ trong mạng diện rộng có thể dễ dàng xảy ra có thể từ hàng trăm ms đến một vài s.Thông thường để ẩn độ trễ trong kết nối là để thiết lập kết nối và ngay lập tức thực thi một việckhác

· Một ví dụ điển hình là hoạt động của trình duyệt Web: Thiết lập 1 kết nối TCP/IP,Header Infor, HTML Code, Images, Video,… à Multithreaded Web browser

· Một số lợi ích của việc sử dụng Multithreaded Web browser

o Tải nội dung HTML, load ảnh bằng các luồng khác nhau

o Một vài kết nối có thể được mở đồng thời

o Khi sử dụng Multithreaded client, kết nối có thể được thiết lập tới các bản coppy khácnhau của Web server, cho phép dữ liệu truyền song song

Câu 13 Trình bày các mô hình di trú mã Ý nghĩa.

1.1 Ý tưởng

Trước phần này, chúng ta chủ yếu đề cập đến việc truyền dữ liệu (passing data) trong hệ phântán Tuy nhiên, cũng có tình huống mà chúng ta cần phải truyền cả chương trình (passing program), vàđôi khi, ngay cả khi chúng ta đang được thực hiện Điều này liên quan đến thuật ngữ di trú mã

Ý tưởng của việc di trú mã đó là việc di trú các tiến trình (chứ không phải là source code) đangchạy ở một máy này sang máy một máy khác Thực chất ở đây là process migration

• Phần mã (Code Segment): chứa tập các lệnh của tiến trình đang thực hiện

• Phần tài nguyên (Resource Segment): chứa các tham chiếu đến tất cả các tài nguyên bên ngoài

Trang 13

máy đích có khả năng thực thi đoạn mã nguồn đó, ý tưởng chính của nó chỉ là làm cho đoạn code cókhả năng di động.

• Strong Mobility: Truyền cả phần mã và phần thực thi Đặc điểm của mô hình này là một tiếntrình đang chạy có thể được dừng lại rồi chuyển đến một máy khác và tiếp tục thực hiện tiếp tiến trình

đó →khó thực thi hơn

Di trú được khởi tạo từ phía nhận thực thi đơn giản hơn di trú được khởi tạo từ phía gửi

Do di trú từ phía gửi cần xác thực do cần bảo vệ tài nguyên cho server-nhiều hơn và quan trọnghơn

Ví dụ: một server gửi về một đoạn code cho browser của client, client xly đoạn code

Điểm yếu của di trú mã là bảo mật: không có cơ chế để kiểm tra

Ý nghĩa di trú mã :

- Di trú mã trong hệ thông phân tán diễn ra dưới hình thức tiến trình di chuyển trong đó toàn bộtiến trình được chuyển từ một máy sang một máy khác

- Di chuyển tiến trình đang chạy là công việc tốn kém và phức tạp

- Hiệu suất tổng thể hệ thống có thể được cải thiện nếu các tiến trình được chuyển từ tải mộtcách nặng nề sang tải một cách nhẹ nhàng

Câu 14 Trình bày các hiểu biết về tên, địa chỉ và điểm truy cập.

- Tên (name): là xâu các bit hoặc kí tự dùng để tham chiếu đến một thực thể trong hệ phân tán

- Địa chỉ (address): khi truy cập đến thực thể ta sử dụng điểm truy cập (access point) Các điểmtruy cập này cũng phải được đặt tên và tên đó chính là địa chỉ của nó Như vậy địa chỉ của thực thểchính là tên của điểm truy cập thực thể tương ứng

- Định danh (Identifiers): đây cũng là một kiểu tên đặc biệt Việc định danh một tên phải thỏamãn ba tính chất sau:

+ Mỗi thực thể chỉ được tham chiếu bởi duy nhất một định danh ID

- Mỗi ID tham chiếu tới một thực thể

- ID đó không được gán cho một thực thể khác

Không gian tên (Name space): dùng để biểu diễn tất cả các tên Nếu xét về mặt hình học thì đây

là một đồ thị có hướng, gồm các nút và các cung, gọi là đồ thị tên (naming graph) Đồ thị có cấu trúc:Mỗi nút lá miêu tả một một thực thể Mỗi nút directory gắn với nhiều nút khác; lưu trữ trong bảngdirectory, bảng này là tập các cặp (label,indetifier)

Tên thân thiện (Human-friendly name): là các tên được đặt một cách dễ hiểu, thân thuộc với conngười

* Độ phân giải tên:

Không gian tên đưa ra kĩ thuật lưu trữ và tìm kiếm các tên trên nó một cách dễ dàng Một trongnhững phương pháp hay dùng là sử dụng đường dẫn tên (path name) Quá trình tìm kiếm tên trongkhông gian tên được gọi là phân giải tên (name resolution) Quá trình phân giải tên trả về định danhmột nút

Closure machanism: là kĩ thuật cho ta biết quá trình tìm kiếm tên được bắt đầu như thế nào vàbắt đầu ở đâu

Linking: kĩ thuật này sử dụng bí danh (alias) - tên giống với tên của thực thể Với kĩ thuật nàycho phép nhiều đường dẫn cùng tham chiếu đến cùng một nút trên đồ thị tên Một cách tiếp cận khác làdùng một nút lá không phải để lưu trữ địa chỉ hay trạng thái của thực thể mà để lưu trữ đường dẫn tuyệtđối tới thực thể đó

Mounting: là kĩ thuật được thực hiện khi tìm kiếm trên hai không gian tên Một nút thư mụcđược gọi là một mount point (điểm gắn kết) lưu giữ id (hoặc các thông tin cần thiết cho việc xác định

và truy nhập) một nút thư mục bên phía không gian tên cần gắn kết được gọi là mounting point

Ngày đăng: 03/10/2017, 13:27

TỪ KHÓA LIÊN QUAN

w