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
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
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
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)
đổ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
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
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ờ
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
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
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
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.