Tải bản đầy đủ (.docx) (15 trang)

Đề cương ổn tập hệ phân tán có đáp á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 (108.39 KB, 15 trang )

1.
2.
3.
4.
5.
6.
7.

ĐỀ CƯƠNG ÔN TẬP HỆ PHÂN TÁN
Câu 1: Các dạng trong suốt của hệ phân tán: 7 dạng
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.
Trong suốt vị trí: che dấu vị trí đích thực của tài nguyên
Trong suốt di trú: che dấu khả năng di trú của tài nguyên
Trong suốt định vị lại: che dấu khả năng di trú của tài nguyên ngay cả
khi đang được sử dụng.
Trong suốt bản sao: che dấu các bản sao được nhân ra
Trong suốt về tương tranh: che dấu việc chia sẻ tài nguyên
Trong suốt về lỗi: che dấu lỗi hệ thống nếu có
Câu 2: Tính có giãn của hệ thống, các biện pháp nâng cao
tính co giãn của hệ thống:
Tính co giãn của hệ thống: và việc hệ thống thích nghi được
với những thay đổi về quy mô, được thể hiện qua các khía cạnh sau: 2
khía cạnh
1. Dễ bổ sung người sử dụng và tài nguyên hệ thống
2. Đáp ứng được thay đổi về quy mô quản trị hệ thống
Các biện pháp nâng cao tính co giãn: 3 biện pháp chính
1. Rút ngắn thời gian đợi:
2. Phân tán hệ thống:
3. Sao chép hệ thống:
Câu 3: Phân biện kiến trúc phân tầng(Architecture


Layered) và kiến trúc đa tầng(Architecture Multitiered):
Giống nhau: đều là mô hình client-server.
Server cung cấp các dịch vụ; client yêu cầu các dịch vụ từ server.
Client gửi các yêu cầu tới server và server tiếp nhận và phản hồi
các yêu cầu của client(không có chiều ngược lại).
Khác nhau:
Kiến trúc phân tầng
Kiến trúc đa tầng
Kiến trúc này dưới góc nhìn logic, Kiến trúc này dưới góc nhìn vật
hệ thống được chia làm các tầng, lý, các phần khác nhau của hệ
liên kết giữa các tầng là liên kết thống sẽ nằm ở các máy tính
logic.
khác nhau, liên kết giữa các tầng
Đây là mô hình kiến trúc hệ là liên kết vật lý.
thống theo chiều dọc.
Đây là mô hình kiến trúc theo
Gồm các tầng:
chiều ngang.
Giao diện người dùng
Client: cung cấp giao diện người
Mức xử lý(cốt lõi)
dùng
Mức dữ liệu
Server: cung cấp chương trình xử
Eg: tìm kiếm thông tin trên lý và dữ liệu
internet
Câu 4: Trình bày Thin client, fat client trong hệ phân tán,
nêu ứng dụng.
Thin client: client cung cấp giao diện người dùng, server cung
cấp dịch vụ gồm cả dữ liệu và quá trình xử lý.



Kiến trúc này dễ quản lý nên có khả năng mở rộng, tin cậy hơn,
máy client không cần cấu hình cao, nhược điểm mất khả năng nhận
thức của client.
Ứng dụng: học trực tuyến; liên lạc qua mạng; Game Web…
Fat client: client sẽ cung cấp giao diện người xử dụng và xử lý
một phần dữ liệu được lưu trữ, giảm tải công việc cho server.
Kiến trúc này khó quản lý khó mở rộng, độ tin cậy kém, yêu cầu
client phải có cấu hình cao. Ứng dụng: Game Online,….
Câu 5: Đặc điểm phần cứng của hệ phân tán: máy tính và
kiểu kết nối
2 loại máy tính: hệ thống máy tính đa xử lý(Multiprocessor) loại
máy có chia sẻ bộ nhớ; hệ thống đa máy tính(Multicomputer) loại máy
không chia sẻ bộ nhớ.
2 kiểu kết nối: kết nối dạng Bus-based(đơn) chỉ có một đường
kết nối; kết nối dạng Switch-based(đa) có nhiều đường kết nối đến các
máy khác.
Phân biệt hệ thống multiprocessor và multicomputer.
Hệ thống Multiprocessor
Hệ thống Multicomputer
Sử dụng 1 máy tính có nhiều cpu trên Sử dụng nhiều máy tính
main
Mỗi CPU có một không gian
Chỉ có một không gian địa chỉ duy địa chỉ riêng
nhất được chia sẻ cho các CPU
Kết nối kiểu Switch
Được liên kết kiểu Bus
Dễ mở rộng(chỉ cần thêm
Khó có khả năng mở rộng(các cpu gắn máy tính) chạy nhanh hơn

trên main)
Câu 6: Phân biệt truyển thông RPC-Remote Procedure
Call(gọi thủ tục từ xa) và truyền thông ROI-Remote Object
Invocation(gọi đối tượng từ xa).
Giống nhau: Sử dụng mô hình client-Server dùng để triệu gọi
phương thức/ hàm từ xa. Máy A gọi phương thức và hàm đặt trên máy
B(máy ở xa). Phương thức chạy trên máy tính ở xa nên sử dụng tài
nguyên của máy ở xa. Máy gọi hàm phải đợi một thời gian để cho máy
ở xa thực hiện hàm và trả về kết quả.
Khác nhau:
PRC
ROI
Cho phép gọi hàm và thủ tục từ Cho phép gọi đối tượng ở máy
máy khác(ở xa).
khác(từ xa), có dịch vụ định vị
Mô hình hướng thủ tục
đối tượng
Triển khai được cho cho 2 hệ Mô hình hướng đối tượng, cho
thống khác nhau
phép tham chiếu đối tượng
Viết bằng nhiều ngôn ngữ, chỉ cần Nền tảng sử dụng trên java và
client-server cùng một ngôn ngữ
được tích hợp sẵn trong java
Câu 7: Truyền thông RPC:
Các thông điệp được truyền tải có tính trong suốt, có mô hình
truyền thông không đồng bộ; đồng bộ và đơn tuyến.
Các bước của RPC: Đóng gói các tham số; Truyền (tham số; tham trị; tham
biến)



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 tham số: Việc đóng gói các tham số để chuyể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úp cho
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ục thích hợp.


Câu 8: 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 là tập hợp các đối tượng dữ liệu
được định kiểu nhằm dễ dàng chuyển đổi dữ liệu trong hệ thống hỗn
tạp.
Thông điệp gồm đầu và thân: đầu chứa thông tin phụ thuộc hệ
thống; thân có kích thước cố định hoặc thay đổi.
Các loại truyền thông hướng thông điệp và trường hợp vận dụng:
Truyền thông cơ bản:
Truyền thông kiên trì: Sử dụng trong gửi thư điện tử
Truyền thông nhất thời: thông điệp đó chỉ được lưu trong phiên
giao dịch và bị xóa trên server khi thông điệp đã được gửi hoặc mất
kết nối.
Truyền thông đồng bộ: Thông điệp sẽ ở trạng thái khóa tại trạm
gửi tin cho đến khi thông điệp đến đích.
Truyền thông dị bộ: Thông điệp sẽ được lưu tại trạm, server cục
bộ; khi gửi thông điệp xong máy trạm sẽ thực hiện các công việc
khác.
Truyền thông hỗn hợp:
Truyền thông đồng bộ kiên trì: Thông điệp sẽ được khóa tại máy
trạm gửi cho đến khi thông điệp được máy trạm nhận lưu lại lâu dài

Truyền thông đồng bộ nhất thời: Thông điệp được lưu trên máy
trạm trong thời gian gửi, và sẽ bị xóa khi máy trạm nhận không được
kết nối hoặc đã nhận
Truyền thông dị bộ nhất thời: bản tin không được lưu lâu dài và
máy trạm đợi khi thông tin được gửi đến máy nhận mới thực hiện tiếp
công việc của mình.
Truyền thông dị bộ kiên trì: thông điệp được lưu trữ lâu dài tại máy
trạm hoặc server
Câu 9: Truyền thông hướng dòng: 3 phương thức truyền
Truyền thông dị bộ: gói tin được truyền tuần tự không ràng buộc
thời gian.
Truyền thông đồng bộ: quy định độ chễ tối đa cho mỗi gói tin
Truyền thông đẳng thời: độ trễ thời gian nhỏ nhất.
Thông tin được truyền: media, data stream
Đồng bộ hóa các dòng lại ý nghĩa quan trọng: 2 loại(đơn,
phức tạp)
Vì thời gian có ý nghĩa quan trọng nên phải đồng bộ dòng nhằm
có được kết quả theo ý muốn của các thông tin cần trao đổi.
Câu 10: Tiến trình trong các hệ phân tán:
Là việc thực hiện các công việc được mô tả thông qua các chương
trình.
Một tiến trình được thực hiện yêu cầu cần phải được cung cấp đủ
tài nguyên và được CPU tiếp nhận và xử lý.
Mỗi tiến trình có một dòng xử lý và không gian địa chỉ riêng. Và
việc điều phối các tiến trình do hệ điều hành đảm nhiệm.
Câu 11: Luồng trong các hệ phân tán:


Luồng là đơn vị xử lý cơ bản của máy tính, một luồng đang được
xử lý thì các luồng khác phải chờ, một tiến trình có thể cần nhiều

luồng để xử lý, đối với tiến trình ko hỗ trợ đa luồng sẽ bị khóa bởi lời
gọi hệ thống.
Ý nghĩa của việc sử dụng các hệ thống đa luồng: khả năng
đáp ứng tốt hơn, một luồng bị treo hoặc quá tải, thì các luồng khác
vẫn có thể làm việc được.
Tận dụng thế mạnh của các hệ thống có kiến trúc đa xử lý, mỗi
CPU một luồn riêng nên việc chuyển từ luồng này sang luồng khác là
rất nhanh.
Chia sẻ tài nguyên dễ dàng; tiết kiệm hơn trong việc cấp phát bộ
nhớ và tài nguyên cho tiến trình, việc tạo lập và chuyển ngữ cảnh
nhanh hơn.
Câu 12: Mô hình đa luồng phía client và mô hình đa luồng
phía server:
Mô hình đa luồng khách hàng là những người được hưởng lợi ích
những mô hình đa luồng lại được ứng dụng trong hệ phân tán lại nằm
trên máy chủ.
Mỗi client gửi thông điệp đến server chính là việc thực hiện việc
thiết lập một luồng riêng biệt để lấy dữ liệu từ máy server.
Server được xây dựng trên mô hình đa luồng giúp hệ thống có thể
làm việc được với nhiều client trong một lúc, giúp các hệ thống có thể
xử lý song song đạt được hiệu năng cao.
Ví dụ: Khi có các yêu cầu máy chủ sẽ chọn 1 luồng Ram rỗi và giải
quyết yêu cầu đó mà không cần chú ý đến các luông đang xử lý trước
đó, dẫn đến máy chủ có thể giải quyết được nhiều yêu cầu mà hệ
thống vẫn hoạt động tốt.
Câu 13: Mô hình di trú mã: gồm 3 thành phần và 2 mô hình
Các thành phần của mã di trú: Code segment(tập lệnh chương
trình); Resource segment(chứa các tham chiếu đến tài nguyên bên
ngoài mà tiến trình cần); Execution segment(chứa trạng thái thực thi
tiến trình)

Mô hình di động yếu: chỉ có Code segment được chuyển kèm điều
kiện ban đầu, và một chương trình được chuyển luôn bắt đầu ở trạng
thái bắt đầu, lợi thế đơn giản, chỉ cần máy đích thực thi được mã là
được.
Mô hình di động mạnh: chuyển cả 3 thành phần, tiến trình đang
thực thi có thể dừng được và chuyển sang máy khác thực hiện tiếp,
khó thực hiện
Ý nghĩa: có thể toàn bộ tiến trình được di chuyển sang máy
khác. Nhược điểm di chuyển cả tiến trình sang máy khác là công việc
tốn kém và phức tạp.
Hiệu xuất của hệ thống được cải thiện nếu việc di chuyển tiến
trình được thực hiện 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: Tên có ý nghĩa quan trọng, nó cần thiết để xác định được
thực thể, hướng dẫn vị trí lưu trữ và tìm được thực thể.
1. Tên theo kiểu tên người không thích hợp.
2. Tên để phân biệt với các thực thể di động
3. Tên theo đường dẫn ko tồn tại => xóa(rác hệ thống)
Tên là dòng bit hoặc các ký tự để chỉ dẫn đến các thực thể chúng
ta có thể làm việc ví dụ: thực thể máy in để in, ổ cứng lưu dữ liệu,
hòm thư, website…
Điểm truy cập là một thực thể đặc biệt, tên điểm truy cập là một
địa chỉ; điểm truy cập có thể thay đổi; một thực thể có thể có nhiều
điểm truy cập
Địa chỉ: là một dạng đặc biệt của điểm truy cập, ví dụ địa chỉ Ip,
VIP4, VIP6.
Ví dụ mỗi website có một FTP(địa chỉ dạng số dạng ID- có thể thay

đổi) khó nhở => sử dụng mặt lạ(địa chỉ dạng chữ) dễ nhớ, dễ sử dụng
Câu 15+ 16 +17: Ý nghĩa của phân giải tên:
Có nhiều cách tổ chức tên trong không gian tên trong hệ thống
những thông thường hơn cả là tổ chức theo cấu trúc cây có hướng (với
các nhãn và ghi chú).
Giúp việc quản lý và khai thác các hệ thống tốt hơn, cùng mạng,
server thì cùng giải tên. Tại Việt Nam là .vn, .edu: giáo dục. .mid:
quân sự
Phương pháp phân giải tên tuần tự: được thực hiện bằng cách
truyền và nhận qua lại giữa client và các name server ở các mức khác
nhau. Theo cách này thì các server không trao đổi trực tiếp với nhau,
mỗi server chỉ phân giải nhãn tương ứng với lớp để xác định địa chỉ
của server tiếp theo, kết quả trả lại cho client là địa chỉ của name
server tiếp theo, và việc liên kết với server tiếp theo là do client đảm
nhiệm.
Được sử dụng trong trường hợp: server ít và ở gần client nhiều, chi
phí truyền thông thấp.
Phương pháp phân giải tên đệ quy: Mỗi name server sẽ gửi kết
quả đến name server tiếp theo mà nó tìm thấy. Và cứ như vậy cho đến
khi hoàn thành phân giải toàn bộ đường dẫn.
Được sử dụng trong trường hợp: server nhiều và ở xa,việc client
giảm, server tăng, chi phí truyền thông cao.
Câu 18+ 19+20: Cách tổ chức phân giải tên cho thực thể di
dộng:
Các hệ thống định danh truyền thống không phù hợp cho các
thực thể di động, đòi hỏi phải có cơ chế định vị những thực thể di
động vì thực thể di động có thể thay đổi vị trí việc tổ chức này sao cho
chúng hiệu quả là không hề đơn giản.
Định vị thực thể di động bằng truyền thông nhóm rộng rãi:
Thông tin được truyền đến tất cả các nhóm để xác định có phải thực

thể cần liên hệ hay không ? Khi mạng truyền thông lớn phương pháp
này tốn thời gian hiệu quả kém và không khả thi.


Định vị thực thể di động bằng chuyển con trỏ: Với một thực
thể di động rời khỏi vị trí A của nó đến vị trí B thì nó sẽ để lại một
tham chiếu tới vị trí mới của nó. Nhờ đó, khi định vị được thực thể,
client có thể xác định ngay được địa chỉ hiện tại của thực thể này nhờ
vết địa chỉ đó.
Các vấn đề gặp phải khi sử dụng phương pháp này là: Nếu
thực thể luôn luôn thay đổi thì phương pháp này không hiệu quả, bởi
nó phải duyệt qua quá nhiều địa chỉ khác. Ví dụ như các hệ thống lưu
trữ file trên Internet
Các thực thể trung gian phải lưu trữ con trỏ rất lâu khi thực thể
vẫn tồn tại
Khi thông tin về địa chỉ bị mất trên một host trung gian bất kì thì
nó không thể được tìm thấy nữa.
Định vị thực thể di động bằng thông qua điểm gốc: Cấp
phát cho mỗi thực thể một vị trí gốc (home) thường là nơi thực thể
được tạo ra.
Địa chỉ của home được đăng kí tại naming service.
Home đăng kí địa chỉ ngoài của các thực thể
Client luôn đến home trước tiên, và sau đó tiếp tục với các vị trí
bên ngoài.
Như vậy việc bảo vệ điểm gốc này là vô cùng quan trọng và cần
áp dụng một số phương pháp đặc biệt, bởi nếu điểm này down thì tất
cả các thực thể do nó quản lí sẽ không thể tìm thấy. Mọi liên hệ với
host đều thông qua điểm gốc này.
Khi thực thể muốn thay đổi vị trí thì phải đăng kí tại điểm gốc.
Như vậy quá trình làm việc với thực thể có thể mô tả qua 4 bước:

Gửi thông tin đến điểm gốc ; Điểm gốc gửi địa chỉ thực thể
Chuyển thông tin đến thực thể; Chuyển các thông tin tiếp theo
đến thực thể
Câu 21: Khái niệm đồng bộ hóa: Đồng bộ hóa là việc đồng bộ
các đồng hồ trên các máy tính trong hệ phân tán, để đồng bộ hóa giờ
trên toàn cầu người ta đưa ra khái niệm giờ chuẩn UTC. Đảm bảo các
tiến trình làm việc đúng tuần tự.
Lý do phải đồng bộ hóa: Việc đồng bộ hóa đồng hồ là cần thiết
và không hề đơn giản vì trên mỗi máy tính trong hệ phân tán có một
đồng hồ riêng.Ví dụ khi máy A hỏi giờ trước máy B, những vẫn có khả
năng nhận được giờ chậm hơn hoặc bằng máy B. điều này khó có thể
chấp nhận được nên việc đồng bộ hóa là cần thiết để hệ thống đạt
được sự thống nhất về thời gian.
Câu 22: Ý nghĩa của đồng bộ hóa đồng hồ vật lý: Liên quan
đến vấn đề thời gian vật lý và thời gian áp dụng phương pháp tính
toán Internation Automic Time được sử dụng cứ 86400 s sẽ chậm hơn
3ms so với thời gian vật lý, nên cần đồng bộ để thời gian thực và thời
gian trên các hệ phân tán được giống nhau.
Các giải thuật đồng bộ hóa đồng hồ vật lý:
Giải thuật Cristian: Trong hệ phân tán xây dựng một máy Time
Server và đồng bộ các máy còn lại với máy này.Trong khoảng thời


gian δ/2p mỗi máy sẽ gửi một thông điệp đến máy chủ hỏi thời gian
hiện tại. Máy chủ nhanh sẽ phản hồi bằng một thông điệp mang giá
trị thời gian C(utc).Bên gửi nhận được sẽ thiết lập lại clock thành
C(uct).
Đánh giá: giải thuật này có 2 vấn đề :
- Một là nếu clock bên gửi chạy nhanh thì lúc này C(uct) sẽ nhỏ
hơn thời gian hiên tại C(uct) của bên gửi. Có thể giải quyết bằng cách

thay đổi nhịp ngắt lại nhanh hơn hoặc chậm hơn cho đến lúc khớp
nhau.
- Hai là sự chênh lệch từ lúc C(uct) được gửi cho đến lúc nhận
được có thể gây lỗi. Giải quyết bằng cách ghi nhận khoản thời gian
giữa lúc gửi và nhận
Giải thuật Berkeley: Server time sẽ chủ động cho các máy
khác biết thời gian chuẩn của mình C UTC sau đó sẽ yêu cầu thông tin
về thời gian của các client.
Client sẽ trả lời khoảng thời gian chênh lệch giữa nó và server.
Server sẽ tính khoảng thời gian mà các client so với thời gian
chuẩn của server lúc đó và gửi cho các máy khách cách điều chỉnh
thời gian cho phù hợp.
Giải thuật trung bình: Vào thời điểm bắt đầu của mỗi lần đồng
bộ tất cả các máy của mạng sẽ broadcast thời gian của mình. Sau khi
broadcast nó sẽ bắt đầu thu thập thời gian mà các máy khác gửi đến
trong khoảng thời gian S. Bỏ đi giá trị lớn nhất và nhỏ nhất rồi tính
trung bình của các giá trị thời gian còn lại.
Câu 23: Đồng bộ hóa đồng hồ logic: Trong nhiều trường hợp,
giữa các tiến trình không nhất thiết phải phù hợp theo thời gian thực
tế mà chỉ cần khớp với nhau về thời gian. Do đó người ta đưa ra khái
niệm đồng hồ logic.
Trường hợp vận dụng: Khi sự kiện A, B,C cùng một tiến trình,
thứ tự xảy ra là A, B,C thì khi xử lý đưa ra kết quả A phải xảy ra trước
B, B phải xảy ra trước C, => A phải xảy ra trước X;
Nếu không cùng tiến trình thì việc thực hiện các yêu cầu đưa ra
kết quả có thể do trong quá trình truyển tải và xử lý có thể các sự
kiện được gửi trước có thể nhận kết quả sau tùy theo mức độ ưu tiên.
Câu 24: Các giải thuật bầu trọn trong đồng bộ hóa đồng hồ
logic:
Giải thuật áp đảo: Mỗi tiến trình có một ID duy nhất, các tiến

trình đều biết ID và địa chỉ của nhau trong hệ thống.
Các bước giải thuật:
1. P gửi thông điệp ELEC đến tất cả các tiến trình có ID cao hơn.
2. Nếu không tiến trình nào phản hồi thì P sẽ trở thành tiến trình
điều phối
3. Nếu tiến trình có ID cao hơn phản hồi thì nó trở thành tiến tình
điều phối.
Giải thuật vòng: Các tiến trình có một ID duy nhất, được sắp
xếp thành vòng tròn Logic. Mỗi một tiến trình có thể nhận biết được
tiến trình bên cạnh mình.


Các bước giải thuật:
1. Một tiến trình bắt đầu gửi thông điệp ELEC tới các nút còn tồn
tại gần nhất, quá trình gửi theo 1 hướng nhất định. Thăm dò
liên tiếp trên vòng cho đến khi tìm được 1 nút còn tồn tại.
2. Mỗi một tiến trình sẽ gắn ID của mình vào thông điệp gửi.
3. Cuối cùng sẽ chọn ra 1 tiến trình có ID cao nhất trong số các
tiến trình còn hoạt động và gửi thông điệp điều phối cho tiến
trình đó.
Câu 25: Nêu các giải pháp cấp khóa, khóa file và thu hồi
khóa trong các hệ thống file phân tán:
+ Thiết lập khóa. Việc tạo ra khóa bí mật giữa bên truyền và bên
nhận được thực hiện như sau:
Bên A và bên B đều tạo ra hai số lớn là n và g - hai số này có thể
được công khai. Bên A sẽ tạo ra một số lớn khác là x, bên B tạo ra số
lớn y và giữ bí mật chúng. Bên A sẽ gửi cho bên B: n, g và (gx mod n).
Bên B sẽ thực hiện tính (gx mod n)y= gxy mod n. do đó sẽ xác định
được khóa bí mật x của bên A. Đồng thời, bên B cũng gửi cho bên A
(gy mod n). Bên A thực hiện tính toán (gy mod n)x= gxy mod n nhờ

đó cũng xác định được khóa bí mật y của bên B.
+ Phân phát khóa: Trong hệ mã mật đối xứng, khóa bí mật tạo ra
phải được truyền đi trên kênh mật riêng. Trong hệ mật mã dùng khóa
công khai, khóa công khai phải đảm bảo cùng một cặp với một khóa
bí mật. Khóa công khai được truyền đi như một bản rõ trên đường
truyền và phải có hỗ trợ xác thực. Khóa bí mật được truyền đi trên
một kênh riêng và cũng phải được xác thực. Thông thường, khóa công
khai thường đượcthay bằng một chứng chỉ khóa công khai (public key certificate). Chứng chỉ này bao gồm một khóa công khai và một
xâu định danh để xác định được khóa mật liên kết với nó.
Câu 26: Nhất quán và nhân bản trong hệ phân tán:
Dùng bản sao để tăng độ tin cậy và tính sẵn sàng của hệ thống:
khi dữ liệu bị lỗi hay vì một nguyên nhân nào đó mà không thể dùng
được, ta có thể dùng ngay bản sao dữ liệu đó để hệ thống không phải
dừng lại và tránh được tình trạng sử dụng các dữ liệu không chính
xác.
Dùng bản sao để tăng hiệu năng của hệ thống: có thể tăng quy
mô hệ thống cả về số lượng lẫn phạm vi địa lý.
Tuy nhiên việc sử dụng nhân bản cũng phải trả giá, đó là tính nhất
quán dữ liệu của hệ thống bị suy giảm. Do sử dụng bản sao nên có
thể xảy ra trường hợp có sự thay đổi trên một dữ liệu mà không cập
nhật trên các bản sao của nó. Điều này sẽ gây ra các sai sót trong hệ
thống. Do đó phải tốn nhiều công sức để xây dựng các mô hình đảm
bảo tính nhất quán của dữ liệu.


Các mô hình đảm bảo tính nhất quản khi nhân bản:
Lấy dữ liệu làm trung tâm: Mô hình nhất quán chặt;Mô hình
nhất quán tuần tự và mô hình nhất quán tuyến tính; Mô hình nhất
quán nhân quả; Mô hình nhất quán FIFO; Mô hình nhất quán yếu; Mô
hình nhất quán đi ra; Mô hình nhất quán đi vào.

Lấy Client làm trung tâm: Nhất quán cuối cùng; Nhất quán đọc
đều; Nhất quán ghi đều; Nhất quán đọc kết quả ghi; Nhất quán ghi
theo sau đọc
Câu 27: Các giao thức kéo và đẩy trong quản lý các bản
sao:
Giao thức kéo cập nhật: là giao thức do server hoặc client khởi tạo
khi muốn được cập nhật. Giao thức này hoạt động hiệu quả trong các
hệ thống có tỷ lệ đọc/cập nhật thấp. Giao thức này thường được sử
dụng bởi cache trên máy client.
Giao thức đẩy cập nhật: là giao thức do server khởi tạo, trong giao
thức này các cập nhật được lan truyền mỗi khi có một thay đổi xảy ra
mà không cần các server khác yêu cầu. /giao thức đẩy hoạt động hiệu
quả trong các hệ thống có tỷ lệ đọc/cập nhật ở các bản sao tương đối
lớn. Bên cạnh đó, giao thức đẩy cập nhật cũng thích hợp với hệ thống
có yêu cầu cao về mức độ nhất quán giấu các bản sao.
Câu 28: Phân biệt bản sao khởi tạo bởi client và bản sao khởi tạo
bởi server:
Bản sao do Server khởi tạo: Các bản sao này được sử dụng để
làm tăng hiệu năng. Các bản sao này được xếp đặt động dựa vào yêu
cầu của server khác.
Đặc điểm: Giảm tải trên máy chủ; Các tệp tin được chỉ định sẽ
được đưa tới các vị trí gần với máy khách hơn.
Mỗi máy chủ theo dõi việc truy cập vào các tệp tin và vị trí mà
yêu cầu đến.
Ví dụ: mỗi máy chủ có thể biết được máy khách nào là gần với
một máy chủ nào đó nhất, nếu có hai máy trạm cùng chung một máy
chủ gần nhất nào đó thì tất cả các yêu cầu tới máy chủ ban đầu sẽ
được chuyển tới máy chủ đó. Nếu như số yêu cầu tới máy chủ ban đầy
mà giảm xuống dưới một giá trị nào đó thì tệp tin đó sẽ bị xóa khỏi
máy chủ đó. Điều đó sẽ làm giảm số lượng các bản sao và làm tăng

các yêu cầu tới các bản sao khác. Tuy nhiên vẫn phải đảm bảo rằng ít
nhất còn có một bản sao tồn tại.
Các bản sao do client khởi tạo : Một loại bản sao quan trọng là
bản sao được tạo ra bởi máy khách, nó thông thường được gọi là bộ
nhớ đệm (cache) Các bản sao này được tạo ra từ yêu cầu của client,
chẳng hạn như việc cache dữ liệu của một trình duyệt. Chúng được
xếp đặt động dựa vào yêu cầu của client. Bộ nhớ đệm của máy khách
được sử dụng để tăng thời gian truy cập dữ liệu. Thông thường, khi
máy khách muốn truy cập một số dữ liệu nào đó nó kết nối tới bản
sao gần nhất của dữ liệu đó và lấy dữ liệu nó cần về để đọc và lưu trữ
dữ liệu mà nó mới thay đổi. Nếu các thao tác đều là đọc dữ liệu thì
hiệu năng có thể tăng lên nhờ để máy trạm lưu trữ dữ liệu trong bộ


nhớ tạm. Các dữ liệu này được giữ trong bộ nhớ tạm trong một thời
gian nhất định nào đó. Thông thường bộ nhớ tạm nằm ngay trên máy
client.
Câu 29: Cách sao chép và caching được sử dụng trong các
hệ phân tán:
Sao chép : Một trong các vấn đề khi mở rộng hệ thống đó là
giảm hiệu xuất làm việc của hệ thống. Một trong những ý tưởng để
hạn chế điều đó là ứng dụng sao chép giữa các phân tử của hệ thống.
Sao chép ko chỉ làm tăng khả năng truy cập của hệ thống nó còn cho
phép cân bằng tải giữa các thành phần của hệ thống. điều này làm
tăng hiệu xuất làm việc của hệ thống
Caching : được xem như một hình thức sao chép (replication) đặc
biệt, thêm vào đó sự khác biệt giữa chúng là không nhiều. Kết quả
của cachhing cũng là tạo một sao chép dữ liệu Cache là một dạng đặc
biệt của nhân bản, nó được điểu khiển bởi client thay vì được điều
khiển bởi server.

Chiến lược phát hiện coherence: xác định khi nào thì sự không
nhất quán xảy ra là từ đó loại bỏ những dữ liệu gây ra sự không nhất
quán. Có 2 giải pháp
Giải pháp tĩnh: tại thời điểm biên dịch chương trình thì những chỉ
thị phụ thuộc sẽ được thêm vào để phát hiện những dữ liệu không
nhất quán.
Giải pháp động: tại thời điểm chạy chương trình thì có những
đoạn mã kiểm tra tính không nhất quán của dữ liệu cache với dữ liệu
của server.
Chiến lược ép buộc coherence: xác định xem dữ liệu cache đươc
giữ nhất quán với dữ liệu lưu trên server như thế nào. Có 2 cách để
buộc dữ liệu phải chặt chẽ với nhau
Để cho client đảm bảo sự nhất quán của dữ liệu.
Để cho server gửi đi thông điệp về sự không hợp lệ khi dữ liệu bị
thay đổi
Việc thực hiện thao tác ghi dữ liệu vào cache được tiên
hành như thế nào?
Cache chỉ đọc: Các cập nhật được thực hiện bởi server (bằng
giao thức đẩy) hoặc client (bằng giao thức kéo mỗi khi client nhận
thấy dữ liệu cache đã cũ)
Cache ghi thẳng:client sẽ thay đổi nội dung của cache, sauđó sẽ
gửi các cập nhật đến cho server.
Cache ghi lại: client trì hoãn sự lan truyền cập nhật, cho phép
nhiều cập nhật được tạo ra cục bộ sau đó gửi các cập nhật mới nhất
cho server.
Câu 30: Trình bày các cách thức lan truyền cập nhật:
Chỉ thông báo là có cập nhật: thường dùng trong các cache
dữ liệu. Giao thức Innavidation thực hiện công việc này. Các bản sao
được thông báo về việc một thao tác cập nhật đã diễn ra và dữ liệu
của bản sao này không còn chính xác nữa. Giao thức này có thể chỉ ra

một phần nào đó của dữ liệu bị thay đổi, do đó chỉ phần dưc liệu bị


thay đổi cần cập nhật lại. Phương pháp này tốt khi tỉ lệ các thao tác
đọc so với thao tác ghi nhỏ.
Truyền dữ liệu cập nhật từ bản sao này tới bản sao khác:
Thực hiện tốt khi có nhiều thao tác đọc. Các thao tác ghi nhận lại và
tập hợp các cập nhật lại để truyền đi( chỉ truyền đi các thay đổi chứ
không truyền các dữ liệu bị thay đổi, vì thế tiết kiệm được băng
thông).
Lan truyền các thao tác cập nhật tới các bản sao
khác(nhân bản chủ động): Tốn ít băng thông nhưng đòi hỏi năng
lực xử lý cao vì trong nhiều trường hợp thì các thao tác là rất phức
tạp.
Câu 31+32: Tính chịu lỗi trong các hệ phân tán: Có ý nghĩa
quan trọng quyết đình sự thành công của hệ thống và đảm bảo tính
sống còn , liên tục của hệ thống
Lỗi của các hệ phân tán: nhất thời, lỗi lặp, lỗi lâu dài.
Hệ thống được đánh là chịu lỗi: khả năng chịu lỗi; dự phòng và
chịu sai sót; ngoài ra hệ thống còn phải có khả năng ngăn ngừa lỗi,
loại bỏ lỗi và dự báo lỗi
Ví dụ chịu lỗi: ae tự chém gió nhé.


Một hệ thống có khả năng chịu lỗi phải đảm bảo những
yêu cầu sau:
Tính sẵn sàng (availability): Là hệ thống luôn có thể hoạt động
trong mọi thời điểm.
Tính tin cậy (reliability): Là hệ thống có thể hoạt động trong thời
gian dài mà không bị gián đoạn, không xảy ra lỗi.

Tính an toàn (safety): Là hệ thống mà khi xảy ra lỗi cũng không
dẫn đến thảm họa, các hệ thống cần phải có độ an toàn cao là các hệ
thống điều khiển.
Khả năng bảo trì (maintainability): Là hệ thống có khả năng phục
hồi sau khi xảy ra lỗi, nếu sự phục hồi này diễn ra tự động thì có thể
nói hệ thống có tính sẵn sàng cao.
Câu 33+34+35: Các loại dư thừa được sử dụng để tăng tính
chịu lỗi trong các hệ phân tán.
Hệ thống có khả năng chịu lỗi, nó phải có khả năng che giấu
những lỗi xảy ra với các tiến trình khác. Có 3 kỹ thuật được thực hiện
để che dấu lỗi là:
Dư thừa thông tin: Bổ sung thêm các bit dư thừa để phát hiện lỗi
và phục hồi lỗi.
Dư thừa thời gian: một hành động được thực hiện, sau đó nếu cần
thiết nó sẽ được thực hiện lại một lần nữa. Sự dư thừa thời gian tỏ ra
đặc biệt hữu ích khi lỗi là tạm thời hoặc không liên tục.
Sự dư thừa vật lý: Nghĩa là các tiến trình hoặc thiết bị dự phòng
được thêm vào giúp cho hệ thống hoàn thiện để chống lại sự thiếu
hoặc hoạt động sai chức năng của một số thiết bị.
Câu 36: Các thao tác khắc phục lỗi ở phía server và client
trong truyền thông RPC(gọi phương thức từ xa) có 5 loại lỗi :
1. Client không định vị được server
Nguyên nhân: Do server và client dùng các phiên bản khác nhau
hoặc do chính server bị lỗi.
Khắc phục: Sử dụng các ngoại lệ (exception) để bắt lỗi như ở
ngôn ngữ java và điều khiển tín hiệu (signal handle) như ở ngôn ngữ
C. Hạn chế của phương pháp này là không phải ngôn ngữ nào cũng hỗ
trợ ngoại lệ hay điều khiển tín hiệu. Nếu tự viết một ngoại lệ hay điều
khiển tín hiệu thì sẽ phá hủy tính trong suốt.
2. Mất bản tin yêu cầu từ client đến server dễ khắc phục

nhất
Nguyên nhân: Hệ điều hành hay client stub kích hoạt một bộ
đếm thời gian (timer) khi gửi đi một yêu cầu. Khi timer đã trở về giá
trị 0 mà không nhận được bản tin phản hồi từ server thì nó sẽ gửi lại
yêu cầu đó. Nếu bên client nhận thấy có quá nhiều yêu cầu phải gửi
lại thì nó sẽ xác nhận rằng server không hoạt động và sẽ xác định lỗi
là "không định vị được server”.
3. Server gặp lỗi sụp đổ ngay sau khi nhận được yêu cầu từ client
Nguyên nhân:
Loại 1: Sau khi thực hiện xong yêu cầu của client thì server bị lỗi.


Phương pháp khắc phục: sau đó server sẽ gửi thông báo hỏng
cho client.
Loại 2: Vừa nhận được yêu cầu từ client thì server đã bị lỗi
ngay.Phương pháp khắc phục: client chỉ cần truyền lại yêu cầu cho
server. Nhưng vấn đề là client không thể nói cho server biết yêu cầu
nào là yêu cầu được gửi lại.
Phương pháp khắc phục lỗi ở phía server:
Kĩ thuật 1: Khi server hoạt động trở lại, cố thực hiện yêu cầu đã
nhận được trước khi lỗi đó. Như thế RPC thực hiện ít nhất một lần.
Kĩ thuật 2: Khi server hoạt động trở lại không thực hiện yêu cầu
nhận được trước khi bị lỗi mà sẽ gửi lại thông báo hỏng cho client biết
để client gửi lại yêu cầu. Với kĩ thuật này thì RPC thực hiện nhiều lần
nhất.
Kĩ thuật 3: Không thực hiện gì để đảm bảo cả. Khi server bị lỗi,
client không hề hay biết gì cả. Kiểu này, RPC có thể được thực hiện
nhiều lần cũng có thể không thực hiện lần nào.
Phương pháp khắc phục lỗi ở phía client:
Client không thực hiện gửi lại các yêu cầu. Vì thế không biết

bao giờ yêu cầu đó mớithực hiện được hoặc có thể không bao giờ
được thực hiện.
Client liên tục gửi lại yêu cầu: có thể dẫn tới trường hợp một
yêu cầu được thực hiện nhiều lần.
Client chỉ gửi lại yêu cầu: khi không nhận được bản tin ACK
phản hồi từ server thông báo đã nhận thành công. Trường hợp này,
server dùng bộ đếm thời gian. Sau một khoảng thời gian xác định
trước mà không nhận được ACK thì client sẽ gửi lại yêu cầu đó.
Client gửi lại yêu cầu nếu nhận được thông báo hỏng từ server
4. Mất bản tin từ server gửi lại client
Thiết kế các yêu cầu có đặc tính không thay đổi giá trị
(idempotent). Client đánh số thứ tự cho các yêu cầu, server sẽ nhận
ra được đâu là yêu cầu đã được gửi lại nhờ các số thứ tự này. Do đó
server sẽ không thực hiện lặp lại các yêu cầu. Tuy nhiên server vẫn
phải gửi trả về bản tin thông báo yêu cầu nào bị thất lạc.
5. Client gặp lỗi sụp đổ sau khi gửi tin nhắn yêu cầu
Nguyên nhân: Client gửi yêu cầu tới server rồi bị lỗi trước khi
nhận được trả lới từ server gửi về. Công việc mà server thực hiện
nhưng không có đích nào đợi để nhận được gọi là một “orphan”. Như
thế sẽ gây lãng phí chu kì CPU.
Khắc phục: Có 4 giải pháp được đưa ra trong trường hợp này là:
Trước khi gửi đi yêu cầu, client stub lưu lại yêu cầu công việc. Sau
khi phục hồi sau lỗi, việc thực hiện các orphan đang diễn ra sẽ dừng
lại.
Chia thời gian hoạt động liên tục của client thành các thời kì. Khi
client khôi phục thì chỉ số thời kì lại tăng lên một đơn vị. Lúc này client
sẽ gửi thông báo đến tất cả các máy khác thông báo số thời kì mới
của mình. Khi nhận được thông báo này thì các orphan sẽ dừng lại.



Khi nhận được bản tin thông báo thời kì mới, server sẽ kiểm tra
xem có đang thực hiện yêu cầu từ xa nào không và sẽ cố xác định
xem client nào đã gửi yêu cầu này. Nếu không xác định được thì quá
trình tính toán này sẽ bị hủy bỏ.
Quy định mỗi RPC chỉ có một khoảng thời gian xác định T để thực
hiện, sau khi gặp lỗi, client sẽ phải đợi thêm một khoảng thời gian T
trước khi khởi động lại để nhận các orphan.



×