You are on page 1of 80

Câu 3. Có 3 máy tính cùng cung cấp dịch vụ nhân bản.

Các nhà sản xuất khẳng định rằng mỗi máy tính có thời gian
trung bình giữa các lần xảy ra lỗi là 5 ngày? 1 lỗi thường mất 4 giờ để sửa. Vậy tính giá trị khả dụng của dịch
vụ nhân bản trên? (trang 833 file pdf)
Xác suất một máy tính riêng lẻ bị hỏng là 4/(5*24 + 4) ~ 0,03. Giả sử máy không phụ thuộc vào lỗi, do đó, tính
khả dụng là 1 – 0,033 = 0,999973.
Câu 4: Một client gửi một message yêu cầu kích thước 200 byte tới một service, service sẽ tạo ra một phản hồi kích
thước 5000 byte. Hãy ước tính chi phí (độ trễ) để hoàn thành một yêu cầu trong mỗi trường hợp sau, với các
giả định về hiệu suất được liệt kê bên dưới:
a. Sử dụng giao tiếp không kết nối (ví dụ: UDP).
b. Sử dụng giao tiếp hướng kết nối (ví dụ: TCP).
c. Quá trình server ở trong cùng một máy với client.
Giả định:
- Độ trễ trên mỗi gói (cục bộ hoặc từ xa, phát sinh trên cả gửi và nhận): 5 ms
- Thời gian thiết lập kết nối (chỉ TCP): 5 ms
- Tốc độ truyền dữ liệu: 10 megabit mỗi giây
- MTU: 1000 byte.
- Thời gian xử lý yêu cầu máy chủ: 2 ms
- Giả sử rằng mạng được tải nhẹ. (trang 160 theo file pdf)

UDP: 5ms + [(200byte * 8bit/byte)/(10*10^6bit/giây)*10^3]ms + 2ms + 5khung hình *


[5ms+(1000byte*8bit/byte)/(10*10^6bit/giây)*10^3]ms
=5ms+1600bit/10*10^3bit/ms+2ms+5frame*5ms+8000bit/byte/10*10^3bit/ms)
=5ms+0,16ms+2ms+5khung hình*5ms+0,8ms)
=7,16ms+5khung hình*5,8ms
=7,16ms+29ms
=36,16 mili giây

TCP: thời gian thiết lập kết nối + UDP= 5ms + 36,16ms= 41,16ms

Cùng một máy: các tin nhắn có thể được gửi bằng một bản sao bộ nhớ đơn lẻ; ước tính tốc độ truyền dữ liệu
liên quá trình là m Mbps (phải nhanh hơn tốc độ truyền dữ liệu 10 mbps). Tổng thời gian = 5,0+ 200*8/(m *
10000) + 2,0 + 5,0 + 5000*8 / (m * 10000) ms ( không có thời gian thiết lập kết nối)
Câu 5: Máy chủ NTP B nhận được thông báo của máy chủ A lúc 16: 34: 23.480 mang dấu thời gian 16: 34: 13.430
và trả lời nó. A nhận được tin nhắn lúc 16: 34: 15.725, mang dấu thời gian của B là 16: 34: 25.7. Ước tính phần
bù giữa B và A và độ chính xác của ước tính. (Trang 645 theo file pdf)

Đặt a = Ti-2 – Ti-3 = 23.48 – 13.43 = 10.05


b = Ti-1 – Ti = 25.7 – 15.725 = 9.975
Phần bù giữa A và B là: oi = (a+b)/2 = 10.013s

1
Độ chính xác của ước tính là: ±di/2 = ±(a-b)/2 = 0.038s

Q1. Đưa ra năm loại tài nguyên phần cứng và năm loại dữ liệu hoặc tài nguyên phần mềm có thể hữu
ích được chia sẻ. Cho ví dụ về sự chia sẻ của chúng khi nó xảy ra trong các hệ thống phân tán.
Ans.
Phần cứng:
CPU: máy chủ tính toán (thực hiện các ứng dụng cần nhiều bộ xử lý cho máy khách), máy chủ đối tượng từ xa (thực thi các
phương thức thay mặt cho máy khách), chương trình sâu máy tính (chia sẻ dung lượng cpu của máy tính để bàn với người dùng cục
bộ). Hầu hết các máy chủ khác, chẳng hạn như máy chủ tệp, thực hiện một số tính toán cho khách hàng của họ, do đó cpu của họ là tài
nguyên được chia sẻ.
bộ nhớ: máy chủ bộ đệm (giữ các trang web được truy cập gần đây trong RAM của nó, để các máy tính cục bộ khác truy cập
nhanh hơn)
đĩa: máy chủ tệp, máy chủ đĩa ảo (xem Chương 8), máy chủ video theo yêu cầu (xem Chương 15).
màn hình: Hệ thống cửa sổ mạng, chẳng hạn như X-11, cho phép các quy trình trong máy tính từ xa cập nhật nội dung của cửa sổ.
máy in: máy in nối mạng chấp nhận lệnh in từ nhiều máy tính. quản lý chúng bằng một hệ thống xếp hàng.
dung lượng mạng: truyền gói cho phép nhiều kênh liên lạc đồng thời (luồng dữ liệu) được truyền trên cùng một mạch.
Dữ liệu/phần mềm:
trang web: trang web may chủ cho phép nhiều khách hàng đến đăng lại chỉ đọc trang Nội dung (thường xuyên lưu trữ Trong một
tập tin, nhưng đôi khi được tạo khi đang di chuyển).
tệp: máy chủ tệp cho phép nhiều máy khách chia sẻ tệp đọc-ghi. Cập nhật xung đột có thể dẫn đến kết quả không nhất quán. Hữu
ích nhất cho các tệp thay đổi không thường xuyên, chẳng hạn như tệp nhị phân phần mềm.
đối tượng: khả năng cho các đối tượng phần mềm là vô hạn. Ví dụ: bảng trắng dùng chung, nhật ký dùng chung, hệ thống đặt
phòng, v.v.
cơ sở dữ liệu: cơ sở dữ liệu là dự định đến ghi lại các dứt khoát tiểu bang của một số có liên quan bộ của dữ liệu. Họ có đã được
chia sẻ kể từ khi máy tính nhiều người dùng xuất hiện. Chúng bao gồm các kỹ thuật để quản lý các bản cập nhật đồng thời.
nội dung nhóm tin: The netnews hệ thống cung cấp các bản sao chỉ đọc của các mục tin tức được đăng gần đây cho các khách
hàng trên Internet. Một bản sao của nội dung nhóm tin được duy trì tại mỗi máy chủ netnews là bản sao gần đúng của nội dung tại các
máy chủ khác. Mỗi máy chủ cung cấp dữ liệu của nó cho nhiều khách hàng.
luồng video/âm thanh: May chủ có thể cửa hàng toàn bộ video trên đĩa và giao họ tại phát lại tốc độ, vận tốc đến nhiều khách
hàng đồng thời.
khóa độc quyền: một đối tượng cấp hệ thống được cung cấp bởi máy chủ khóa, cho phép một số máy khách phối hợp việc sử dụng
tài nguyên của họ (chẳng hạn như máy in không bao gồm sơ đồ xếp hàng).

Q2. Làm sao có thể các đồng hồ Trong hai máy vi tính cái đó là liên kết qua một địa phương mạng thì là ở đồng bộ hóa mà không
cần tham chiếu đến nguồn thời gian bên ngoài? Những yếu tố nào giới hạn độ chính xác của quy trình bạn đã mô tả? Làm thế nào
đồng hồ trong một số lượng lớn máy tính được kết nối bằng Internet có thể được đồng bộ hóa? Thảo luận về tính chính xác của thủ tục
đó.
Ans.
Một số giao thức đồng bộ hóa thời gian được mô tả trong Phần 10.3. Một trong số đó là giao thức của Cristian. Tóm lại, thời gian
khứ hồi t để gửi tin nhắn và trả lời giữa máy tính A và máy tính B là đo bằng lặp đi lặp lại bài kiểm tra; sau đó máy tính Một gửi nó là
cái đồng hồ cài đặt t đến máy tính b. b bộ nó là cái đồng hồ đến T + t /2. Các cài đặt có thể được tinh chỉnh bằng cách lặp lại. Quy
trình có thể không chính xác do tranh chấp về việc sử dụng mạng cục bộ từ các máy tính khác và sự chậm trễ trong việc xử lý thông
báo trong hệ điều hành của A và B. Đối với mạng cục bộ, độ chính xác có thể trong vòng 1 ms.
Đối với một số lượng lớn máy tính, một máy tính sẽ được chỉ định làm máy chủ thời gian và nó sẽ mang ngoài của Cristian giao
thức với tất cả các của họ. Các giao thức có thể thì là ở bắt đầu qua mỗi Trong xoay. Các điểm không chính xác khác phát sinh trên
Internet do các tin nhắn bị trì hoãn khi chúng đi qua các bộ chuyển mạch trong các mạng diện rộng hơn. Đối với mạng diện rộng, độ
chính xác có thể nằm trong khoảng 5-10 ms. Những câu trả lời này không tính đến nhu cầu chịu lỗi. Xem Chương 10 để biết thêm chi
tiết.

Q3. Một người sử dụng đến tại một đường sắt trạm cái đó cô ấy có không bao giờ đã đến thăm trước, chở một PDA cái đó Là có
khả năng kết nối mạng không dây. Đề xuất cách người dùng có thể được cung cấp thông tin về các dịch vụ và tiện nghi địa phương tại
nhà ga đó mà không cần nhập tên hoặc thuộc tính của nhà ga. Những thách thức kỹ thuật phải được vượt qua?
Ans.
Người dùng phải có khả năng lấy địa chỉ của thông tin liên quan cục bộ một cách tự động nhất có thể. Một phương pháp là để
2
mạng không dây cục bộ cung cấp URL của các trang web về địa phương qua mạng không dây cục bộ.
Để điều này hoạt động: (1) người dùng phải chạy một chương trình trên thiết bị của mình để lắng nghe các URL này và chương
trình này cho phép người dùng có đủ quyền kiểm soát để không bị cuốn vào các URL không mong muốn của những nơi cô ấy đi qua;

(2) phương tiện truyền bá URL ( ví dụ: hồng ngoại hoặc mạng LAN không dây 802.11) phải có phạm vi tiếp cận tương ứng với
mức độ lan truyền vật lý của chính địa điểm đó.

Q4. Ưu điểm và nhược điểm của HTML, URL và HTTP là công nghệ cốt lõi để duyệt thông tin là gì? Có bất kỳ công nghệ nào
trong số này phù hợp làm cơ sở cho điện toán máy khách-máy chủ nói chung không?
Ans.
HTML là một ngôn ngữ tương đối đơn giản để phân tích cú pháp và kết xuất nhưng nó gây nhầm lẫn giữa cách trình bày với dữ
liệu cơ bản đang được trình bày.
URL là Có hiệu quả nguồn máy định vị nhưng họ là không phải đủ giàu có như nguồn liên kết. Vì thí dụ, họ có thể chỉ vào một tài
nguyên đã được di dời hoặc phá hủy; mức độ chi tiết của chúng (toàn bộ tài nguyên) quá thô cho nhiều mục đích.
HTTP Là một giản dị giao thức cái đó có thể thì là ở thực hiện với một nhỏ bé dấu chân, và cái mà có thể thì là ở đặt đến sử dụng
Trong nhiều loại hình truyền tải nội dung và các loại hình dịch vụ khác. Độ chi tiết của nó (các thông báo HTML có xu hướng chứa
nhiều chuỗi) khiến nó không hiệu quả khi truyền một lượng nhỏ dữ liệu.
HTTP và URL được chấp nhận làm cơ sở cho tính toán máy khách-máy chủ, ngoại trừ (a) không có kiểm tra đánh máy mạnh
(mạng lưới dịch vụ vận hành giá trị phụ loại hình kiểm tra không có trình biên dịch ủng hộ), (b) ở đó Là các không hiệu quả mà chúng
tôi đã đề cập.

Q5. Sử dụng World Wide Web làm ví dụ để minh họa khái niệm chia sẻ tài nguyên, máy khách và máy chủ.
Tài nguyên trong World Wide Web và các dịch vụ khác được đặt tên theo URL. chữ cái đầu làm gì
URL biểu thị ? Cho ví dụ về ba loại tài nguyên web khác nhau có thể được đặt tên theo URL.
Ans.
Các trang web là ví dụ về các tài nguyên được chia sẻ. Các tài nguyên này được quản lý bởi các máy chủ Web.
Kiến trúc máy khách-máy chủ. Trình duyệt Web là một chương trình máy khách ( ví dụ: Netscape) chạy trên máy tính của người
dùng. Máy chủ Web truy cập các tệp cục bộ chứa các trang Web và sau đó cung cấp chúng cho các quy trình trình duyệt của máy
khách.
URL - Bộ định vị tài nguyên thống nhất
(3 của các tiếp theo một tập tin hoặc một hình ảnh, phim, âm thanh, bất cứ điều gì cái đó có thể thì là ở kết xuất, một truy vấn đến
một cơ sở dữ liệu hoặc đến một công cụ tìm kiếm.

Q6. Cho một ví dụ về một URL.

Danh sách các số ba chính các thành phần của một URL, nói rõ thế nào của chúng ranh giới là biểu thị và minh họa từng cái từ ví
dụ của bạn.
Vị trí URL minh bạch ở mức độ nào?
Ans.
http://www.dcs.qmw.ac.uk/research/distrib/index.html
• Các giao thức để sử dụng. phần trước dấu hai chấm, trong ví dụ giao thức sử dụng là http (" Giao thức vận
chuyển siêu văn bản").
• Phần giữa // và / là Tên miền của máy chủ Web lưu trữ www.dcs.qmw.ac.uk.
• Các phần còn lại đề cập đến đến thông tin trên cái đó chủ nhà - đặt tên ở trong các đứng đầu mức độ danh mục
đã sử dụng qua cái đó Nghiên cứu/ phân phối máy chủ web /book.html .
Tên máy chủ www độc lập với vị trí nên chúng tôi có tính minh bạch về vị trí trong đó địa chỉ của một cụ thể máy tính Là không
phải bao gồm. Vì vậy các cơ quan có thể di chuyển các mạng Dịch vụ sang một máy tính khác.
Nhưng nếu trách nhiệm cung cấp dịch vụ thông tin dựa trên WWW chuyển sang một tổ chức khác , URL sẽ cần được thay đổi.

Q7. Một chương trình máy chủ được viết bằng một ngôn ngữ (ví dụ C++) cung cấp việc triển khai BLOB sự vật cái đó Là dự định
đến thì là ở truy cập qua khách hàng cái đó có thể thì là ở bằng văn bản Trong một khác nhau ngôn ngữ (ví dụ Java). Máy khách và
máy chủ có thể có phần cứng khác nhau, nhưng tất cả chúng được gắn vào một mạng internet. Mô tả các vấn đề do từng khía cạnh
3
trong số năm khía cạnh của tính không đồng nhất cần được giải quyết để đối tượng máy khách có thể gọi một phương thức trên đối
tượng máy chủ.
Ans.
Khi các máy tính được kết nối với internet, chúng ta có thể giả định rằng các giao thức Internet xử lý sự khác biệt trong mạng.
Nhưng các máy tính có thể có phần cứng khác nhau - do đó chúng ta phải xử lý sự khác biệt về cách biểu diễn của dữ liệu mặt
hàng Trong lời yêu cầu và Đáp lại tin nhắn từ khách hàng đến các đối tượng. Một phổ thông Tiêu chuẩn sẽ được xác định cho từng
loại mục dữ liệu phải được truyền giữa đối tượng và máy khách của nó.
Các máy vi tính có thể chạy khác nhau điều hành hệ thống, vì thế chúng tôi cần đến thỏa thuận với khác nhau hoạt động để gửi và
nhận tin nhắn hoặc đến bày tỏ lời kêu gọi. Như vậy tại các Java/C++ mức độ một phổ thông hoạt động sẽ được sử dụng sẽ được dịch
sang hoạt động cụ thể theo hệ điều hành mà nó chạy trên đó.
chúng tôi có hai khác nhau lập trình ngôn ngữ C++ và Java, họ sử dụng khác nhau đại diện vì cấu trúc dữ liệu như chuỗi, mảng,
bản ghi. Một tiêu chuẩn chung sẽ được xác định cho từng loại cấu trúc dữ liệu mà phải thì là ở truyền đi giữa các sự vật và nó là khách
hàng và một đường của phiên dịch giữa cái đó dữ liệu cấu trúc và từng ngôn ngữ.
Chúng tôi có thể có các trình triển khai khác nhau, ví dụ: một cho C++ và một cho Java. Họ sẽ cần thống nhất về các tiêu chuẩn
chung được đề cập ở trên và ghi lại chúng.

Q8. Một hệ thống phân tán mở cho phép các dịch vụ chia sẻ tài nguyên mới như đối tượng BLOB trong Bài tập 1.7 được thêm vào
và truy cập bởi nhiều chương trình máy khách. Thảo luận trong bối cảnh của ví dụ này, ở mức độ nào các nhu cầu của sự cởi mở khác
với nhu cầu của sự không đồng nhất.
Ans.
Để thêm đối tượng BLOB vào một hệ thống phân tán mở hiện có, các tiêu chuẩn được đề cập trong câu trả lời cho Bài tập 1.7
phải đã được thống nhất cho hệ thống phân tán . Để liệt kê lại chúng:
• hệ thống phân tán sử dụng một bộ giao thức truyền thông chung (có thể là giao thức Internet).
• nó sử dụng một tiêu chuẩn xác định để biểu diễn các mục dữ liệu (để xử lý tính không đồng nhất của phần
cứng).
• Nó sử dụng một tiêu chuẩn chung cho các hoạt động chuyển thông báo (hoặc cho các yêu cầu).
• Nó sử dụng một tiêu chuẩn độc lập về ngôn ngữ để biểu diễn các cấu trúc dữ liệu.
Nhưng đối với hệ thống phân tán mở, các tiêu chuẩn phải được thống nhất và lập thành văn bản trước khi đối tượng BLOB được
triển khai. Những người thực hiện phải phù hợp với các tiêu chuẩn đó. Ngoài ra, giao diện cho đối tượng BLOB phải được xuất bản để
khi nó được thêm vào hệ thống, cả khách hàng hiện tại và khách hàng mới sẽ có thể truy cập vào nó. Việc xuất bản các tiêu chuẩn cho
phép các bộ phận của hệ thống được thực hiện bởi các nhà cung cấp khác nhau và làm việc cùng nhau.

Q9. Giả sử rằng các hoạt động của đối tượng BLOB được tách thành hai loại – hoạt động công khai cái đó là có sẵn đến tất cả các
người dùng và được bảo vệ hoạt động cái đó là có sẵn chỉ có đến người dùng được đặt tên nhất định. Nêu tất cả các vấn đề liên quan
đến việc đảm bảo rằng chỉ những người dùng có tên mới có thể sử dụng một thao tác được bảo vệ. Giả sử rằng quyền truy cập vào một
hoạt động được bảo vệ cung cấp thông tin không được tiết lộ cho tất cả người dùng, vấn đề nào sẽ phát sinh?
Ans.
Mỗi yêu cầu truy cập vào một hoạt động được bảo vệ phải bao gồm danh tính của người dùng đưa ra yêu cầu. Các vấn đề là:
• định danh tính của người dùng. Sử dụng các danh tính này trong danh sách người dùng được phép truy cập các
hoạt động được bảo vệ khi triển khai đối tượng BLOB. Và trong các tin nhắn yêu cầu.
• đảm bảo rằng danh tính được cung cấp đến từ người dùng mà nó cho là chứ không phải một số người dùng
khác giả làm người dùng đó.
• ngăn người dùng khác phát lại hoặc giả mạo thông báo yêu cầu của người dùng hợp pháp. Các vấn đề khác.
• thông tin được trả về do kết quả của một hoạt động được bảo vệ phải được ẩn khỏi những người dùng trái
phép . Đây có nghĩa cái đó các tin nhắn có chứa các thông tin phải thì là ở được mã hóa Trong trường hợp họ là chặn bởi người dùng
trái phép .
Q10. Các THÔNG TIN Dịch vụ quản lý một có tiềm năng rất lớn bộ của tài nguyên, mỗi của cái mà có thể thì là ở được truy cập
bởi người dùng trên toàn Internet bằng một khóa (tên chuỗi). Thảo luận về cách tiếp cận thiết kế của các tên của các tài nguyên cái đó
đạt được các tối thiểu sự mất mát của màn biểu diễn như các số lượng tài nguyên trong dịch vụ tăng lên. Đề xuất cách triển khai dịch
vụ INFO để tránh tắc nghẽn hiệu suất khi số lượng người dùng trở nên rất lớn.
Ans.
Các thuật toán sử dụng cấu trúc phân cấp có tỷ lệ tốt hơn so với các thuật toán sử dụng cấu trúc tuyến tính. Vì vậy giải pháp nên
đề xuất một sơ đồ đặt tên phân cấp. ví dụ: mỗi tài nguyên có một tên của biểu mẫu 'ABC', v.v. trong đó thời gian thực hiện là O( log n)
khi có n tài nguyên trong hệ thống.
Để cho phép số lượng lớn người dùng, tài nguyên được phân chia giữa một số máy chủ, ví dụ: tên bắt đầu bằng A ở máy chủ 1,
với B ở máy chủ 2, v.v. Có thể có nhiều hơn một mức phân vùng như Trong DNS. Đến tránh xa màn biểu diễn tắc nghẽn các thuật
4
toán vì đang nhìn lên một Tên phải thì là ở phi tập trung . Đó là, cùng một máy chủ không được tham gia vào việc tìm kiếm mọi tên.
(Một giải pháp tập trung sẽ sử dụng một máy chủ gốc duy nhất chứa cơ sở dữ liệu vị trí ánh xạ các phần thông tin lên các máy chủ cụ
thể). Một số bản sao Là yêu cầu đến tránh xa như là tập trung hóa . Vì thí dụ: tôi ) các địa điểm cơ sở dữ liệu có thể thì là ở sao chép
tại nhiều máy chủ gốc hoặc ii) cơ sở dữ liệu vị trí có thể được sao chép trong mọi máy chủ. Trong cả hai trường hợp, các máy khách
khác nhau phải truy cập các máy chủ khác nhau ( ví dụ: máy chủ cục bộ hoặc ngẫu nhiên).

Q11. Liệt kê ba thành phần phần mềm chính có thể bị lỗi khi quy trình máy khách gọi một phương thức trong đối tượng máy chủ,
đưa ra ví dụ về lỗi trong từng trường hợp. Những thất bại này độc lập với nhau ở mức độ nào? Đề xuất cách các thành phần có thể
được tạo ra để chịu đựng những lỗi của nhau.
Ans.
Ba thành phần phần mềm chính có thể bị lỗi là:
• quy trình máy khách , ví dụ như nó có thể bị sập
• quá trình máy chủ, ví dụ như quá trình có thể sụp đổ
• phần mềm liên lạc, ví dụ như tin nhắn có thể không đến được
Các lỗi thường được gây ra một cách độc lập với nhau. Ví dụ về sự cố phụ thuộc:
• nếu các sự mất mát của một thông điệp nguyên nhân các khách hàng hoặc người phục vụ quá trình đến tai nạn.
(Các va chạm của một người phục vụ sẽ khiến khách hàng nhận thấy rằng một tin nhắn trả lời bị thiếu và có thể gián tiếp khiến nó
không thành công).
• nếu máy khách gặp sự cố gây ra sự cố máy chủ .
• nếu sự cố của một quy trình gây ra lỗi trong phần mềm giao tiếp.
Cả hai quy trình sẽ có thể chấp nhận các tin nhắn bị thiếu. Máy khách phải chấp nhận một tin nhắn trả lời bị thiếu sau khi nó đã gửi
một tin nhắn yêu cầu gọi. Thay vì khiến người dùng đợi mãi để nhận được câu trả lời, một tiến trình máy khách có thể sử dụng thời
gian chờ và sau đó thông báo cho người dùng rằng họ không thể liên lạc với máy chủ.
Một máy chủ đơn giản chỉ đợi thông báo yêu cầu, thực hiện yêu cầu và gửi trả lời. Nó nên hoàn toàn miễn dịch đến mất đi tin
nhắn. Nhưng mà nếu một người phục vụ cửa hàng thông tin Về nó là khách hàng nó có thể sau cùng thất bại nếu máy khách gặp sự cố
mà không thông báo cho máy chủ (để máy chủ có thể xóa thông tin dư thừa). (Xem máy chủ không trạng thái trong chương 4/5/8).
Phần mềm giao tiếp phải được thiết kế để chịu được sự cố trong quá trình giao tiếp. Vì thí dụ, các thất bại của một quá trình Nên
không phải gây ra các vấn đề Trong các liên lạc giữa các các quá trình sống sót.

Q12. Một tiến trình máy chủ duy trì một đối tượng thông tin được chia sẻ chẳng hạn như đối tượng BLOB của Bài tập 1.7. Đưa ra
các lập luận ủng hộ và phản đối việc cho phép các yêu cầu của máy khách được thực hiện đồng thời bởi máy chủ. Trong trường hợp
chúng được thực hiện đồng thời, hãy cho một ví dụ về khả năng 'can thiệp' có thể xảy ra giữa các hoạt động của các máy khách khác
nhau. Đề nghị làm thế nào can thiệp như vậy có thể được ngăn chặn.
Ans.
Đối với các lần thực thi đồng thời - nhiều thông lượng hơn trong máy chủ (đặc biệt nếu máy chủ phải truy cập vào đĩa hoặc dịch
vụ khác)
Chống lại - vấn đề nhiễu giữa các hoạt động đồng thời Ví dụ:
Luồng của khách A đọc giá trị của biến X Luồng của khách B đọc giá trị của biến X
Chủ đề của khách hàng A thêm 1 vào giá trị của nó và lưu kết quả vào X
Chủ đề của khách hàng B trừ 1 từ giá trị của nó và lưu kết quả vào X
Kết quả: X : = X-1; tưởng tượng cái đó X Là các THĂNG BẰNG của một ngân hàng tài khoản, và khách hàng Một và b là thực
thi giao dịch tín dụng và ghi nợ, và bạn có thể thấy ngay rằng kết quả là không chính xác.
Để khắc phục nhiễu , hãy sử dụng một số hình thức điều khiển đồng thời. Ví dụ: đối với máy chủ Java, hãy sử dụng các hoạt động
được đồng bộ hóa như tín dụng và ghi nợ.

Q13. Một Dịch vụ Là thực hiện qua một số may chủ. Giải thích tại sao tài nguyên có thể thì là ở chuyển nhượng giữa họ. Sẽ nó
thì là ở đạt yêu cầu vì khách hàng đến phát đa hướng tất cả các yêu cầu đến các tập đoàn của may chủ như một cách để đạt được sự
minh bạch về tính di động cho khách hàng?
Ans.
Việc di chuyển tài nguyên (đối tượng thông tin) được thực hiện: để giảm độ trễ giao tiếp (đặt các đối tượng vào một máy chủ nằm
trên cùng một mạng cục bộ với những người dùng thường xuyên nhất của chúng); để cân bằng tải xử lý và sử dụng lưu trữ giữa các
máy chủ khác nhau.
Nếu tất cả các máy chủ nhận được tất cả các yêu cầu, tải giao tiếp trên mạng sẽ tăng lên nhiều và các máy chủ phải thực hiện công
việc không cần thiết là lọc ra các yêu cầu đối với các đối tượng mà chúng không nắm giữ.
5
Chương 2 Giải bài tập
Q14. Mô tả và Minh họa các máy khách-máy chủ ngành kiến trúc của một hoặc hơn chính Internet các ứng dụng ( ví dụ:
Web, email hoặc netnews ).
Ans.

mạng:

DNS DNS HTTP


server Browser Web
server

Proxy Proxy HTTP


HTTP server server
DNS
server Browser Web
server

Trình duyệt là ứng dụng khách của Máy chủ tên miền (DNS) và máy chủ web (HTTP). Một số mạng nội bộ được cấu hình để đặt
máy chủ Proxy. Máy chủ proxy đáp ứng một số mục đích – khi chúng được đặt tại cùng một địa điểm với máy khách, chúng sẽ giảm
độ trễ mạng và lưu lượng mạng. Khi chúng ở cùng một địa điểm với máy chủ, chúng tạo thành một điểm kiểm tra an ninh (xem trang
107 và 271) và chúng có thể giảm tải cho máy chủ.
NB DNS may chủ là cũng có liên quan Trong tất cả các của các đăng kí kiến trúc mô tả phía dưới, nhưng họ quặng bỏ qua khỏi
cuộc thảo luận cho rõ ràng.

E-mail:
Gửi thư: Tác nhân người dùng (chương trình soạn thư của người dùng) là ứng dụng khách của máy chủ SMTP cục bộ và vượt qua
mỗi hướng ngoaị thông điệp đến các SMTP người phục vụ vì vận chuyển. Các địa phương SMTP người phục vụ sử dụng thư định
tuyến để xác định lộ trình cho từng thư và sau đó chuyển tiếp thư tới máy chủ SMTP tiếp theo trên lộ trình đã chọn . Mỗi máy chủ
SMTP xử lý và chuyển tiếp từng thư đến tương tự trừ khi tên miền trong các thông điệp địa chỉ diêm các địa phương miền. Trong các
sau này trường hợp, nó nỗ lực đến giao các thông điệp đến người nhận cục bộ bằng cách lưu trữ nó trong tệp hộp thư trên đĩa cục bộ
hoặc máy chủ tệp.
Đọc tin nhắn: Người sử dụng Đại lý (các của người dùng thư đọc hiểu chương trình) Là một trong hai một khách hàng của các
địa phương tập tin người phục vụ hoặc ứng dụng khách của máy chủ gửi thư, chẳng hạn như máy chủ POP hoặc IMAP. Trong trường
hợp trước đây, Tác nhân người dùng đọc thư trực tiếp từ tệp hộp thư mà chúng được đặt trong quá trình gửi thư. ( Ví dụ của các tác
nhân người dùng đó là các lệnh UNIX mail và pine .) Trong trường hợp sau, Tác nhân người dùng yêu cầu thông tin về nội dung của
tệp hộp thư của người dùng từ máy chủ POP hoặc IMAP và nhận thư từ các máy chủ đó để trình bày cho người dùng. POP và IMAP
là các giao thức được thiết kế đặc biệt để hỗ trợ thư truy cập kết thúc rộng khu vực và chậm mạng kết nối, vì thế một người sử dụng có
thể tiếp tục đến truy cập cô ấy Trang Chủ hộp thư trong khi đi du lịch.

6
Gửi tin nhắn:
của người gửi mạng nội bộ Mailhost của người nhận mạng nội bộ

User agent
SMTP

SMTP SMTP SMTP


server server server NFS
User
agent Local
file server

Đọc tin nhắn:


Mạng nội bộ mailhost của người nhận

NFS POP User agent


POP
rotoco
pl server
Local file server IMAP
IMAP User agent
NFS server

User agent

tin mạng:
Posting news articles:
NNTP NNTP
User agent server server
NNTP NNTP
server
NNTP
NNTP NNTP
server
server server
User agent
NNTP
server

Duyệt/đọc bài viết :

User agent
NNTP

NNTP
server
User agent

đăng bài Tin tức bài viết: Người sử dụng Đại lý (các của người dùng Tin tức sáng tác chương trình) Là một khách hàng của một
địa phương NNTP người phục vụ và vượt qua mỗi hướng ngoaị bài báo đến các NNTP người phục vụ vì vận chuyển. Mỗi bài báo Là
giao một độc nhất định danh. Mỗi máy chủ NNTP chứa một danh sách các máy chủ NNTP khác mà máy chủ đó là nguồn cấp tin tức –
chúng được đăng ký để nhận các bài báo từ nó. Nó định kỳ liên hệ với từng máy chủ đã đăng ký, cung cấp bất kỳ bài viết mới nào cho
họ và yêu cầu bất kỳ bài viết nào họ có mà nó không có (sử dụng id duy nhất của bài viết để xác định chúng là gì). Để đảm bảo phân
phối mọi bài báo tới mọi điểm đến của Netnews, phải có một đường dẫn kết nối nguồn cấp tin tức từ đó đến mọi máy chủ NNTP.
Duyệt/đọc bài báo: Tác nhân người dùng (chương trình đọc tin tức của người dùng) là ứng dụng khách của máy chủ NNTP cục
bộ. Tác nhân người dùng yêu cầu cập nhật cho tất cả các nhóm tin mà người dùng đăng ký và trình bày chúng cho người dùng.

7
Q15. Đối với các ứng dụng được thảo luận trong Bài tập 2.1, hãy trình bày cách các máy chủ hợp tác trong việc cung cấp dịch vụ.
Ans.
Web : Máy chủ web hợp tác với máy chủ Proxy để giảm thiểu lưu lượng mạng và độ trễ. Máy chủ proxy chịu trách nhiệm về tính
nhất quán - chúng thường xuyên kiểm tra ngày sửa đổi của các trang với máy chủ web gốc.
Thư : Máy chủ SMTP không nhất thiết phải giữ bảng định tuyến gửi thư tới tất cả các đích. Thay vào đó, chúng chỉ đơn giản là
định tuyến các thư được gửi đến các đích không xác định đến một máy chủ khác có thể có các bảng liên quan.
Netnews : Tất cả các máy chủ NNTP hợp tác theo cách được mô tả ở trên để cung cấp cơ chế nguồn cấp tin tức.

Q16. Các ứng dụng được thảo luận trong Bài tập 2.1 liên quan đến việc phân vùng và/hoặc sao chép (hoặc bộ nhớ đệm) dữ liệu
giữa các máy chủ như thế nào?
Ans.
Web : Các trang chủ của trang web được giữ trong một hệ thống tệp tại một máy chủ. Do đó, toàn bộ thông tin trên web được
phân vùng giữa nhiều máy chủ web.
Sao chép không phải là một phần của giao thức web, nhưng một trang web được sử dụng nhiều có thể cung cấp cho một số máy
chủ các bản sao giống hệt nhau của hệ thống tệp có liên quan bằng cách sử dụng một trong những phương tiện nổi tiếng để sao chép-
thay đổi chậm. dữ liệu (Chương 14). HTTP yêu cầu có thể thì là ở ghép kênh giữa các giống hệt nhau may chủ sử dụng các (khá cơ
bản) DNS trọng tải chia sẻ cơ chế mô tả trên trang 169. Trong phép cộng, trang web Ủy quyền may chủ ủng hộ sao chép thông qua
việc sử dụng các bản sao được lưu trong bộ nhớ cache của các trang được sử dụng gần đây và trình duyệt hỗ trợ sao chép bằng cách
duy trì bộ đệm cục bộ của các trang được truy cập gần đây.
Thư : Tin nhắn chỉ được lưu trữ tại điểm đến của chúng. Nghĩa là, dịch vụ thư chủ yếu dựa trên việc phân vùng, mặc dù một thư
gửi tới nhiều người nhận được sao chép tại một số đích.
Netnews : Mỗi nhóm chỉ được sao chép tại các trang yêu cầu nó.

Q17. Công cụ tìm kiếm là một máy chủ web đáp ứng các yêu cầu của khách hàng để tìm kiếm trong các chỉ mục được lưu trữ của
nó và (đồng thời) chạy một số tác vụ trình thu thập dữ liệu web để xây dựng và cập nhật các chỉ mục. Các yêu cầu để đồng bộ hóa
giữa các hoạt động đồng thời này là gì?
Ans.
Các tác vụ của trình thu thập thông tin có thể xây dựng từng phần chỉ mục cho các trang mới, sau đó hợp nhất chúng với chỉ mục
đang hoạt động (bao gồm xóa các tham chiếu không hợp lệ). Hoạt động hợp nhất này có thể được thực hiện trên một bản sao ngoại
tuyến. Cuối cùng, môi trường để xử lý các yêu cầu của máy khách được thay đổi để truy cập vào chỉ mục mới. Cái sau có thể cần một
số điều khiển đồng thời, nhưng về nguyên tắc, nó chỉ là một thay đổi đối với một tham chiếu đến chỉ mục phải là nguyên tử.

Q18. Gợi ý một số các ứng dụng vì các ngang nhau quá trình người mẫu, phân biệt giữa các trường hợp khi nào các trạng thái của
tất cả các đồng nghiệp cần phải giống hệt nhau và các trường hợp yêu cầu ít tính nhất quán hơn.
Ans.
Các ứng dụng làm việc hợp tác (phần mềm nhóm) cung cấp quy trình ngang hàng gần với mỗi người dùng.
Các ứng dụng cái đó cần đến hiện nay tất cả các người dùng với giống hệt nhau tiểu bang - chia sẻ bảng trắng, chia sẻ lượt xem
của một thảo luận văn bản
Ít nhất quán hơn: nơi một nhóm người dùng đang làm việc trên một tài liệu được chia sẻ, nhưng những người dùng khác nhau truy
cập khác nhau các bộ phận hoặc có lẽ một người sử dụng ổ khóa phần của các tài liệu và các khác là cho xem các Mới phiên bản khi
nó đã sẵn sàng.
Một số dịch vụ là các nhóm quy trình ngang hàng hiệu quả để cung cấp tính khả dụng hoặc khả năng chịu lỗi. Nếu họ phân vùng
dữ liệu thì họ không cần phải nhất quán. Nếu họ sao chép thì họ làm.

Q19. Liệt kê các loại tài nguyên cục bộ dễ bị tấn công bởi một chương trình không đáng tin cậy được tải xuống từ một trang web
từ xa và chạy trong máy tính cục bộ.
Ans.
Các đối tượng trong hệ thống tệp, ví dụ: tệp, thư mục có thể được đọc/ghi/tạo/xóa bằng quyền của người dùng cục bộ chạy
chương trình.
Giao tiếp mạng - chương trình có thể cố gắng tạo ổ cắm, kết nối với chúng, gửi tin nhắn, v.v. Truy cập vào máy in.
Nó cũng có thể mạo danh người dùng theo nhiều cách khác nhau, chẳng hạn như gửi/nhận email

8
Q20. Đưa ra một số ví dụ về các ứng dụng mà việc sử dụng mã di động có lợi.
Ans.
Thực hiện tính toán gần với người dùng, như trong ví dụ về Applet
Tăng cường trình duyệt- như được mô tả trên trang 70 , ví dụ như để cho phép máy chủ bắt đầu giao tiếp.
Các trường hợp các đối tượng được gửi đến một quy trình và mã được yêu cầu để làm cho chúng có thể sử dụng được. ( ví dụ như
trong RMI ở Chương 5)

Q21. Những yếu tố nào ảnh hưởng đến khả năng phản hồi của ứng dụng truy cập dữ liệu dùng chung do máy chủ quản lý ? Mô tả
các biện pháp khắc phục có sẵn và thảo luận về tính hữu ích của chúng.
Ans.
Khi máy khách truy cập vào một máy chủ, nó sẽ gọi một hoạt động trong một máy chủ đang chạy trên một máy tính từ xa. Những
điều sau đây có thể ảnh hưởng đến khả năng phản hồi:
1. máy chủ quá tải;
2. độ trễ Trong trao đổi lời yêu cầu và Đáp lại tin nhắn (quá hạn đến lớp của hệ điều hành và phần mềm trung gian
phần mềm Trong máy khách và máy chủ);
3. tải trên mạng.
Các sử dụng của bộ nhớ đệm giúp với tất cả các của các ở trên các vấn đề. Trong cụ thể khách hàng bộ nhớ đệm giảm tất cả các
của họ. Máy chủ proxy bộ đệm Cứu giúp với (1). Nhân rộng của các Dịch vụ cũng giúp với 1. Các sử dụng của trọng lượng nhẹ giao
thức truyền thông giúp với (2).

Q22. Phân biệt giữa đệm và bộ nhớ đệm.


Ans.
Bộ đệm: một kỹ thuật lưu trữ dữ liệu được truyền từ quy trình gửi đến quy trình nhận trong bộ nhớ cục bộ hoặc bộ nhớ thứ cấp
(đĩa) cho đến khi quy trình nhận sẵn sàng sử dụng dữ liệu đó. Ví dụ, khi đọc dữ liệu từ một tập tin hoặc truyền tin nhắn xuyên qua một
mạng, nó Là có lợi đến xử lý nó Trong lớn khối. Các khối là cầm Trong đệm kho Trong các nhận quá trình' kỉ niệm không gian. Các
đệm Là phát hành khi nào dữ liệu đã được tiêu thụ bởi quá trình.
Bộ nhớ đệm: một kĩ thuật vì tối ưu hóa truy cập đến Xa xôi dữ liệu các đối tượng qua giữ một sao chép của họ Trong bộ nhớ cục
bộ hoặc bộ nhớ thứ cấp (đĩa). Quyền truy cập vào các phần của đối tượng từ xa được dịch thành quyền truy cập vào phần tương ứng
các bộ phận của các địa phương sao chép. không giống đệm, các địa phương sao chép có thể thì là ở giữ lại như Dài như ở đó Là bộ
nhớ cục bộ có sẵn để giữ nó. Cần có thuật toán quản lý bộ đệm và chiến lược phát hành để quản lý việc sử dụng bộ nhớ được phân bổ
cho bộ đệm. (Nếu chúng ta diễn giải từ 'từ xa' theo nghĩa 'xa hơn từ bộ xử lý', sau đó đây Định nghĩa Là có giá trị không phải chỉ có vì
khách hàng bộ đệm Trong phân phối hệ thống nhưng cũng vì đĩa chặn bộ đệm trong hệ điều hành và bộ đệm bộ xử lý trong chip cpu .)

Q23. Đưa ra một số ví dụ về các lỗi trong phần cứng và phần mềm mà người sử dụng có thể/không thể chấp nhận được dự phòng
trong một hệ thống phân tán. Mức độ sử dụng dự phòng trong các trường hợp thích hợp làm cho hệ thống có khả năng chịu lỗi?
Ans.
• Lỗi phần cứng - bộ xử lý, đĩa, kết nối mạng có thể sử dụng dự phòng, ví dụ: chạy quy trình trên nhiều máy tính,
ghi vào hai đĩa, có sẵn hai tuyến riêng biệt trong mạng.
• Lỗi phần mềm, sự cố. Dự phòng là không tốt với các lỗi vì chúng sẽ được nhân rộng. Các quy trình được sao
chép giúp giải quyết các sự cố có thể do lỗi ở các phần không liên quan của hệ thống. Tin nhắn được truyền lại giúp khắc phục tin
nhắn bị mất.
Dự phòng làm cho lỗi ít có khả năng xảy ra. ví dụ: nếu xác suất lỗi trong một thành phần duy nhất là p thì xác suất lỗi độc lập duy
nhất trong k bản sao là p k .

Q24. Hãy xem xét một máy chủ đơn giản thực hiện các yêu cầu của máy khách mà không cần truy cập vào các máy chủ khác.
Giải thích tại sao nói chung không thể đặt giới hạn về thời gian mà một máy chủ như vậy cần để đáp ứng yêu cầu của máy khách. Cần
phải làm gì để máy chủ có thể thực hiện các yêu cầu trong một khoảng thời gian giới hạn? Đây có phải là một lựa chọn thiết thực?
Ans.
Tốc độ đến của các yêu cầu của khách hàng là không thể đoán trước.
Nếu máy chủ sử dụng các luồng để thực hiện các yêu cầu đồng thời, thì nó có thể không phân bổ đủ thời gian cho một yêu cầu cụ
9
thể trong bất kỳ giới hạn thời gian nhất định nào.
Nếu máy chủ xếp hàng yêu cầu và thực hiện từng yêu cầu một, chúng có thể đợi trong hàng đợi trong một khoảng thời gian không
giới hạn.
Để thực hiện các yêu cầu trong thời gian giới hạn, hãy giới hạn số lượng máy khách cho phù hợp với khả năng của nó. Để xử lý
nhiều khách hàng hơn, hãy sử dụng máy chủ có nhiều bộ xử lý hơn. Sau đó, (hoặc thay vào đó) sao chép dịch vụ....
Giải pháp này có thể tốn kém và trong một số trường hợp , việc giữ cho các bản sao nhất quán có thể chiếm các chu kỳ xử lý hữu
ích, làm giảm các chu trình có sẵn để thực thi các yêu cầu.

Q25. Đối với mỗi yếu tố góp phần vào thời gian truyền thông điệp giữa hai quy trình kết thúc một liên lạc kênh truyền hình, tiểu
bang Gì đo sẽ thì là ở cần thiết đến bộ một ràng buộc trên nó sự đóng góp đến các toàn bộ thời gian. Tại sao là này đo không phải
cung cấp Trong hiện hành hệ thống phân tán mục đích chung?
Ans.
Thời gian Lấy qua hệ điều hành liên lạc dịch vụ Trong các gửi và nhận quy trình - này nhiệm vụ sẽ cần để được đảm bảo đủ số
chu kỳ của bộ xử lý.
Thời gian Lấy đến truy cập mạng. Các đôi của giao tiếp quy trình sẽ cần đến thì là ở được dung lượng mạng đảm bảo.
Thời gian để truyền dữ liệu là một hằng số sau khi mạng đã được truy cập.
Để cung cấp các đảm bảo trên, chúng tôi sẽ cần thêm nguồn lực và chi phí liên quan. Ví dụ, các đảm bảo liên quan đến việc truy
cập mạng có thể được cung cấp với các mạng ATM, nhưng chúng rất đắt khi sử dụng như các mạng LAN.
Đến cho đảm bảo vì các quy trình Là hơn tổ hợp. Vì thí dụ, vì một người phục vụ đến Bảo hành đến nhận và gửi tin nhắn trong
một giới hạn thời gian có nghĩa là giới hạn số lượng khách hàng.

Q26. Dịch vụ Giao thức thời gian mạng có thể được sử dụng để đồng bộ hóa đồng hồ máy tính. Giải thích tại sao, ngay cả với
dịch vụ này, không có giới hạn đảm bảo nào được đưa ra cho sự khác biệt giữa hai đồng hồ.
Ans.
Không tí nào khách hàng sử dụng các ntp Dịch vụ phải giao tiếp với nó qua có nghĩa của tin nhắn thông qua kết thúc một kênh
truyền thông . Nếu có thể đặt giới hạn về thời gian để truyền thông báo qua kênh liên lạc, thì sự khác biệt giữa đồng hồ của máy khách
và giá trị do dịch vụ ntp cung cấp cũng sẽ bị giới hạn. Với thời gian truyền tin nhắn không giới hạn, sự khác biệt về đồng hồ nhất thiết
phải không giới hạn.

Q27. Xem xét hai dịch vụ truyền thông để sử dụng trong các hệ thống phân tán không đồng bộ. Trong dịch vụ A, các tin nhắn có
thể bị mất, trùng lặp hoặc bị trì hoãn và tổng kiểm tra chỉ áp dụng cho các tiêu đề. Trong dịch vụ B, tin nhắn có thể thì là ở mất đi. trì
hoãn hoặc đã giao hàng cũng vậy Nhanh vì các người nhận đến xử lý họ, nhưng những thứ kia được giao đến đúng thứ tự và với nội
dung chính xác.
Mô tả các loại lỗi thể hiện bởi mỗi dịch vụ. Phân loại các lỗi của chúng theo ảnh hưởng của chúng đối với các thuộc tính về tính
hợp lệ và tính toàn vẹn. Dịch vụ B có thể được mô tả như một dịch vụ liên lạc đáng tin cậy không?
Ans.
Dịch vụ A có thể có:
tùy ý :
– vì tổng kiểm tra không áp dụng cho nội dung thư nên nội dung thư có thể bị hỏng .
– tin nhắn trùng lặp,
lỗi thiếu sót (tin nhắn bị mất).
Bởi vì hệ thống phân tán mà nó được sử dụng là không đồng bộ, nên nó không thể bị lỗi thời gian.
Hiệu lực - bị từ chối bởi tin nhắn bị mất
Tính toàn vẹn - bị từ chối bởi các tin nhắn bị hỏng và tin nhắn trùng lặp.
Dịch vụ B có thể có:
lỗi thiếu sót (mất tin nhắn, bỏ tin nhắn).
Bởi vì hệ thống phân tán mà nó được sử dụng là không đồng bộ, nên nó không thể bị lỗi thời gian. Nó vượt qua bài kiểm tra tính
toàn vẹn, nhưng không vượt qua bài kiểm tra tính hợp lệ, do đó nó không thể được gọi là đáng tin cậy.

1
Q28. Xem xét một đôi của quy trình X và Y cái đó sử dụng các liên lạc Dịch vụ b từ Tập thể dục 2.14 để giao tiếp với nhau. Giả
sử rằng X là máy khách và Y là máy chủ và một lệnh gọi bao gồm một thông báo yêu cầu từ X đến Y (thực hiện yêu cầu) theo sau là
một thông báo trả lời từ Y đến X. Mô tả các loại lỗi có thể biểu hiện bởi một lời kêu gọi.
Ans.
Một lời gọi có thể bị các lỗi sau:
• lỗi sự cố : X hoặc Y có thể gặp sự cố. Do đó , một lời gọi có thể bị sự cố thất bại.
• lỗi thiếu sót : vì SB bị lỗi thiếu sót, thông báo yêu cầu hoặc trả lời có thể mất đi.

Q29. Giả sử rằng một lần đọc đĩa cơ bản đôi khi có thể đọc các giá trị khác với giá trị được ghi. Tiểu bang các loại hình của thất
bại trưng bày qua một nền tảng đĩa đọc. Gợi ý thế nào đây thất bại có thể thì là ở che mặt để tạo ra một dạng thất bại lành tính khác.
Bây giờ đề nghị làm thế nào để che giấu sự thất bại lành tính.
Ans.
Việc đọc đĩa cơ bản thể hiện các lỗi tùy ý.
Đây có thể thì là ở che mặt qua sử dụng một tổng kiểm tra trên mỗi đĩa khối (làm nó không chắc cái đó Sai lầm giá trị sẽ không bị
phát hiện) - khi phát hiện một giá trị không chính xác, quá trình đọc không trả về giá trị nào thay vì một giá trị sai - lỗi bỏ sót.
Các bỏ sót thất bại có thể thì là ở che mặt qua sao chép mỗi đĩa khối trên hai sống độc lập đĩa. (Làm cho lỗi bỏ sót khó xảy ra).
.

Q30. Định nghĩa các sự toàn vẹn tài sản của đáng tin cậy liên lạc và danh sách tất cả các các khả thi các mối đe dọa đến tính toàn
vẹn từ người dùng và từ các thành phần hệ thống. Những biện pháp nào có thể được thực hiện để đảm bảo tính toàn vẹn khi đối mặt
với từng nguồn đe dọa này
Ans.
Tính toàn vẹn - tin nhắn nhận được giống hệt với tin nhắn đã gửi và không có tin nhắn nào được gửi hai lần. mối đe dọa từ người
dùng:
• chèn tin nhắn giả, phát lại tin nhắn cũ, thay đổi tin nhắn trong quá trình truyền các mối đe dọa từ các thành phần
hệ thống:
• tin nhắn có thể bị hỏng trên đường
• tin nhắn có thể được sao chép bởi các giao thức truyền thông truyền lại tin nhắn.
Đối với các mối đe dọa từ người dùng - ở giai đoạn Chương 2, họ có thể chỉ nói sử dụng các kênh an toàn. Nếu họ đã xem
Chương 7 , họ có thể đề xuất việc sử dụng các kỹ thuật xác thực và nonce.
Đối với các mối đe dọa từ các thành phần hệ thống. Tổng kiểm tra để phát hiện thư bị hỏng - nhưng sau đó chúng tôi gặp sự cố về
tính hợp lệ (thư bị rớt). Tin nhắn trùng lặp có thể được phát hiện nếu số thứ tự được đính kèm với tin nhắn.

Q31. Mô tả các khả năng xảy ra của từng loại mối đe dọa bảo mật chính (các mối đe dọa đối với quy trình, mối đe dọa đối với các
kênh liên lạc, từ chối dịch vụ) có thể xảy ra trên Internet.
Ans.
Các mối đe dọa đối với các quy trình: không có xác thực của hiệu trưởng và máy chủ, nhiều mối đe dọa tồn tại. Kẻ thù có thể truy
cập khác của người dùng các tập tin hoặc hộp thư, hoặc bộ lên 'giả mạo' may chủ. Ví dụ một người phục vụ có thể thì là ở bộ lên đến
'giả mạo' một dịch vụ của ngân hàng và nhận thông tin chi tiết về các giao dịch tài chính của người dùng.
Các mối đe dọa đến liên lạc kênh truyền hình: địa chỉ IP giả mạo - gửi yêu cầu đến may chủ với một sai nguồn địa chỉ, tấn công
trung gian.
Từ chối dịch vụ: tràn ngập một dịch vụ có sẵn công khai với các thông báo không liên quan.

Chương 3 Giải bài tập


Q32. Một khách hàng gửi một 200 byte lời yêu cầu thông điệp đến một Dịch vụ, cái mà sản xuất một phản ứng có chứa 5000
byte. Ước tính tổng thời gian để hoàn thành yêu cầu trong từng trường hợp sau, với các giả định về hiệu suất được liệt kê bên dưới:
i) Sử dụng giao tiếp không kết nối (datagram) (ví dụ: UDP);
ii) Sử dụng giao tiếp hướng kết nối (ví dụ: TCP);
iii) Quá trình máy chủ nằm trong cùng một máy với máy khách.
1
[Độ trễ trên mỗi gói (cục bộ hoặc từ xa,
phát sinh trên cả gửi và nhận):5 mili giây Thời gian thiết lập kết nối (chỉ TCP):5 mili giây Tốc độ truyền dữ liệu:10 megabit/giây
MTU:1000 byte
Thời gian xử lý yêu cầu của máy chủ:2 mili giây Giả sử rằng mạng được tải nhẹ.]

Q33. Internet quá lớn để bất kỳ bộ định tuyến nào có thể chứa thông tin định tuyến cho tất cả các điểm đến. Sơ đồ định tuyến
Internet giải quyết vấn đề này như thế nào?
Ans.
Nếu một bộ định tuyến không tìm thấy phần id mạng của một địa chỉ đích trong bảng định tuyến của nó, thì nó sẽ gửi gói đến một
địa chỉ mặc định là một cổng hoặc bộ định tuyến liền kề được chỉ định chịu trách nhiệm định tuyến gói cho cái mà ở đó Là không định
tuyến thông tin có sẵn. Mỗi bộ định tuyến mặc định địa chỉ mang như là gói tin hướng tới một bộ định tuyến có thông tin định tuyến
đầy đủ hơn, cho đến khi gặp phải một bộ định tuyến có mục nhập cụ thể cho id mạng có liên quan.

Q34. Nhiệm vụ của Ethernet switch là gì? Nó duy trì những bảng nào?
Ans.
Một Ethernet công tắc phải duy trì định tuyến những cái bàn cho các Ethernet địa chỉ và mạng Tôi vì tất cả các máy chủ trên địa
phương mạng (kết nối bộ của Ethernet có thể truy cập từ các công tắc). Nó làm đây qua 'học tập' các chủ nhà

địa chỉ từ các trường địa chỉ nguồn trên mỗi mạng. Công tắc nhận tất cả các gói được truyền trên Ethernet mà nó được kết nối. Nó
tra cứu đích đến của từng gói trong bảng định tuyến của nó. Nếu không tìm thấy đích, máy chủ đích phải là máy chủ mà công tắc chưa
học và gói phải thì là ở chuyển tiếp đến tất cả các các kết nối mạng lưới đến chắc chắn vận chuyển. Nếu các điểm đến địa chỉ Là trên
cùng một Ethernet với nguồn, gói sẽ bị bỏ qua vì nó sẽ được gửi trực tiếp. Trong tất cả các trường hợp khác, bộ chuyển mạch sẽ
truyền gói trên mạng của máy chủ đích, được xác định từ thông tin định tuyến.

Q35. Làm một bàn tương tự đến Nhân vật 3,5 miêu tả các công việc xong qua các phần mềm Trong mỗi giao thức lớp khi các
ứng dụng Internet và bộ TCP/IP được triển khai qua Ethernet.
Ans.

Mô tả lớpVí dụ
ứng dụng được thiết kế để đáp ứng các yêu cầu giao tiếp của các ứng dụng cụ thể, thường xác
HTTP, FTP, SMTP,
định giao diện cho một dịch vụ. biểu diễn mạng độc lập với biểu diễn được sử dụng trong các máy tính riêng lẻ. Mã hóa
CORBA IIOP,
được thực hiện trong lớp này.
Lớp cổng bảo mật, Đại
diện dữ liệu CORBA
IP TCP, UDP
Vận chuyển UDP: tổng kiểm tra Thẩm định, vận chuyển đến quá trình cổng. TCP: phân khúc,
kiểm soát lưu lượng , xác nhận và phân phối đáng tin cậy.
Địa chỉ IP mạng được dịch sang địa chỉ Ethernet (sử dụng ARP). Các gói IP được phân đoạn thành các gói Ether.

1
Cơ chế Ethernet CSMA CD liên kết dữ liệu . Lớp MAC
Ethernet
Vật lý Các tiêu chuẩn truyền dẫn Ethernet khác nhau. Băng tần cơ sở
Ethernet truyền tín hiệu

Q36. Làm thế nào có đối số end-to-end [Saltzer et al. 1984] đã được áp dụng cho thiết kế của Internet? Xem xét việc sử dụng giao
thức mạng mạch ảo thay cho IP sẽ ảnh hưởng như thế nào đến tính khả thi của World Wide Web.
Ans.
Trích dẫn từ [ www.reed.com ]: Phương pháp thiết kế này là nền tảng cho thiết kế của Internet. Email và trang web (Ghi chú họ là
bây giờ chữ thường) cơ sở hạ tầng cái đó thấm vào các thế giới nền kinh tế sẽ không phải đã được khả thi nếu họ đã không đã được
xây dựng theo đến các từ đầu đến cuối nguyên tắc. Chỉ nhớ: cơ bản một trang web xuất hiện trong một phần giây là hàng chục hoặc
thậm chí hàng trăm gói trao đổi với nhiều máy tính không liên quan. Nếu chúng tôi yêu cầu mỗi sàn giao dịch thiết lập một mạch ảo
được đăng ký với mỗi bậtbộ định tuyến các mạng, vì thế cái đó các mạng có thể theo dõi nó, các trên không của đăng ký Chu trình sẽ
thống trị các giá trị của giao hàng các trang. Tương tự, các phi tập trung sự quản lý của e-mail có cho phép các sự phát triển của liệt kê
các máy chủ và nhóm tin đã phát triển mạnh mẽ với ít chi phí hoặc kế hoạch tập trung.

Q37. Chúng ta có thể chắc chắn rằng không có hai máy tính nào trên Internet có cùng địa chỉ IP không?
Ans.
Điều này phụ thuộc vào việc phân bổ id mạng cho các tổ chức người dùng bởi Trung tâm thông tin mạng (NIC). Tất nhiên, các
mạng có id mạng trái phép có thể được kết nối, trong trường hợp đó , yêu cầu về địa chỉ IP duy nhất bị phá vỡ.

Q38. So sánh giao tiếp hướng kết nối (UDP) và hướng kết nối (TCP) để triển khai từng giao thức cấp ứng dụng hoặc cấp bản trình
bày sau đây:
i) truy cập thiết bị đầu cuối ảo (ví dụ: Telnet);
ii) truyền tệp (ví dụ: FTP);
iii) vị trí người dùng (ví dụ: rwho , ngón tay);
iv) duyệt thông tin (ví dụ: HTTP);
v) gọi thủ tục từ xa.
Ans.
i) Thời lượng phiên dài, nhu cầu về độ tin cậy và chuỗi ký tự không có cấu trúc được truyền làm định hướng kết
nối liên lạc phần lớn thích hợp vì đây đăng kí. Màn biểu diễn không quan trọng trong ứng dụng này, vì vậy chi phí chung không đáng
kể.
ii) Tập tin cuộc gọi vì các truyền tải của lớn tập của dữ liệu. không kết nối sẽ thì là ở Vâng nếu lỗi giá là thấp và
thông báo có thể lớn, nhưng trên Internet, những yêu cầu này không được đáp ứng, vì vậy TCP được sử dụng.
iii) Không kết nối là thích hợp hơn, vì tin nhắn ngắn và một tin nhắn duy nhất là đủ cho mỗi giao dịch.
iv) Một trong hai chế độ có thể được sử dụng. Khối lượng dữ liệu được truyền trên mỗi giao dịch có thể khá lớn, vì
vậy TCP được sử dụng trong thực tế.
v) RPC đạt được độ tin cậy bằng cách hết thời gian chờ và thử lại . vì vậy giao tiếp không kết nối (UDP) thường
được ưu tiên hơn.

Q39. Giải thích làm thế nào mà một chuỗi các gói được truyền qua một mạng diện rộng có thể đến được tại của chúng điểm đến
Trong một gọi món cái đó khác từ cái đó Trong cái mà họ là gởi. Tại sao không thể điều này xảy ra trong một mạng cục bộ? Nó có thể
xảy ra trong mạng ATM không?
Ans.
gói tin truyền đi xuyên qua một lưu trữ và chuyển tiếp mạng du lịch qua một tuyến đường cái đó Là xác định năng động cho mỗi
gói tin. Một số tuyến đường sẽ có hơn hoa bia hoặc Chậm hơn công tắc hơn khác. Như vậy gói tin có thể vượt qua nhau. Các giao thức
hướng kết nối như TCP khắc phục điều này bằng cách thêm số thứ tự vào các gói và sắp xếp lại chúng tại máy chủ nhận.
Nó không thể xảy ra trong các mạng cục bộ vì phương tiện chỉ cung cấp một kênh duy nhất kết nối tất cả các máy chủ trên mạng.
Do đó, các gói được truyền và nhận theo trình tự nghiêm ngặt.
Nó không thể xảy ra Trong ATM mạng lưới tại vì họ là định hướng kết nối. Quá trình lây truyền Là luôn luôn thông qua các kênh
ảo và các VC đảm bảo cung cấp dữ liệu theo thứ tự mà nó được truyền.

13
Q40. Một vấn đề cụ thể phải được giải quyết trong các giao thức truy cập đầu cuối từ xa như Telnet là nhu cầu đến chuyển giao
đặc biệt sự kiện như là như 'giết chết tín hiệu' từ các 'phần cuối' đến các chủ nhà Trong trước của dữ liệu được truyền trước đó. Tín
hiệu tiêu diệt phải đến đích trước bất kỳ quá trình truyền đang diễn ra nào khác. Thảo luận giải pháp cho vấn đề này với các giao thức
hướng kết nối và không kết nối.
Ans.
Các vấn đề Là cái đó một giết chết dấu hiệu Nên với tới các nhận quá trình một cách nhanh chóng thậm chí khi nào ở đó Là đệm
tràn ( ví dụ gây ra bởi một vòng lặp vô hạn trong máy gửi) hoặc các điều kiện ngoại lệ khác tại máy chủ nhận.
Với giao thức đáng tin cậy, hướng kết nối như TCP, tất cả các gói phải được nhận và xác nhận qua các người gửi, Trong các gọi
món Trong cái mà họ là được truyền đi. Như vậy một giết chết dấu hiệu không thể vượt qua dữ liệu khác đã sẵn sàng Trong các dòng.
Đến vượt qua đây, một ngoài ban nhạc truyền tín hiệu cơ chế phải thì là ở cung cấp. Trong TCP đây được gọi là cơ chế KHẨN CẤP.
Các gói chứa dữ liệu được gắn cờ là KHẨN CẤP bỏ qua các cơ chế kiểm soát luồng tại máy thu và được đọc ngay lập tức.
Với các giao thức không kết nối, quy trình tại bên gửi chỉ cần nhận ra sự kiện và gửi một thông báo chứa tín hiệu tiêu diệt trong
gói gửi đi tiếp theo. Tin nhắn phải được gửi lại cho đến khi quá trình nhận xác nhận nó.

Q41. Những nhược điểm của việc sử dụng phát sóng cấp mạng để định vị tài nguyên là gì:
i) trong một Ethernet duy nhất?
ii) trong mạng nội bộ?
Ở mức độ nào thì Ethernet multicast là một cải tiến về phát sóng?
Ans.
i. Tất cả các thông báo quảng bá trong Ethernet phải được xử lý bởi HĐH hoặc bởi một quy trình daemon tiêu chuẩn.
Mọi chi phí kiểm tra thông báo, phân tích cú pháp và quyết định xem có cần phải thực hiện thông báo đó hay không. chủ nhà trên các
mạng, nhưng trái lại chỉ có một nhỏ bé con số là rất có thể địa điểm vì một được nguồn. Cho dù đây,
Ghi chú cái đó các Internet ARP làm phụ thuộc trên Ethernet phát sóng . Các bí quyết, Thuật, mẹo Là cái đó nó không làm nó rất
thường - chỉ một lần cho mỗi máy chủ định vị các máy chủ khác trên mạng cục bộ mà nó cần giao tiếp.
ii. Phát thanh truyền hình Là khắc nghiệt khả thi Trong một quy mô lớn mạng như là như các Internet. Nó có
thể chỉ thì là ở có thể trong mạng nội bộ, nhưng nên tránh vì những lý do đã nêu ở trên.
Các địa chỉ multicast Ethernet được so khớp trong bộ điều khiển Ethernet. Tin nhắn multicast được chuyển lên đến _ hệ điều hành
chỉ có vì địa chỉ cái đó cuộc thi đấu phát đa hướng các nhóm các địa phương chủ nhà Là đăng ký đến. Nếu ở đó là một số như vậy, địa
chỉ có thể được sử dụng để phân biệt giữa một số quy trình daemon để chọn một quy trình xử lý từng thông báo.

Q42. Đề xuất sơ đồ cải thiện MobileIP để cung cấp quyền truy cập vào máy chủ web trên thiết bị di động đôi khi được kết nối với
Internet bằng điện thoại di động và vào những thời điểm khác có kết nối có dây với Internet tại một trong số các địa điểm.
Ans.
Ý tưởng là khai thác hệ thống điện thoại di động để định vị thiết bị di động và cung cấp địa chỉ IP của vị trí hiện tại cho khách
hàng.

Q44. Sử dụng sơ đồ trong Hình 3.13 làm cơ sở cho minh họa về phân đoạn và đóng gói của một HTTP lời yêu cầu đến một người
phục vụ và các kết quả Đáp lại. Giả định cái đó lời yêu cầu Là một tin nhắn HTTP ngắn, nhưng tin nhắn trả lời bao gồm ít nhất 2000
byte html.
Ans.
Còn lại cho người đọc.

Q45. Xem xét việc sử dụng TCP trong máy khách đầu cuối từ xa Telnet. Đầu vào bàn phím nên được đệm ở máy khách như thế
nào? Nghiên cứu thuật toán của Nagle và Clark [Nagle 1984, Clark 1982] để kiểm soát luồng và so sánh chúng với thuật toán đơn giản
được mô tả ở trang 103 khi TCP được sử dụng bởi (a) máy chủ web, (b) ứng dụng Telnet, (c) điều khiển từ xa ứng dụng đồ họa với
đầu vào chuột liên tục.
Ans.
Thuật toán bộ đệm TCP cơ bản được mô tả trên p. 105 không hiệu quả lắm đối với đầu vào tương tác. Thuật toán của Nagle được
thiết kế để giải quyết vấn đề này. Nó yêu cầu máy gửi gửi bất kỳ byte nào được tìm thấy trong bộ đệm đầu ra, sau đó đợi xác nhận.
Bất cứ khi nào nhận được xác nhận, bất kỳ ký tự bổ sung nào trong bộ đệm đều được gửi. Tác dụng của việc này là:
a) Vì một trang web người phục vụ: các người phục vụ sẽ thông thường viết một trọn trang của HTML vào trong
các đệm Trong một Độc thân viết . Khi ghi xong, thuật toán của Nagle sẽ gửi dữ liệu ngay lập tức, trong khi thuật toán cơ bản sẽ Chờ
đã 0,5 giây. Trong khi các Nagle's thuật toán Là đang chờ đợi vì một xác nhận, quy trình máy chủ có thể ghi dữ liệu bổ sung ( ví dụ:
tệp hình ảnh) vào bộ đệm. Chúng sẽ được gửi ngay sau khi nhận được xác nhận.
14
b) Đối với ứng dụng shell (Telnet) từ xa: ứng dụng sẽ ghi các nét phím riêng lẻ vào bộ đệm (và trong trường hợp
thông thường của tương tác thiết bị đầu cuối song công hoàn toàn, chúng được máy chủ từ xa lặp lại tới ứng dụng khách Telnet để
hiển thị). Với thuật toán cơ bản, hoạt động song công hoàn toàn sẽ dẫn đến độ trễ 0,5 giây trước không tí nào của các nhân vật đánh
máy là hiển thị trên các màn hình. Với Nagle's thuật toán, các ký tự đầu tiên được nhập sẽ được gửi ngay lập tức và máy chủ từ xa sẽ
lặp lại ký tự đó bằng một con lợn xác nhận - được hỗ trợ trong cùng một gói. Xác nhận kích hoạt việc gửi thêm bất kỳ ký tự nào có đã
đánh máy Trong các can thiệp Giai đoạn. Vì thế nếu các Xa xôi chủ nhà trả lời đủ liên tục, các hiển thị các ký tự đã nhập dường như là
tức thời. Nhưng hãy lưu ý rằng một ứng dụng từ xa được viết không tốt sẽ đọc dữ liệu từ các TCP đệm một tính cách tại một thời gian
có thể còn gây ra các vấn đề - mỗi đọc sẽ kết quả trong một xác nhận chỉ ra rằng một ký tự nữa sẽ được gửi - dẫn đến việc truyền toàn
bộ khung IP cho mỗi ký tự. Clarke [1982] gọi đây là hội chứng cửa sổ ngớ ngẩn . Giải pháp của anh ấy là trì hoãn việc gửi xác nhận
cho đến khi có một lượng dung lượng trống đáng kể .
c) Đối với đầu vào chuột liên tục ( ví dụ: gửi vị trí chuột tới ứng dụng X-Windows đang chạy trên máy tính người
phục vụ): đây Là một khó khăn hình thức của đầu vào đến xử lý từ xa. Các vấn đề Là cái đó các người dùng sẽ thấy phản hồi mượt mà
của đường dẫn do chuột vạch ra với độ trễ tối thiểu . Cả thuật toán TCP cơ bản lẫn thuật toán của Nagle và Clarke đều không đạt được
điều này rất tốt. Một phiên bản của thuật toán cơ bản với thời gian chờ ngắn (0,1 giây) là cách tốt nhất có thể thực hiện được và điều
này hiệu quả khi mạng nhẹ nhàng nạp vào và có Thấp từ đầu đến cuối độ trễ - các điều kiện cái đó có thể thì là ở đảm bảo chỉ có trên
địa phương mạng có tải được kiểm soát.
Xem Tanenbaum [1996] trang 534-5 để thảo luận thêm về điều này.

Q48. Làm sao làm một mới được cài đặt riêng tư máy tính kết nối đến một Ethernet phát hiện các địa chỉ IP địa chỉ của các máy
chủ địa phương? Làm thế nào để dịch chúng sang địa chỉ Ethernet?
Ans.
Phần đầu tiên của câu hỏi là một chút sai lệch. Cả Ethernet và Internet đều không hỗ trợ các dịch vụ 'khám phá' như như là. Một
mới được cài đặt máy tính phải thì là ở cấu hình với các miền tên của không tí nào may chủ cái đó nó cần đến truy cập. Các chỉ
có ngoại lệ Là các DNS. Dịch vụ như là như khởi độngP và DHCP cho phép một máy chủ mới được kết nối đến có được, thu
được nó là riêng địa chỉ IP địa chỉ và đến được các địa chỉ IP địa chỉ của một quặng hơn địa phương DNS máy chủ . Đến có
được địa chỉ IP địa chỉ của khác may chủ ( ví dụ SMTP, NFS, vân vân.) nó phải sử dụng của chúng miền tên. Trong Unix, các
nslookup yêu cầu có thể thì là ở đã sử dụng đến nghiên cứu các cơ sở dữ liệu của miền tên Trong các địa phương DNS may chủ
và một người sử dụng có thể chọn những cái thích hợp để sử dụng làm máy chủ. Tên miền được dịch sang địa chỉ IP bằng một
yêu cầu DNS đơn giản.
Giao thức phân giải địa chỉ (ARP) cung cấp câu trả lời cho phần thứ hai của câu hỏi. Điều này được mô tả trên các trang 95-6.
Mỗi loại mạng phải triển khai ARP theo cách riêng của mình. Ethernet và các mạng liên quan sử dụng các sự kết hợp của phát
thanh truyền hình và bộ nhớ đệm của các kết quả của Trước truy vấn mô tả trên trang 96.

Q49. Tường lửa có thể ngăn chặn các cuộc tấn công từ chối dịch vụ như cuộc tấn công được mô tả ở trang 96 không? Những
phương pháp khác có sẵn để đối phó với các cuộc tấn công như vậy?
Ans.
Vì tường lửa chỉ đơn giản là một hệ thống máy tính khác được đặt trước một số dịch vụ mạng nội bộ cần được bảo vệ, nên nó
khó có thể ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS) vì hai lý do:
• Lưu lượng truy cập tấn công có khả năng gần giống với các yêu cầu hoặc phản hồi dịch vụ thực.
• Ngay cả khi chúng có thể được nhận dạng là độc hại (và chúng có thể nằm trong trường hợp được mô tả ở trang 96), một
cuộc tấn công thành công có khả năng tạo ra các thông báo độc hại với số lượng lớn đến mức chính tường lửa cũng phải rất có
thể đến thì là ở choáng ngợp và trở thành một nút cổ chai, ngăn chặn liên lạc với các dịch vụ mà nó bảo vệ.
Các phương pháp khác để đối phó với các cuộc tấn công DoS: chưa có biện pháp phòng thủ toàn diện nào được phát triển. Các
kiểu tấn công mô tả trên P. 96, cái mà là sự phụ thuộc trên địa chỉ IP giả mạo (cho một sai 'người gửi địa chỉ') có thể thì là ở ngăn
chặn tại nguồn của chúng bằng cách kiểm tra địa chỉ người gửi trên tất cả các gói IP gửi đi. Điều này giả định rằng tất cả các
trang web trên Internet đều quản lý Trong như là một thái độ như đến chắc chắn cái đó đây kiểm tra Là thực hiện - một không
chắc hoàn cảnh. Nó Là khó khăn để xem làm thế nào các mục tiêu của các cuộc tấn công như vậy (thường là các dịch vụ công
được sử dụng nhiều) có thể tự bảo vệ mình bằng các giao thức mạng hiện tại và cơ chế bảo mật của chúng. Với sự ra đời của cơ
chế chất lượng dịch vụ Trong IPv6, các tình hình Nên cải thiện. Nó Nên thì là ở khả thi vì một Dịch vụ đến chỉ định chỉ có một
số lượng giới hạn của nó là toàn bộ băng thông đến mỗi phạm vi của địa chỉ IP địa chỉ, và bộ định tuyến xuyên suốt các Internet
có thể thì là ở thiết lập để thực thi các phân bổ tài nguyên này. Tuy nhiên, cách tiếp cận này vẫn chưa được thực hiện đầy đủ.

Chương 4 Giải bài tập


15
Q50. Có thể hình dung hữu ích cho một cổng có nhiều máy thu không?
Ans.
Nếu một số quy trình chia sẻ một cổng, thì tất cả các thông báo đến trên cổng đó phải được nhận và xử lý độc lập bởi các quy
trình đó.
quy trình làm không phải thường xuyên đăng lại dữ liệu, nhưng chia sẻ một Hải cảng sẽ đòi hỏi truy cập đến phổ thông dữ liệu
đại diện các tin nhắn trong hàng đợi tại cổng. Ngoài ra, cấu trúc hàng đợi sẽ phức tạp bởi thực tế là mỗi tiến trình có ý tưởng
riêng về phía trước của hàng đợi và khi nào hàng đợi trống.
Lưu ý rằng một nhóm cổng có thể được sử dụng để cho phép một số quy trình nhận cùng một thông báo.

Q51. Máy chủ tạo một cổng mà nó sử dụng để nhận yêu cầu từ máy khách. Thảo luận về các vấn đề thiết kế liên quan đến mối
quan hệ giữa tên của cổng này và tên được khách hàng sử dụng.
Ans.
Các vấn đề thiết kế chính để định vị các cổng máy chủ là:
(i) Làm cách nào để khách hàng biết cổng và địa chỉ IP nào sẽ sử dụng để truy cập dịch vụ? Các tùy chọn là:
• sử dụng máy chủ định danh/trình kết nối để ánh xạ tên văn bản của từng dịch vụ tới cổng của dịch vụ đó;
• mỗi Dịch vụ sử dụng nổi tiếng vị trí độc lập Hải cảng Tôi, cái mà tránh một tra cứu tại một Tên người phục vụ. Các điều
hành hệ thống còn có đến nhìn lên các nơi ở của các người phục vụ, nhưng các câu trả lời có thể thì là ở lưu vào bộ nhớ cache tại
địa phương.
(ii) Làm thế nào các máy chủ khác nhau có thể cung cấp dịch vụ vào những thời điểm khác nhau?
Định danh cổng độc lập với vị trí cho phép dịch vụ có cùng một cổng tại các vị trí khác nhau. Nếu sử dụng chất kết dính, khách
hàng cần tư vấn lại khách hàng để tìm vị trí mới.
(iii) Hiệu quả truy cập vào các cổng và số nhận dạng cục bộ.
Đôi khi các hệ điều hành cho phép các quy trình sử dụng các tên cục bộ hiệu quả để chỉ các cổng. Điều này trở thành một vấn đề
khi nào một người phục vụ tạo ra một không công khai Hải cảng vì một cụ thể khách hàng đến gửi tin nhắn đến, tại vì các địa
phương tên là vô nghĩa đối với khách hàng và phải được dịch sang mã định danh toàn cầu để khách hàng sử dụng.

Q52. Các chương trình trong Hình 4.3 và Hình 4.4 có sẵn trên cdk3.net/ipc . Sử dụng chúng để tạo ra một kit xét nghiệm đến
mục đích các các điều kiện Trong cái mà datagram là thỉnh thoảng giảm. Dấu: các khách hàng chương trình nên thì là ở có thể
đến thay đổi các con số của tin nhắn gởi và của chúng kích thước; các người phục vụ Nên phát hiện khi nào một tin nhắn từ một
khách hàng cụ thể là bỏ lỡ.
Ans.
Đối với kiểu kiểm tra này, một quá trình gửi và một quá trình khác nhận. Sửa đổi chương trình trong Hình 4.3 sao cho các đối số
của chương trình xác định i ) tên máy chủ của máy chủ ii) cổng máy chủ, iii) số lượng n tin nhắn sẽ được gửi và iv) độ dài l của
tin nhắn. Nếu các đối số không phù hợp, chương trình sẽ thoát ngay lập tức. Chương trình sẽ mở một socket datagram và sau đó
gửi n thông báo datagram UDP đến
người phục vụ. tin nhắn tôi nên chứa số nguyên i trong bốn byte đầu tiên và ký tự '*' trong l-4 byte còn lại. Nó không cố gắng
nhận bất kỳ tin nhắn nào.
Cầm lấy một sao chép của các chương trình Trong Nhân vật 4.4 và biến đổi nó vì thế cái đó các chương trình tranh luận chỉ định
các người phục vụ Hải cảng. Các chương trình Nên mở một ổ cắm trên các được Hải cảng và sau đó nhiều lần nhận một gói dữ
liệu thông điệp. Nó nên kiểm tra số trong mỗi tin nhắn và báo cáo bất cứ khi nào có khoảng trống trong chuỗi số trong tin nhắn
nhận được từ một khách hàng cụ thể.
Chạy hai chương trình này trên một cặp máy tính và cố gắng tìm ra các điều kiện trong đó các datagram bị loại bỏ, ví dụ như
kích thước của thông báo, số lượng máy khách.

Q53. Sử dụng chương trình trong Hình 4.3 để tạo chương trình máy khách đọc lặp lại một dòng đầu vào từ người dùng, gửi nó
đến máy chủ trong một thông báo UDP datagram, sau đó nhận một thông báo từ máy chủ. Máy khách đặt thời gian chờ trên ổ
cắm của nó để nó có thể thông báo cho người dùng khi máy chủ không trả lời. Chạy thử chương trình máy khách này với máy
chủ trong Hình 4.4.
Ans.
Chương trình như Hình 4.4 với các sửa đổi sau:
16
DatagramSocket aSocket = DatagramSocket mới ( ); aSocket.setSoTimeout (3000);// tính bằng mili giây trong khi ( // not eof ) {
thử{
// nhận đầu vào của người dùng và đưa vào yêu cầu
.....
aSocket.send (yêu cầu);
........
aSocket.receive (trả lời);
}catch ( InterruptedIOException e){ System.out.println ("máy chủ không phản hồi”);}

Q54. Các chương trình trong Hình 4.5 và Hình 4.6 có sẵn tại cdk3.net/ipc . Sửa đổi chúng để máy khách liên tục lấy một dòng
đầu vào của người dùng và ghi nó vào luồng và máy chủ đọc lặp lại từ luồng, in ra kết quả của mỗi lần đọc. So sánh giữa việc
gửi dữ liệu trong các thông điệp UDP datagram và qua một luồng.
Ans.
Những thay đổi đối với hai chương trình rất đơn giản. Nhưng sinh viên nên lưu ý rằng không phải tất cả các lần gửi đều đi ngay
lập tức và các lần nhận phải khớp với dữ liệu được gửi.
Để so sánh. Trong cả hai trường hợp, một chuỗi byte được truyền từ người gửi đến người nhận. Trong trường hợp của một thông
báo, trước tiên người gửi sẽ xây dựng chuỗi byte và sau đó truyền nó đến người nhận để nhận toàn bộ. Trong trường hợp của
một luồng, người gửi sẽ truyền các byte bất cứ khi nào chúng sẵn sàng và người nhận sẽ thu thập các byte từ luồng khi chúng
đến.

Q55. Sử dụng các chương trình được phát triển trong Bài tập 4.5 để kiểm tra ảnh hưởng đối với người gửi khi người nhận gặp sự
cố và ngược lại.
Ans.
Chạy họ cả hai vì một trong khi và sau đó giết chết Đầu tiên một và sau đó các khác. Khi nào các người đọc quá trình tai nạn,
các nhà văn bị IOException - đường ống bị hỏng. Khi trình ghi gặp sự cố, trình đọc có ngoại lệ EOF.

Q56. Sun XDR sắp xếp dữ liệu bằng cách chuyển đổi nó thành dạng big-endian tiêu chuẩn trước khi truyền. Thảo luận về
ưu điểm và nhược điểm của phương pháp này khi so sánh với CDR của CORBA.
Ans.
Các XDR phương pháp cái mà sử dụng một Tiêu chuẩn hình thức Là không hiệu quả khi nào liên lạc nhận nơi giữa cặp tương tự
máy vi tính của ai byte đặt hàng khác nhau từ các Tiêu chuẩn. Nó Là Có hiệu quả Trong mạng lưới Trong cái mà các byte-
thứ tự được sử dụng bởi phần lớn các máy tính giống như mẫu tiêu chuẩn. Việc chuyển đổi bởi người gửi và người nhận sử dụng
biểu mẫu tiêu chuẩn có hiệu lực là một hoạt động vô hiệu.
Trong CORBA CDR người gửi bao gồm một định danh Trong mỗi thông điệp và người nhận đến đổi các byte đến đặt hàng
riêng của họ nếu cần thiết. Phương pháp này loại bỏ tất cả các chuyển đổi dữ liệu không cần thiết, nhưng tăng thêm độ phức tạp
ở chỗ tất cả các máy tính cần xử lý cả hai biến thể.

Q57. Sun XDR căn chỉnh từng giá trị nguyên thủy trên ranh giới bốn byte , trong khi CORBA CDR căn chỉnh giá trị nguyên
thủy có kích thước n trên ranh giới n -byte. Thảo luận về sự đánh đổi trong việc lựa chọn kích thước chiếm bởi các giá trị nguyên
thủy.
Ans.
soái ca Là đơn giản hơn khi nào các dữ liệu diêm các căn chỉnh ranh giới của các máy vi tính có liên quan. Bốn byte đủ lớn để
hỗ trợ hầu hết các kiến trúc một cách hiệu quả, nhưng một số không gian bị lãng phí bởi các giá trị nguyên thủy nhỏ hơn.
Phương pháp kết hợp của CDR phức tạp hơn để thực hiện, nhưng tiết kiệm một số không gian ở dạng sắp xếp lại. Mặc dù ví dụ
trong Hình 4.8 cho thấy không gian bị lãng phí ở cuối mỗi chuỗi vì độ dài tiếp theo được căn chỉnh trên ranh giới 4 byte.

Q58. Tại sao không có cách nhập dữ liệu rõ ràng trong CORBA CDR?
Ans.
Các sử dụng của gõ dữ liệu sản xuất chi phí Trong không gian và thời gian. Các không gian chi phí là quá hạn đến các thêm loại
hình thông tin ở dạng sắp xếp thứ tự (xem ví dụ về dạng tuần tự hóa Java). Chi phí hiệu suất là do nhu cầu giải thích thông tin
loại và thực hiện hành động thích hợp.

17
Giao thức RMI mà CDR được thiết kế được sử dụng trong tình huống mà mục tiêu và người gọi biết loại nào sẽ xảy ra trong các
thông báo mang đối số và kết quả của nó. Do đó thông tin loại là dư thừa. Nó Là của khóa học khả thi đến xây dựng loại hình mô
tả trên đứng đầu của CDR, vì thí dụ qua sử dụng giản dị dây.

Q59. Viết một thuật toán Trong mã giả đến mô tả các tuần tự hóa thủ tục mô tả Trong Tiết diện
4.3.2. Thuật toán sẽ hiển thị khi các thẻ điều khiển được xác định hoặc thay thế cho các lớp và thể hiện. Mô tả dạng tuần tự hóa
mà thuật toán của bạn sẽ tạo ra khi tuần tự hóa một thể hiện của lớp sau Couple .
lớp Couple triển khai Serializable{ private Person one;
tư Nhân hai;
công khai ( Người a, Người b) { one = a;
hai = b;
}
}
Ans.
Thuật toán phải mô tả quá trình tuần tự hóa của một đối tượng khi viết thông tin lớp của nó theo sau là tên và loại của các biến
thể hiện. Sau đó, tuần tự hóa từng biến thể hiện theo cách đệ quy.
tuần tự hóa ( Đối tượng o) { c = class(o);
class_handle = get_handle (c);
if ( class_handle ==null) // ghi thông tin lớp và định nghĩa class_handle ; viết class_handle
ghi số (n), tên và lớp của từng biến thể hiện

object_handle = get_handle (o); nếu ( object_handle ==null) {


xác định object_handle ; cho (iv = 0 đến n-1)
nếu (nguyên thủy (iv ) ) viết iv khác tuần tự hóa ( iv)
}
viết object_handle
}
Đến mô tả các nối tiếp hình thức cái đó của bạn thuật toán sẽ sản xuất khi nào tuần tự hóa một ví dụ của lớp Cặp đôi .
Ví dụ: khai báo một thể hiện của Cặp đôi là
Cặp đôi t1 = Cặp đôi mới( Người mới("Smith", "London", 1934), Người mới("Jones", "Paris", 1945));
Đầu ra sẽ là:

Giá trị được tuần tự hóa Giải thích


tên lớp, số phiên bản, xử lý Couple 8 byte version number h0
số lượng, loại và tên của các biến thể hiện
2 những cặp
tuần tự hóa ví dụ Biến đổi một trong Person
đôi one Person two

Person 8 byte version number h1


tuần tự hóa ví dụ Biến đổi hai cặp3đôi int year java.lang.String java.lang.String
giá trị của các biến thể hiện name place
1934 5 Smith 6 London h2
h1
1945 5 Jones 5 Paris h3

Q60. Viết một thuật toán bằng mã giả để mô tả quá trình khử lưu huỳnh của dạng tuần tự hóa được tạo bởi thuật toán xác định
Trong Tập thể dục 4.10. Dấu: sử dụng sự phản xạ đến tạo ra một lớp từ nó là Tên, đến tạo một hàm tạo từ các kiểu tham số của
nó và để tạo một thể hiện mới của một đối tượng từ hàm tạo và các giá trị đối số.
Ans.
Bất cứ khi nào định nghĩa xử lý được đọc, tức là class_info , xử lý thư từ hoặc đối tượng, xử lý thư từ, cửa hàng các đôi qua
phương pháp bản đồ. Khi nào một xử lý Là đọc nhìn nó lên đến tìm thấy các tương ứng lớp hoặc đối tượng.
đối tượng ( byte [] stream) { Constructor aConstructor ;
đọc class_name và class_handle ;
if ( class_information == null) aConstructor = lookup( class_handle ); khác {
Lớp cl = Class.forName ( tên_lớp ); đọc số (n) của các biến thể hiện Tham số lớp [ ]= Lớp mới [n]; cho (int i = 0 đến n-1) {
18
đọc tên và class_name của biến thể hiện i tham sốTypes [ i ] = Class.forName ( class_name );
}
aConstructor = cl.getConstructor ( tham sốTypes ); bản đồ ( aConstructor , class_handle );
}
if (mục tiếp theo trong luồng là object_handle ) o = lookup( object_handle ); khác {
Đối tượng lập luận [ ] = đối tượng mới [n]; cho (int i = 0 đến n-1) {
if (mục tiếp theo trong luồng là nguyên thủy) args [ i ] = đọc giá trị khác args [ i ] = giải tuần tự hóa ( // phần còn lại của luồng)
}
Đối tượng o = cnew.newInstance ( args ); đọc object_handle từ bản đồ luồng (object, object_handle )
trở lại o;
}
}
Q61. Định nghĩa một lớp có các thể hiện đại diện cho các tham chiếu đối tượng từ xa. Nó phải chứa thông tin tương tự như trong
Hình 4.10 và phải cung cấp các phương thức truy cập cần thiết cho giao thức yêu cầu-trả lời. Giải thích cách mỗi phương pháp
truy cập sẽ được sử dụng bởi giao thức đó. Đưa ra lời giải thích cho loại được chọn cho biến đối tượng chứa thông tin về giao
diện của đối tượng từ xa.
Ans.
lớp RemoteObjectReference { riêng tư InetĐịa chỉ địa chỉ ip ; cổng int riêng;
thời gian riêng tư;
riêng int objectNumber ; giao diện Lớp riêng;
địa chỉ Inet công khai getIPaddress ( ) ( return ipAddress ;} public int getPort () { return port;);
}
Máy chủ tra cứu cổng máy khách và địa chỉ IP trước khi gửi phản hồi.
Giao diện biến được sử dụng để nhận dạng lớp của một đối tượng từ xa khi tham chiếu được truyền dưới dạng
một đối số hoặc kết quả. Chương 5 giải thích rằng các proxy được tạo ra để giao tiếp với các đối tượng ở xa. Một proxy cần triển
khai giao diện từ xa. Nếu tên proxy được tạo bằng cách thêm hậu tố tiêu chuẩn vào các giao diện Tên và tất cả các chúng tôi cần
đến làm Là đến xây dựng một Ủy quyền từ một lớp đã sẵn sàng có sẵn, sau đó nó là tên chuỗi là đủ. Tuy nhiên, nếu chúng ta
muốn sử dụng sự phản chiếu để xây dựng một proxy, thì cần có một thể hiện của Lớp . CORBA sử dụng giải pháp thay thế thứ
ba được mô tả trong Chương 17.
Q63. Lập trình từng thao tác trong ba thao tác của giao thức yêu cầu-trả lời trong Hình 4.123, sử dụng giao tiếp UDP, nhưng
không có thêm không tí nào khả năng chịu lỗi đo. Bạn Nên sử dụng các các lớp học bạn đã định nghĩa trong Bài tập 4.12 và Bài
tập 4.13.
Ans.
lớp Máy khách{ DatagramSocket ổ cắm ;
thông báo tĩnh công cộngLength = 1000; Khách hàng( ){
aSocket = DatagramSocket mới ( );
}
byte công khai [] doOperation ( RemoteObjectRef o, int methodId , byte [] đối số){
InetĐịa chỉ serverIp = o.getIPaddress (); int serverPort = o.getPort ();
RequestMessage rm = RequestMessage mới ( 0, o, methodId , đối số ); byte [] message = rm.marshall ();
DatagramGói yêu cầu =
DatagramPacket mới ( message,message.length (0,serverIp, serverPort ); thử{
aSocket.send (yêu cầu);
bộ đệm byte = byte mới [ messageLength ];
DatagramPacket trả lời = DatagramPacket mới ( bộ đệm, bộ đệm. chiều dài ); aSocket.receive (trả lời);
hồi đáp;
} bắt ( SocketException e){...}
}
]
lớp {
chủ int riêngPort = 8888;
public static int messageLength = 1000;
DatagramSocket mySocket ;
công cộng ( ){
mySocket = DatagramSocket mới ( serverPort );
// liên tục gọi GetRequest , thực thi phương thức và gọi SendReply
}
byte công khai [] getRequest ( ){

19
bộ đệm byte = byte mới [ messageLength ];
Gói dữ liệu yêu cầu = Gói dữ liệu mới ( bộ đệm, bộ đệm. chiều dài );
mySocket.receive (yêu cầu);
clientHost = request.getHost
(); clientPort =
request.getPort (); trả về
request.getData ();
}
public void sendReply ( byte[ ]reply, InetAddress clientHost , int
clientPort ) { bộ đệm byte = rm.marshall ();
DatagramPacket trả lời = DatagramPacket mới ( bộ đệm, bộ đệm.
chiều dài ); mySocket.send (trả lời);
}
}

Q64. Đưa ra một phác thảo về việc triển khai máy chủ cho thấy cách các hoạt động getRequest và gửi trả lời được sử dụng bởi
một máy chủ tạo một luồng mới để thực hiện từng yêu cầu của máy khách. Cho biết cách máy chủ sẽ sao chép requestId từ
thông báo yêu cầu vào thông báo trả lời và cách nó sẽ lấy địa chỉ IP và cổng của máy khách..
Ans.
lớp Máy chủ{
chủ int riêngPort = 8888;
public static int messageLength = 1000; DatagramSocket mySocket ;
công cộng ( ){
mySocket = DatagramSocket mới ( serverPort ); trong khi (đúng ) {
yêu cầu byte [] = getRequest ( ); Công nhân w = Công nhân mới(yêu cầu);
}
}
byte công khai [] getRequest ( ){
//như trên}
public void sendReply ( byte[ ]reply, InetAddress clientHost , int clientPort ){
// như trên}
}
lớp Công nhân mở rộng Chủ đề { InetAddress khách chủ ; int clientPort ;
int requestId ; byte [] lời yêu cầu;
Công nhân công cộng(yêu cầu ){
// trích xuất các trường thông báo thành các biến thể hiện
}
public void run( ){ try{
req = request.unmarshal (); byte [] args = req.getArgs ();
// unmarshall args , thực thi thao tác,
// nhận kết quả được sắp xếp theo thứ tự dưới dạng mảng byte trong kết quả

RequestMessage rm = RequestMessage mới ( requestId , kết quả); trả lời = rm.marshal ();
sendReply ( trả lời, clientHost , clientPort );
}bắt { ... }
}
}

Q65. Xác định phiên bản mới của doOperation phương thức đặt thời gian chờ khi chờ tin nhắn trả lời . Sau khi hết thời gian chờ,
nó sẽ truyền lại thông báo yêu cầu n lần. Nếu vẫn không trả lời, nó sẽ thông báo cho người gọi.
Ans.
Với thời gian chờ được đặt trên một ổ cắm, hoạt động nhận sẽ chặn trong khoảng thời gian nhất định và sau đó là một
Bị gián đoạnIOException sẽ được nâng lên.
Trong hàm tạo của Client , đặt thời gian chờ là 3 giây
Khách hàng( ){
aSocket = DatagramSocket mới ( ); aSocket.setSoTimeout (3000);// tính bằng mili giây
20
}
Trong doOperation , bắt InterruptedIOException . Liên tục gửi tin nhắn Yêu cầu và cố gắng nhận được phản hồi, ví dụ: 3 lần.
Nếu không có phản hồi, hãy trả về một giá trị đặc biệt để biểu thị lỗi.
byte công khai [] doOperation ( RemoteObjectRef o, int methodId , byte [] đối số){
InetĐịa chỉ serverIp = o.getIPaddress (); int serverPort = o.getPort ();
RequestMessage rm = RequestMessage mới ( 0, o, methodId , đối số ); byte [] message = rm.marshall ();
DatagramGói yêu cầu =
DatagramPacket mới ( message,message.length (0, serverIp , serverPort ); for(int i = 0; i <3;i++){
thử{
aSocket.send (yêu cầu);
bộ đệm byte = byte mới [ messageLength ];
DatagramPacket trả lời = DatagramPacket mới ( bộ đệm, bộ đệm. chiều dài ); aSocket.receive (trả lời);
hồi đáp;
} bắt ( SocketException e){);
} bắt ( Bị gián đoạnIOException e){}
}
trả về giá trị rỗng;
}

Q66. Mô tả tình huống trong đó khách hàng có thể nhận được phản hồi từ cuộc gọi trước đó.
Ans.
Máy khách gửi thông báo yêu cầu, hết thời gian và sau đó truyền lại thông báo yêu cầu, chỉ mong đợi một phản hồi. Máy chủ
đang hoạt động dưới tải nặng, cuối cùng sẽ nhận được cả hai thông báo yêu cầu và gửi hai phản hồi.
Khi khách hàng gửi yêu cầu tiếp theo, kết quả là nó sẽ nhận được phản hồi từ cuộc gọi trước đó. Nếu số nhận dạng yêu cầu được
sao chép từ yêu cầu trả lời tin nhắn, khách hàng có thể từ chối trả lời tin nhắn trước đó.

Q67. Mô tả các cách mà giao thức yêu cầu-trả lời che giấu tính không đồng nhất của hệ điều hành và mạng máy tính.
Ans.
(i) Các hệ điều hành khác nhau có thể cung cấp nhiều giao diện khác nhau cho các giao thức truyền thông. Các giao diện này
được che giấu bởi các giao diện của giao thức yêu cầu-trả lời.
(ii) Mặc dù các giao thức Internet được phổ biến rộng rãi nhưng một số mạng máy tính có thể cung cấp các giao thức khác. Giao
thức yêu cầu-trả lời có thể được thực hiện như nhau trên các giao thức khác.
[ Ngoài ra , nó có thể được triển khai qua TCP hoặc UDP.]

Q68. Thảo luận xem các hoạt động sau đây có bình thường :
• Nhấn nút yêu cầu thang máy (thang máy);
• Ghi dữ liệu vào một tập tin;
• Nối thêm dữ liệu vào một tập tin.
Có phải điều kiện cần thiết cho tính bình thường là hoạt động không được liên kết với bất kỳ trạng thái nào không?
Ans.
Các hoạt động đến viết dữ liệu đến một tập tin có thể thì là ở xác định ( tôi ) như Trong Unix ở đâu mỗi viết Là áp dụng tại các
con trỏ đọc-ghi, Trong cái mà trường hợp các hoạt động Là không phải bình thường; hoặc (ii) như Trong một số tập tin may chủ
ở đâu các viết hoạt động được áp dụng cho một chuỗi các vị trí đã chỉ định, trong trường hợp đó, hoạt động là bình thường vì nó
có thể được lặp lại bất kỳ số lần nào với cùng một tác dụng. Thao tác nối thêm dữ liệu vào một tệp không phải là tạm thời, bởi vì
tệp được mở rộng mỗi khi thao tác này được thực hiện.
Câu hỏi về mối quan hệ giữa tính bình thường và trạng thái máy chủ cần được làm rõ cẩn thận. Điều kiện cần thiết của
idempotence là tác động của một thao tác độc lập với các thao tác trước đó. Các hiệu ứng có thể thì là ở chuyển tải từ một hoạt
động đến các tiếp theo qua có nghĩa của một người phục vụ tiểu bang như là như một đọc viết con trỏ hoặc một ngân hàng
THĂNG BẰNG. Vì vậy nó Là một cần thiết tình trạng của bất lực cái đó các các hiệu ứng của một hoạt động không nên phụ
thuộc vào trạng thái máy chủ. Tuy nhiên, xin lưu ý rằng thao tác ghi tệp tạm thời không làm thay đổi trạng thái của tệp.

Q69. Giải thích các lựa chọn thiết kế có liên quan đến việc giảm thiểu lượng dữ liệu trả lời được giữ tại máy chủ. So sánh các
yêu cầu lưu trữ khi sử dụng giao thức RR và RRA.

21
Ans.
Để cho phép truyền lại tin nhắn trả lời mà không cần thực hiện lại các thao tác, máy chủ phải giữ lại tin nhắn trả lời cuối cùng
đến mỗi khách hàng. Khi nào RR Là đã sử dụng, nó Là giả định cái đó một lời yêu cầu thông điệp Là một nhìn nhận của các tin
nhắn trả lời cuối cùng. Do đó , một tin nhắn trả lời phải được giữ cho đến khi một tin nhắn yêu cầu tiếp theo đến từ cùng một
máy khách. Có thể giảm việc sử dụng bộ nhớ bằng cách áp dụng thời gian chờ cho khoảng thời gian mà câu trả lời được lưu trữ.
Yêu cầu lưu trữ cho RR = kích thước thư trung bình x số lượng khách hàng đã thực hiện yêu cầu kể từ khoảng thời gian chờ. Khi
RRA được sử dụng, một tin nhắn trả lời chỉ được giữ cho đến khi có xác nhận. Khi một xác nhận bị mất, bản tin trả lời sẽ được
giữ như đối với giao thức RR.

Q70. Giả sử giao thức RRA đang được sử dụng. Máy chủ nên giữ lại dữ liệu trả lời chưa được xác nhận trong bao lâu? Các máy
chủ có nên liên tục gửi trả lời để cố gắng nhận được xác nhận không?
Ans.
Khoảng thời gian chờ để lưu trữ bản tin trả lời là thời gian tối đa mà bất kỳ máy khách nào cũng có thể truyền lại . một lời yêu
cầu thông điệp. Ở đó Là không chắc chắn giá trị vì đây, và ở đó Là một đánh đổi giữa sự an toàn và không gian đệm . Trong
trường hợp RRA, thông báo trả lời thường bị loại bỏ trước khi hết thời gian chờ vì đã nhận được xác nhận. Giả sử rằng một máy
chủ sử dụng RRA truyền lại bản tin trả lời sau một sự chậm trễ và xem xét các trường hợp ở đâu các khách hàng có gởi một nhìn
nhận cái mà là muộn hoặc mất đi. Điều này yêu cầu ( i ) khách hàng nhận ra các tin nhắn trả lời trùng lặp và gửi thêm các tin
nhắn tương ứng. lời cảm ơn và (ii) các người phục vụ đến xử lý trì hoãn Sự nhìn nhận sau nó có truyền lại Đáp lại tin nhắn. Đây
cải tiến có thể làm giảm một chút yêu cầu lưu trữ (tương ứng với thông báo xác nhận bị mất thỉnh thoảng ) và không thuận tiện
cho máy khách luồng đơn có thể bị chiếm dụng và không ở vị trí để gửi thêm xác nhận.

Q71. Tại sao số lượng tin nhắn được trao đổi trong một giao thức có thể quan trọng hơn đối với hiệu suất so với tổng lượng dữ
liệu được gửi? Thiết kế một biến thể của giao thức RRA trong đó báo nhận Là cõng trên, cái đó Là, truyền đi Trong các tương tự
thông điệp như, các tiếp theo yêu cầu khi thích hợp và nếu không thì được gửi dưới dạng một tin nhắn riêng biệt. (Gợi ý: sử dụng
thêm bộ hẹn giờ trong máy khách.)
Ans.
Thời gian trao đổi tin nhắn = A + B* độ dài, trong đó A là chi phí xử lý cố định và B là tỷ lệ của truyền tải. Một Là lớn tại vì nó
đại diện có ý nghĩa Chế biến tại cả hai người gửi và người nhận; việc gửi dữ liệu liên quan đến một cuộc gọi hệ thống; và sự xuất
hiện của một tin nhắn được thông báo bởi một ngắt phải được xử lý và quá trình nhận được lên lịch. Các giao thức bao gồm
nhiều vòng gửi tin nhắn có xu hướng đắt đỏ vì phải trả chi phí A cho mỗi tin nhắn.
Phiên bản mới của RRA có:

máy khách
hủy bất kỳ Xác nhận chưa xử lý nào trên đồng hồ hẹn giờ gửi Yêu cầu
nhận Yêu cầu gửi Trả lời

nhận Trả lời đặt hẹn giờ gửi


Xác nhận sau độ trễ T
nhận được xác nhận

22
Máy khách luôn gửi một xác nhận, nhưng nó sẽ được hỗ trợ cho yêu cầu tiếp theo nếu một yêu cầu phát sinh trong T giây tiếp
theo. Nó sẽ gửi một xác nhận riêng nếu không có yêu cầu nào phát sinh. Mỗi khi máy chủ nhận được yêu cầu hoặc thông báo xác
nhận từ máy khách, nó sẽ loại bỏ bất kỳ thông báo trả lời nào được lưu cho máy khách đó.

Q72. địa chỉ IP phát đa hướng cung cấp một Dịch vụ cái đó đau khổ từ bỏ sót thất bại. Làm một kiểm tra bộ dụng cụ, có khả
năng dựa trên chương trình trong Hình 4.17, để khám phá các điều kiện theo đó một bản tin multicast đôi khi giảm qua một của
các các thành viên của các phát đa hướng tập đoàn. Các kiểm tra bộ dụng cụ Nên thì là ở được thiết kế để cho phép nhiều quá
trình gửi.
Ans.
Chương trình trong Hình 4.17 nên được thay đổi để nó có thể chạy như một người gửi hoặc chỉ một người nhận. Một đối số
chương trình có thể xác định vai trò của nó. Như trong Bài tập 4.3, số lượng tin nhắn và kích thước của chúng có thể thay đổi và
một số thứ tự sẽ được gửi cùng với mỗi tin nhắn. Mỗi người nhận ghi lại số thứ tự cuối cùng từ mỗi người gửi (người gửi địa chỉ
IP địa chỉ có thể thì là ở lấy lại từ datagram) và bản in ngoài không tí nào còn thiếu sự phối hợp con số. Thử nghiệm với một số
người gửi và người nhận cũng như kích thước thư để khám phá tải cần thiết để gây ra các thư bị rớt . Bộ công cụ thử nghiệm
phải được thiết kế để cho phép thực hiện nhiều quy trình gửi.

Q73. Phác thảo thiết kế sơ đồ sử dụng truyền lại thông báo với IP multicast để khắc phục vấn đề thông báo bị rớt. Kế hoạch của
bạn nên tính đến các điểm sau:
i) có thể có nhiều người gửi;
ii) nói chung chỉ có một tỷ lệ nhỏ tin nhắn bị loại bỏ;
iii) không giống như giao thức yêu cầu-trả lời, người nhận không nhất thiết phải gửi tin nhắn trong bất kỳ giới hạn thời gian cụ
thể nào.
Giả sử rằng các thư không được gửi đến theo thứ tự của người gửi.
Ans.
Đến cho phép vì điểm ( tôi ) người gửi phải gắn một sự phối hợp con số đến mỗi thông điệp. Người nhận ghi lại Cuối cùng số
thứ tự từ mỗi người gửi và kiểm tra số thứ tự trên mỗi tin nhắn nhận được.
Đối với điểm (ii) sơ đồ xác nhận tiêu cực được ưu tiên hơn (người nhận yêu cầu các tin nhắn bị thiếu, thay vì xác nhận tất cả các
tin nhắn). Khi nhận thấy tin nhắn bị thiếu, họ sẽ gửi tin nhắn cho người gửi để yêu cầu. Để thực hiện công việc này, người gửi
phải lưu trữ tất cả các tin nhắn đã gửi gần đây để truyền lại. Người gửi truyền lại các tin nhắn dưới dạng một datagram unicast.
Điểm (iii) - đề cập đến thực tế là chúng tôi không thể dựa vào câu trả lời như một sự thừa nhận. Không thừa nhận, các người gửi
sẽ thì là ở bên trái giữ tất cả các gởi tin nhắn Trong nó là cửa hàng vô thời hạn. Khả thi các giải pháp:
a) người gửi loại bỏ các tin nhắn được lưu trữ sau một thời gian giới hạn b) thỉnh thoảng có xác nhận từ người nhận có thể được
hỗ trợ bởi các tin nhắn được gửi đi.
Lưu ý các yêu cầu đối với thư bị mất và xác nhận rất đơn giản - chúng chỉ chứa số thứ tự của một loạt thư bị mất.

Q74. Giải pháp của bạn cho Bài tập 4.24 đã khắc phục được vấn đề tin nhắn bị rớt trong IP multicast. Theo nghĩa nào thì giải
pháp của bạn khác với định nghĩa về phát đa hướng đáng tin cậy?
Ans.
Phát đa hướng đáng tin cậy yêu cầu mọi thành viên của nhóm hoặc không ai trong số họ nhận được bất kỳ thông báo nào được
truyền đi . Nếu các người gửi thất bại trước nó có gởi một thông điệp đến tất cả các của các các thành viên ( ví dụ nếu nó có đến
truyền lại một tin nhắn) hoặc nếu một cổng bị lỗi, thì một số thành viên sẽ nhận được tin nhắn trong khi những người khác thì
không.

Q75. Đưa ra một kịch bản trong đó các gói tin phát đa hướng được gửi bởi các máy khách khác nhau được gửi theo các thứ tự
khác nhau tại hai thành viên nhóm. Giả sử rằng một số hình thức truyền lại tin nhắn đang được sử dụng, nhưng tin nhắn đó cái
đó là không phải giảm đến Trong người gửi đặt hàng. Gợi ý thế nào người nhận có thể biện pháp khắc phục tình huống này.
Ans.
Người gửi1 gửi yêu cầu r1 cho thành viên m1 và m2 nhưng tin nhắn đến m2 bị hủy Người gửi2 gửi yêu cầu r2 cho thành viên
m1 và m2 (cả hai đều đến nơi an toàn)
Người gửi1 truyền lại yêu cầu r1 cho thành viên m2 (nó đến nơi an toàn).
Thành viên m1 nhận tin theo thứ tự r 1;r 2. Tuy nhiên m2 nhận tin theo thứ tự r 2;r 1.
Distributed Systems, Edition 3: Chapter 7 solutions 1
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Để khắc phục tình hình. Mỗi người nhận gửi tin nhắn đến ứng dụng của mình theo thứ tự người gửi. Khi nó nhận được một tin
nhắn trước tin nhắn tiếp theo được mong đợi, nó sẽ giữ lại cho đến khi nhận và gửi các tin nhắn được truyền lại trước đó.

Q76. Xác định ngữ nghĩa cho và thiết kế một giao thức cho một dạng nhóm tương tác yêu cầu-trả lời, ví dụ sử dụng IP multicast.
Ans.
Các tập đoàn Yêu cầu trả lời giao thức Nên không phải sử dụng một Yêu cầu trả lời đến mỗi thành viên. Thay vì, các lời yêu cầu
tin nhắn được phát đa hướng cho tất cả các thành viên của nhóm. Nhưng có một câu hỏi là nên truyền đi bao nhiêu câu trả lời .
Ví dụ: một yêu cầu đối với một dịch vụ được sao chép hoặc phân vùng chỉ yêu cầu một phản hồi. bên trong trường hợp đầu tiên
từ không tí nào thành viên và Trong các thứ hai trường hợp từ các người phục vụ với các thông tin. Trong tương phản một lời
yêu cầu vì một cuộc bỏ phiếu yêu cầu đa số câu trả lời đồng ý; và yêu cầu đọc trên cảm biến yêu cầu tất cả các phản hồi. Ngữ
nghĩa sẽ cho phép khách hàng chỉ định số lượng câu trả lời cần thiết.
Trong một giao thức yêu cầu-trả lời nhóm, thông báo yêu cầu được phát đa hướng tới tất cả các thành viên của nhóm, sử dụng
truyền lại cơ chế giống cái đó của các Yêu cầu trả lời giao thức đến thỏa thuận với mất đi tin nhắn. Đây đòi hỏi cái đó mỗi thành
viên trả về một xác nhận hoặc trả lời. Phần mềm giao tiếp của khách hàng đối chiếu và lọc các câu trả lời này, trả về số lượng
câu trả lời mong muốn cho khách hàng.
Giao thức phải xử lý trường hợp khi có ít câu trả lời hơn số lượng được chỉ định, bằng cách truyền lại có chọn lọc các thông báo
yêu cầu hoặc bằng cách lặp lại yêu cầu phát đa hướng.

Chương 5 Giải bài tập


Q77. Giao diện Bầu cử cung cấp hai phương thức từ xa:
bỏ phiếu : với hai tham số mà qua đó khách hàng cung cấp tên của một ứng cử viên (một chuỗi) và 'số của cử tri' (một số nguyên
được sử dụng để đảm bảo mỗi người dùng chỉ bỏ phiếu một lần). Các con số của cử tri được phân bổ thưa thớt từ phạm vi số
nguyên để khiến chúng khó đoán.
kết quả : với hai tham số mà qua đó máy chủ cung cấp cho máy khách tên của một ứng cử viên và số phiếu bầu cho ứng cử viên
đó.
Tham số nào của hai thủ tục này là đầu vào và tham số nào là đầu ra ?
Ans.
phiếu bầu : các thông số đầu vào: tên ứng cử viên, mã số cử tri;
kết quả : các thông số đầu ra: tên ứng cử viên, số phiếu bầu

Q78. Thảo luận về ngữ nghĩa lời gọi có thể đạt được khi giao thức yêu cầu-trả lời được triển khai qua kết nối TCP/IP, đảm bảo
rằng dữ liệu được gửi theo thứ tự được gửi, không bị mất hoặc trùng lặp. Tính đến tất cả các điều kiện khiến kết nối bị hỏng.
Ans.
Một quá trình được thông báo rằng một kết nối bị hỏng:
• khi một trong các tiến trình thoát hoặc đóng kết nối.
• khi mạng bị tắc nghẽn hoặc bị lỗi hoàn toàn
Do đó , một quy trình máy khách không thể phân biệt giữa lỗi mạng và lỗi máy chủ.
Với điều kiện là kết nối tiếp tục tồn tại, không có thông báo nào bị mất, do đó, mọi yêu cầu sẽ nhận được phản hồi tương ứng,
trong trường hợp đó, khách hàng biết rằng phương thức đã được thực thi chính xác một lần.
Tuy nhiên, nếu các người phục vụ quá trình tai nạn, các khách hàng sẽ thì là ở nắm được tin tức cái đó các sự liên quan Là bị
hỏng và khách hàng sẽ biết cái đó các phương pháp là Thực thi một trong hai Một lần (nếu các người phục vụ bị rơi sau thực
hiện nó) hoặc không phải (nếu máy chủ gặp sự cố trước khi thực hiện nó ) .
Tuy nhiên, nếu mạng bị lỗi, máy khách cũng sẽ được thông báo rằng kết nối bị hỏng. Điều này có thể xảy ra trong quá trình
truyền thông báo yêu cầu hoặc trong quá trình truyền thông báo trả lời. Như trước đây, phương thức này được thực thi một lần
hoặc không.
Do đó , chúng tôi có ngữ nghĩa cuộc gọi nhiều nhất một lần.

Distributed Systems, Edition 3: Chapter 7 solutions 2


Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q79. Định nghĩa các giao diện đến các Cuộc bầu cử Dịch vụ Trong CORBA IDL và Java RMI. Ghi chú cái đó CORBA IDL
cung cấp kiểu long cho số nguyên 32 bit . So sánh các phương thức trong hai ngôn ngữ để chỉ định đầu vào và đầu ra tranh luận.
Ans.
CORBA IDL:
giao diện Bầu cử {
bỏ phiếu trống ( trong tên chuỗi, trong số dài); void result(ra chuỗi tên, ra phiếu dài);
};
Java RMI
Chúng ta cần xác định một lớp cho kết quả, vd
lớp Kết quả {
chuỗi ; int phiếu bầu;
}
Giao diện là:
nhập java.rmi .* ;
giao diện công cộng Bầu cử mở rộng Từ xa{
bỏ phiếu trống ( Tên chuỗi, số int) ném RemoteException ; Kết quả kết quả () ném RemoteException ;
};

Ví dụ này cho thấy đặc điểm kỹ thuật của các đối số đầu vào là tương tự trong CORBA IDL và Java RMI.
Ví dụ này cho thấy rằng nếu một phương thức trả về nhiều hơn một kết quả, thì Java RMI sẽ kém thuận tiện hơn so với CORBA
IDL vì tất cả các đối số đầu ra phải được đóng gói cùng nhau trong một thể hiện của một lớp.

Q80. Dịch vụ Bầu cử phải đảm bảo rằng một cuộc bỏ phiếu được ghi lại bất cứ khi nào bất kỳ người dùng nào nghĩ rằng họ đã
bỏ phiếu.
Thảo luận về ảnh hưởng của ngữ nghĩa cuộc gọi có thể đối với dịch vụ Bầu cử .
Ngữ nghĩa cuộc gọi ít nhất một lần sẽ được chấp nhận cho dịch vụ Bầu cử hay bạn sẽ đề xuất ngữ nghĩa cuộc gọi nhiều nhất một
lần?
Ans.
Có lẽ ngữ nghĩa cuộc gọi rõ ràng là không đủ để bỏ phiếu ! Ví dụ 5.1 quy định rằng số của cử tri được sử dụng để đảm bảo cái
đó các người sử dụng chỉ có phiếu bầu Một lần. Đây có nghĩa cái đó các người phục vụ giữ một ghi lại của ai có bình chọn. Vì
vậy ngữ nghĩa ít nhất một lần là được, bởi vì mọi nỗ lực bỏ phiếu lặp đi lặp lại đều bị máy chủ hủy bỏ.

Q81. Một giao thức yêu cầu-trả lời được triển khai trên một dịch vụ liên lạc với các lỗi thiếu sót để cung cấp ngữ nghĩa gọi RMI
ít nhất một lần. Trong trường hợp đầu tiên, người triển khai giả định một hệ thống phân tán không đồng bộ. Trong trường hợp
thứ hai, người thực hiện giả định rằng thời gian tối đa vì các liên lạc và các chấp hành của một Xa xôi phương pháp Là t. Trong
Gì đường làm các giả định sau đơn giản hóa việc thực hiện?
Ans.
Trong các Đầu tiên trường hợp, các người thực hiện giả định cái đó nếu các khách hàng quan sát một bỏ sót thất bại nó không
thể kể cho dù nó Là quá hạn đến sự mất mát của các lời yêu cầu hoặc Đáp lại thông điệp, đến các người phục vụ đang có bị rơi
hoặc đang có Lấy lâu hơn hơn bình thường. Do đó , khi yêu cầu được truyền lại, máy khách có thể nhận được phản hồi muộn đối
với yêu cầu ban đầu. Việc thực hiện phải đối phó với điều này.
Trong trường hợp thứ hai, lỗi thiếu sót do máy khách quan sát không thể do máy chủ mất quá nhiều thời gian. Do đó , khi yêu
cầu được truyền lại sau thời gian T, chắc chắn rằng phản hồi muộn sẽ không đến từ máy chủ. Không cần phải đối phó với trả lời
muộn

Distributed Systems, Edition 3: Chapter 7 solutions 3


Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q82. Phác thảo cách triển khai cho dịch vụ Bầu cử để đảm bảo rằng hồ sơ của nó vẫn nhất quán khi được nhiều khách hàng truy
cập đồng thời.
Ans.
Giả sử cái đó mỗi bỏ phiếu Trong các hình thức { Chuỗi bỏ phiếu , int số } Là nối thêm đến một dữ liệu kết cấu như là như
một Java
Vectơ . Trước đây Là xong, các cử tri con số Trong các lời yêu cầu thông điệp phải thì là ở đã kiểm tra chống lại mọi bỏ
phiếu
được ghi trong Vector . Lưu ý rằng một mảng được lập chỉ mục theo số của cử tri không phải là một triển khai thực tế vì các số
được phân bổ thưa thớt.
Các hoạt động truy cập và cập nhật Vector được đồng bộ hóa, giúp truy cập đồng thời an toàn.
Ngoài ra, hãy sử dụng bất kỳ hình thức đồng bộ hóa nào để đảm bảo rằng các hoạt động cập nhật và truy cập của nhiều máy
khách không xung đột với nhau.

Q83. Dịch vụ bầu cử phải đảm bảo rằng tất cả phiếu bầu được lưu trữ an toàn ngay cả khi quá trình máy chủ gặp sự cố. Giải
thích làm thế nào điều này có thể đạt được bằng cách tham khảo phác thảo triển khai trong câu trả lời của bạn cho Bài tập 5.6.
Ans.
Trạng thái của máy chủ phải được ghi lại trong bộ lưu trữ liên tục để có thể phục hồi khi khởi động lại máy chủ . Điều cần thiết
là mọi phiếu bầu thành công đều được ghi lại trong bộ lưu trữ liên tục trước khi yêu cầu của khách hàng được xác nhận.
Một phương pháp đơn giản là tuần tự hóa Vector phiếu bầu vào một tệp sau mỗi lần bỏ phiếu. Một phương pháp hiệu quả hơn sẽ
thêm dần dần các phiếu bầu được đánh số tự động vào một tệp. Quá trình khôi phục sẽ bao gồm hủy tuần tự hóa tệp và tạo lại
một vectơ mới.
Trình diễn thế nào đến sử dụng Java sự phản xạ đến xây dựng các khách hàng Ủy quyền lớp vì các Cuộc bầu cử giao diện. đưa
cho thông tin chi tiết của các thực hiện của một của các phương pháp Trong đây lớp, cái mà Nên cuộc gọi các phương thức
doOperation với những điều sau đây Chữ ký:
byte [] doOperation ( RemoteObjectRef o, Method m, byte[ ] đối số);
Gợi ý: một biến thể hiện của lớp proxy nên chứa một tham chiếu đối tượng từ xa (xem Bài tập 4.12).
Ans.
Sử dụng các lớp Lớp và Phương thức . Sử dụng loại RemoteObjectRef như loại biến thể hiện. Lớp học có phương thức
getMethod có các đối số cung cấp tên lớp và một mảng các loại tham số. Phương thức bỏ phiếu của proxy , nên có các tham số
giống như bỏ phiếu trong giao diện từ xa - đó là: hai tham số kiểu String và int . Lấy đối tượng đại diện cho phương thức bỏ
phiếu từ lớp Bầu cử và chuyển nó làm đối số thứ hai của doOperation . Các hai tranh luận của bỏ phiếu là chuyển đổi đến một
mảng của byte và thông qua như các đối số thứ ba của doOperation .
nhập java.lang .reflect ; lớp VoteProxy {
RemoteObjectRef ref;
phương pháp tĩnh riêng voteMethod ; phương thức tĩnh riêng resultMethod ; tĩnh {
thử {
voteMethod = Election.class.getMethod ("bỏ phiếu", Lớp mới[]
{ java.lang .String.class,int.class }));
resultMethod = Election.class.getMethod ("kết quả", new Class[] {}));
} bắt ( NoSuchMethodException ){}
}

phiếu bầu công khai (Chuỗi arg1, int arg2) ném RemoteException { thử {
byte args [] = // chuyển đối số arg1 và arg2 thành mảng byte
kết quả byte = DoOperation ( ref, voteMethod , args ); trở về ;
} chụp lấy (...) {}
}

Q84. Chỉ ra cách tạo lớp proxy máy khách bằng ngôn ngữ như C++ không hỗ trợ phản chiếu, vì thí dụ từ các CORBA giao diện
Định nghĩa được Trong của bạn câu trả lời đến Tập thể dục 5.3. Cung cấp chi tiết về việc triển khai một trong các phương thức
trong lớp này, phương thức này sẽ gọi phương thức doOperation định nghĩa trong hình 4.12.
Ans.
Mỗi phương thức proxy được tạo từ chữ ký của phương thức trong giao diện IDL , ví dụ: .
bỏ phiếu trống ( trong tên chuỗi, trong số dài);
Distributed Systems, Edition 3: Chapter 7 solutions 4
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Một phương thức sơ khai tương đương trong ngôn ngữ máy khách, ví dụ: C++ được tạo ra, ví dụ:
bỏ phiếu vô hiệu ( const char *bỏ phiếu, số int)
Mỗi phương thức trong giao diện được cung cấp một số , ví dụ vote = 1, result = 2.
sử dụng char args [ độ dài của chuỗi + kích thước của int] và sắp xếp hai đối số vào mảng này và gọi doOperation
như sau:
char * result = DoOperation ( ref, 1, args );
chúng tôi vẫn cho rằng ref là một biến thể hiện của lớp proxy. Phương pháp sắp xếp thứ tự được tạo cho từng loại đối số được sử
dụng.

Q85. Giải thích cách sử dụng phản xạ Java để xây dựng một bộ điều phối chung. Cung cấp mã Java cho người điều phối có chữ
ký là:
công văn void ( Đối tượng mục tiêu, Phương thức aMethod , byte[] args )
Các đối số cung cấp đối tượng đích, phương thức được gọi và các đối số cho phương thức đó trong một mảng byte.
Ans.
Sử dụng Phương thức của lớp . Để gọi một phương thức , hãy cung cấp đối tượng được gọi và một mảng Đối tượng chứa các đối
số. Các đối số được cung cấp trong một mảng byte phải được chuyển đổi thành một mảng Object .
công văn void ( Đối tượng đích, Phương thức aMethod , byte[] args ) ném RemoteException {
Đối tượng [ ] đối số = // trích xuất đối số từ mảng byte
thử{
aMethod.invoke (mục tiêu, đối số); bắt (...){ }
}

Q86. Tập thể dục 5,8 yêu cầu các khách hàng đến đổi Sự vật tranh luận vào trong một mảng của byte trước gọi doOperation và
Bài tập 5.10 yêu cầu bộ điều phối chuyển đổi một mảng byte thành một mảng Object s trước khi gọi phương thức. Thảo luận về
việc triển khai phiên bản mới của doOperation với những điều sau đây Chữ ký:
Object [] doOperation ( RemoteObjectRef o, Method m, Object[ ] đối số);
cái mà sử dụng các Đối tượngĐầu raLuồng và ObjectInputStream các lớp học đến dòng các lời yêu cầu và trả lời tin nhắn giữa
máy khách và máy chủ qua kết nối TCP. Những thay đổi này sẽ ảnh hưởng đến thiết kế của bộ điều phối như thế nào?
Ans.
Phương thức DoOperation gửi lời gọi tới tham chiếu đối tượng từ xa của mục tiêu bằng cách thiết lập kết nối TCP (như trong
Hình 4.5 và 4.6) tới máy chủ và cổng được chỉ định trong ref . Nó mở một ObjectOutputStream và sử dụng writeObject đến
nguyên soái giới thiệu , các phương pháp, tôi và các tranh luận qua tuần tự hóa chúng thành một ObjectOutputStream . Để có kết
quả, nó sẽ mở một ObjectIntputStream và sử dụng readObject để lấy kết quả từ luồng.
Tại các người phục vụ chấm dứt, các điều phối Là được một sự liên quan đến các khách hàng và mở ra một ObjectIntputStream
và sử dụng readObject để có được các đối số được gửi bởi khách hàng. Chữ ký của nó sẽ thì là ở:
công khai void công văn ( Mục tiêu đối tượng, Phương thức aMethod )

Q87. Một khách hàng thực hiện các cuộc gọi thủ tục từ xa đến một máy chủ. Máy khách mất 5 mili giây để tính toán các đối số
vì mỗi lời yêu cầu, và các người phục vụ nhận 10 mili giây đến quá trình mỗi lời yêu cầu. Các thời gian xử lý của hệ điều hành
cục bộ cho mỗi thao tác gửi hoặc nhận là 0,5 mili giây và thời gian mạng để truyền từng thông báo yêu cầu hoặc trả lời là 3 mili
giây. Marshalling hoặc unmarshalling mất 0,5 mili giây cho mỗi tin nhắn.
Tính thời gian khách hàng thực hiện để tạo và trả về từ hai yêu cầu:
(i) nếu nó là một luồng, và
(ii) nếu nó có hai luồng có thể thực hiện đồng thời các yêu cầu trên một bộ xử lý.
Bạn có thể phớt lờ chuyển ngữ cảnh lần. Là ở đó một cần vì không đồng bộ RPC nếu khách hàng và quy trình máy chủ được
phân luồng?
Ans.
i) thời gian mỗi cuộc gọi = calc. args + đối số marshal + Thời gian gửi hệ điều hành + truyền tin nhắn + thời gian nhận hệ điều
hành + đối số unmarshall + thực thi thủ tục máy chủ
Distributed Systems, Edition 3: Chapter 7 solutions 5
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
+ kết quả soái ca + Thời gian gửi hệ điều hành + truyền tin nhắn + Thời gian nhận hệ điều hành + không theo thứ tự tranh luận
= 5 + 4*nguyên soái/ không nguyên soái + 4*hệ điều hành gửi/nhận + 2*truyền thông điệp + thực thi thủ tục máy chủ
= 5+ 4*0,5 + 4*0,5 + +2*3 + 10 mili giây = 5+2+2+6+10 =25 mili giây.
Thời gian cho hai cuộc gọi = 50 ms.
ii) cuộc gọi theo luồng:
khách hàng tính toán. args + marshal args + Thời gian gửi hệ điều hành (cuộc gọi 1) = 5+.5=.5 = 6 sau đó calc args + marshal
args + thời gian gửi hệ điều hành (cuộc gọi 2) = 6
= 12 ms sau đó đợi trả lời từ cuộc gọi đầu tiên
máy chủ nhận cuộc gọi đầu tiên sau
truyền tin nhắn + thời gian nhận hệ điều hành + không theo thứ tự đối số = 6+ 3+.5+.5
= 10 ms , mất 10+1 để thực thi, soái ca, gửi lúc 21 ms máy chủ nhận cuộc gọi thứ 2 trước cuộc gọi này, nhưng hoạt động trên
cuộc gọi sau 21 ms
10+1, gửi nó sau 32 ms kể từ khi khách hàng bắt đầu nhận được 3+1 = 4 ms sau tức là 36 ms
( truyền tin nhắn + thời gian nhận hệ điều hành + không theo thứ tự args ) sau Thời gian cho 2 cuộc gọi = 36 ms.

Q88. Thiết kế một bảng đối tượng từ xa có thể hỗ trợ thu gom rác phân tán cũng như dịch giữa địa phương và Xa xôi sự vật
người giới thiệu. Cho một thí dụ liên quan đến một số Xa xôi các đối tượng và proxy tại các trang web khác nhau để minh họa
việc sử dụng bảng. Hiển thị điều gì sẽ xảy ra khi một lời gọi tạo ra một proxy mới. Sau đó cho biết điều gì sẽ xảy ra khi một
trong các proxy không thể truy cập được.
Ans. .

tài liệu tham khảo địa tham chiếu từ xa người nắm giữ
phương

Bảng sẽ có ba cột chứa tham chiếu cục bộ và tham chiếu từ xa của một đối tượng từ xa và các máy ảo hiện có proxy cho đối
tượng từ xa đó. Sẽ có một hàng trong bảng cho từng đối tượng từ xa được xuất tại trang web và một hàng cho mỗi proxy được
giữ tại trang web.
Để minh họa việc sử dụng nó, giả sử rằng có 3 trang web với các đối tượng từ xa được xuất sau: S1: A1, A2, A3 S2: B1, B2;
S3: C1;
và rằng các đại diện cho A1 được giữ tại S2 và S3; một proxy cho B1 được giữ tại S3.
Khi đó các bảng chứa các thông tin sau: .

tại S1 tại S2 tại S3


địa Xa xôi người địa Xa xôi người địa Xa xôi người
phươn nắm phương nắm giữ phương nắm giữ
g giữ
a1 A1 S2, S3 b1 B1 S3 c1 C1
a2 A2 b2 B2 a1 A1proxy
a3 A3 a1 A1proxy b1 B1proxy
Hiện nay giả sử cái đó C1(tại S3) gọi một phương pháp Trong B1 gây ra nó đến trở về một tài liệu tham khảo đến B2. Các bàn
tại S2 thêm chủ sở hữu S3 vào mục nhập cho B2 và bảng tại S3 thêm mục nhập mới cho proxy của B2.
Giả sử rằng proxy cho A1 tại S3 không thể truy cập được. S3 gửi một tin nhắn đến S1 và người giữ S3 bị xóa khỏi A1. Proxy
cho A1 bị xóa khỏi bảng tại S3.

Q89. Một phiên bản đơn giản hơn của thuật toán thu gom rác phân tán được mô tả trong Phần 5.2.6 chỉ cần gọi thêmRef tại các
Địa điểm ở đâu một Xa xôi sự vật cuộc sống bất cứ khi nào một Ủy quyền Là tạo và loại bỏRef bất cứ khi nào một Ủy quyền Là
đã xóa. Đề cương tất cả các các khả thi các hiệu ứng của liên lạc và quá trình lỗi về thuật toán. Đề xuất cách khắc phục từng ảnh
hưởng này nhưng không sử dụng hợp đồng thuê.
Ans.
Thêm Tham chiếu thông điệp mất đi - các sở hữu Địa điểm không biết Về các của khách hàng Ủy quyền và có thể xóa bỏ các Xa
xôi đối tượng khi nó vẫn còn cần thiết. (Khách hàng không cho phép lỗi này).
Loại bỏRef thông báo bị mất - trang web sở hữu không biết đối tượng từ xa có ít người dùng hơn. Nó có thể tiếp tục giữ đối
tượng từ xa khi nó không còn cần thiết nữa.
Distributed Systems, Edition 3: Chapter 7 solutions 6
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Quá trình giữ proxy gặp sự cố - trang web sở hữu có thể tiếp tục giữ đối tượng từ xa khi không còn cần thiết.
Trang web sở hữu một đối tượng từ xa bị treo . Sẽ không ảnh hưởng đến thuật toán thu gom rác Mất addRef được thảo luận
trong Phần 5.2.6.
Khi một removeRef không thành công, khách hàng có thể lặp lại cuộc gọi cho đến khi nó thành công hoặc lỗi của chủ sở hữu đã
được phát hiện.
Một giải pháp cho sự cố chủ sở hữu proxy là các trang web sở hữu đặt bộ phát hiện lỗi trên các trang web đang nắm giữ và sau
đó xóa chủ sở hữu sau khi chúng được biết là đã bị lỗi.

Q90. Bàn luận thế nào đến sử dụng sự kiện và thông báo như mô tả Trong các Jini phân phối Sự kiện đặc điểm kỹ thuật trong
ngữ cảnh của ứng dụng bảng trắng được chia sẻ. sự kiện từ xa lớp được định nghĩa như sau trong Arnold et al . [1999].
lớp công khai RemoteEvent mở rộng java.util .EventObject { public RemoteEvent (Nguồn đối tượng, eventID dài ,
dài seqNum , MarshalledObject handback ) public Object getSource () {…}
getID dài công khai ( ) {…}
công khai long getSequenceNumber ( ) {…}
MarshalledObject công khai getRegistrationObject ( ) {…}
}
Các Đầu tiên tranh luận của các người xây dựng Là một Xa xôi sự vật. thông báo báo người nghe cái đó một sự kiện đã xảy ra
nhưng người nghe có trách nhiệm thu thập thêm thông tin chi tiết.
Ans.
sự kiện ,. evID s . Quyết định bởi EventGenerator . Giải pháp đơn giản nhất là chỉ có một loại sự kiện - việc bổ sung một
GraphicalObject mới . Ví dụ, các loại sự kiện khác có thể đề cập đến việc xóa một GraphicalObject .
Khách hàng cần được thông báo về tham chiếu đối tượng từ xa của mỗi GraphicalObject mới được thêm vào máy chủ. Giả sử
rằng một đối tượng trong máy chủ là EventGenerator . Nó có thể triển khai EventGenerator giao diện và cung cấp thao tác đăng
ký hoặc có thể được thực hiện đơn giản hơn
ví dụ: addListener ( Trình nghe RemoteEventListener , dài evID )
// thêm người nghe này vào một vector người nghe
Điều này sẽ tốt hơn nếu Hợp đồng thuê được sử dụng để tránh giao dịch với những khách hàng bị mất.
Hình dạng mới phương thức của shapeListServant (Hình 5.14) có thể là trình tạo sự kiện. Nó sẽ thông báo cho tất cả các
EventListener đã đăng ký với nó, mỗi khi một GraphicalObject mới được thêm vào. ví dụ
RemoteEvent = RemoteEvent mới ( cái này, ADD_EVENT, phiên bản, null)
cho tất cả người nghe trong vector
người nghe.notify (sự kiện)
Mỗi khách hàng tạo một RemoteEventListener để nhận thông báo về các sự kiện và sau đó đăng ký quan tâm đến các sự kiện với
máy chủ, chuyển EventListener như lập luận.
lớp MyListener triển khai RemoteEventListener { công cộng MyListener () ném RemoteException [
}

void void ( sự kiện RemoteEvent ) ném UnknownEventException , RemoteException {


Nguồn đối tượng = getSource ( ); id dài = event.getID ();
phiên bản dài = event.getSequenceNumber ();
// lấy GraphicalObject vừa tạo từ máy chủ
}
}
Sau đó, để trở thành một người nghe (thêm phần sau vào chương trình máy khách như trong Hình 5.15):
sList.addListener ( MyListener mới ( ), ADD_EVENT);
Máy khách nhận newGraphicalObject cần có khả năng lấy trực tiếp từ số phiên bản, thay vì lấy danh sách Hình dạng rồi lấy
GraphicalObject . Giao diện ShapeList có thể được sửa đổi để cho phép điều này.

Q91. Đề xuất thiết kế cho dịch vụ hộp thư thông báo nhằm lưu trữ thông báo thay mặt cho nhiều người đăng ký, cho phép người
đăng ký chỉ định khi nào họ yêu cầu gửi thông báo. Giải thích cách những người đăng ký không phải lúc nào cũng hoạt động có
thể sử dụng dịch vụ mà bạn mô tả. Làm sao sẽ các Dịch vụ thỏa thuận với thuê bao cái đó tai nạn trong khi họ có vận chuyển
quay trên?
Ans.
Distributed Systems, Edition 3: Chapter 7 solutions 7
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Các Hộp thư Dịch vụ sẽ cung cấp một giao diện cho phép một khách hàng đến Đăng ký quan tâm Trong nữa sự vật. Các khách
hàng sẽ cần biết RemoteEventListener được cung cấp bởi dịch vụ Hộp thư để thông báo có thể được chuyển từ Sự kiện máy phát
điện đến các Trình nghe sự kiện từ xa và sau đó trên đến các khách hàng. Các khách hàng sẽ cũng cần một phương tiện tương tác
với dịch vụ Hộp thư để bật và tắt chuyển phát. Do đó định nghĩa thanh ghi như sau:
Sổ đăng ký( ) ...
Kết quả là một tham chiếu đến một đối tượng từ xa mà các phương thức của nó cho phép máy khách nhận được một tham chiếu
đến một
Trình nghe sự kiện từ xa và để bật và tắt giao hàng.
Đến sử dụng các Hộp thư Dịch vụ, các khách hàng đăng ký với nó và nhận được một Sự đăng ký sự vật, cái mà nó tiết kiệm
trong một tập tin. Nó đăng ký các Trình nghe sự kiện từ xa cung cấp qua các Hộp thư Dịch vụ với tất cả các của các Máy phát
điện sự kiện có sự kiện mà nó muốn có thông báo. Nếu máy khách gặp sự cố, nó có thể khôi phục đối tượng Đăng ký khi khởi
động lại. Bất cứ khi nào nó muốn nhận các sự kiện , nó sẽ bật phân phối và khi không muốn, nó sẽ tắt phân phối.
Thiết kế nên có thể chỉ định hợp đồng thuê cho mỗi người đăng ký.

Q92. Giải thích cách sử dụng bộ quan sát chuyển tiếp để nâng cao độ tin cậy và hiệu suất của các đối tượng quan tâm trong dịch
vụ sự kiện.
Ans.
Độ tin cậy:
Người quan sát chuyển tiếp có thể thử lại các thông báo không thành công trong khoảng thời gian.
Nếu người quan sát chuyển tiếp ở trên cùng một máy tính với đối tượng quan tâm, thì cả hai không thể thất bại một cách độc lập.
Màn biểu diễn:
Người quan sát chuyển tiếp có thể tối ưu hóa các giao thức phát đa hướng cho người đăng ký. Ở Jini, nó có thể giải quyết việc
gia hạn hợp đồng thuê.

Q93. Hãy đề xuất những cách mà các bộ quan sát có thể được sử dụng để cải thiện độ tin cậy hoặc hiệu quả của lời giải Bài tập
5.13 của bạn.
Ans.
Máy chủ có thể không phải lưu thông tin về tất cả các mối quan tâm của khách hàng bằng cách tạo một đại lý chuyển tiếp trên
cùng một máy tính. tác nhân chuyển tiếp có thể sử dụng giao thức phát đa hướng để gửi thông báo cho khách hàng. IP multicast
sẽ làm được vì điều quan trọng là phải nhận được mọi thông báo. Số phiên bản bị thiếu có thể được sửa ngay khi nhận được số
khác.

Chương 6 Giải bài tập


Q94. Thảo luận về từng nhiệm vụ đóng gói, xử lý đồng thời, bảo vệ, phân giải tên, truyền thông các tham số và kết quả, và lập
lịch trình trong trường hợp dịch vụ tệp UNIX (hoặc của một hạt nhân khác quen thuộc với bạn).
Ans.
Chúng tôi thảo luận về trường hợp của một máy tính chạy Unix.
Đóng gói: một quy trình chỉ có thể truy cập dữ liệu và thuộc tính tệp thông qua giao diện cuộc gọi hệ thống.
Xử lý đồng thời: một số quy trình có thể truy cập đồng thời các tệp giống nhau hoặc khác nhau; một quá trình có thực hiện một
hệ thống cuộc gọi thực hiện Trong người giám sát cách thức Trong các nhân; quy trình đăng lại tất cả các liên quan đến hệ thống
tập tin dữ liệu, bao gồm cả bộ đệm khối.
Bảo vệ: người dùng đặt quyền truy cập bằng cách sử dụng người dùng/nhóm/người khác quen thuộc , rwx định dạng. Bảo vệ
không gian địa chỉ và bộ vi xử lý đặc quyền cài đặt là đã sử dụng đến hạn chế truy cập đến tập tin dữ liệu và tập tin hệ thống dữ
liệu Trong bộ nhớ và ngăn truy cập trực tiếp vào các thiết bị lưu trữ. Các quy trình mang định danh người dùng và nhóm trong
các bảng hạt nhân được bảo vệ, do đó vấn đề xác thực không phát sinh.
Tên nghị quyết: tên đường dẫn (vì thí dụ, / usr / fred ) là giải quyết qua đang nhìn lên mỗi thành phần Trong xoay. Mỗi thành
phần được tra cứu trong một thư mục, là một bảng chứa các thành phần tên đường dẫn và các nút tương ứng . Nếu inode là của
một thư mục thì cái này được lấy ra; và quá trình tiếp tục cho đến khi thành phần cuối cùng được giải quyết hoặc xảy ra lỗi. Các
trường hợp đặc biệt xảy ra khi gặp phải một liên kết tượng trưng hoặc điểm gắn kết.
Giao tiếp thông số và kết quả: thông số và kết quả có thể được giao tiếp bằng cách a) chuyển chúng vào thanh ghi máy, b) sao

Distributed Systems, Edition 3: Chapter 7 solutions 8


Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
chép chúng giữa không gian địa chỉ người dùng và nhân hoặc c) bằng cách ánh xạ dữ liệu khối đồng thời trong hai không gian
địa chỉ.
lập kế hoạch: ở đó là không tách rời tập tin hệ thống chủ đề; khi nào một người sử dụng quá trình làm cho một tập tin hệ thống
cuộc gọi, nó tiếp tục thực thi trong kernel.
NFS được thảo luận trong Phần 8.2.

Q95 . Tại sao một số giao diện hệ thống được triển khai bằng các lệnh gọi hệ thống chuyên dụng (đến kernel) và các giao diện
khác nằm trên các lệnh gọi hệ thống dựa trên thông báo?
Ans.
Các cuộc gọi hệ thống chuyên dụng hiệu quả hơn đối với các cuộc gọi đơn giản so với các cuộc gọi dựa trên tin nhắn (trong đó
một hệ thống hành động được bắt đầu bằng cách gửi một thông báo tới kernel, liên quan đến việc xây dựng thông báo, gửi đi,
v.v.).
Tuy nhiên, các thuận lợi của thực thi một hệ thống cuộc gọi như một RPC Là cái đó sau đó một quá trình có thể trình diễn hoạt
động minh bạch trên tài nguyên từ xa hoặc cục bộ.

Q96. Smith quyết định rằng mọi luồng trong quy trình của anh ấy phải có ngăn xếp được bảo vệ riêng – tất cả các vùng khác
trong quy trình sẽ được chia sẻ đầy đủ. Điều này có nghĩa không?
Ans.
Nếu mỗi luồng có ngăn xếp được bảo vệ riêng , thì mỗi luồng phải có không gian địa chỉ riêng. Ý tưởng của Smith được mô tả
tốt hơn là một tập hợp các quy trình đơn luồng, hầu hết các vùng của chúng được chia sẻ. Do đó, lợi thế của việc chia sẻ một
không gian địa chỉ đã bị mất.

Q97. Trình xử lý tín hiệu (ngắt phần mềm) nên thuộc về một quy trình hay một luồng?
Ans.
Khi một quá trình gặp tín hiệu, bất kỳ luồng hiện đang chạy nào sẽ xử lý tín hiệu đó hay một luồng được sắp xếp trước xử lý nó?
Và làm chủ đề có của chúng riêng những cái bàn của dấu hiệu xử lý? Ở đó Là không 'Chính xác' câu trả lời đến những câu hỏi
này. Ví dụ: có thể thuận tiện cho các luồng trong một quy trình sử dụng trình xử lý tín hiệu SIGALARM của riêng chúng. Mặt
khác, một quy trình chỉ cần một trình xử lý SIGINT.

Q98. Thảo luận về vấn đề đặt tên áp dụng cho các vùng bộ nhớ dùng chung.

Ans.
Vùng bộ nhớ có thể được đặt tên văn bản. Sau đó, hai hoặc nhiều quy trình có thể chia sẻ một vùng bằng cách cung cấp tên của
nó và yêu cầu nó được ánh xạ vào không gian địa chỉ của chúng. Các tệp được ánh xạ là các ví dụ về ý tưởng này, trong đó nội
dung của vùng chia sẻ được duy trì trên kho lưu trữ liên tục.
Vấn đề đặt tên thứ hai là các địa chỉ được sử dụng để truy cập vào một khu vực được chia sẻ. Về nguyên tắc, một vùng được chia
sẻ có thể được ánh xạ dưới dạng các dải địa chỉ khác nhau trong các quy trình khác nhau. Tuy nhiên, sẽ thuận tiện hơn nếu cùng
một phạm vi địa chỉ được sử dụng, vì vùng sau đó có thể chứa các con trỏ vào chính nó mà không cần dịch. Thật không may,
trong trường hợp không có quản lý không gian địa chỉ toàn cầu, một số địa chỉ thuộc về một khu vực cụ thể có thể đã được sử
dụng trong một số quy trình.

Q99. Đề xuất sơ đồ cân bằng tải trên một nhóm máy tính. Bạn nên thảo luận:
i) những yêu cầu của người dùng hoặc hệ thống được đáp ứng bởi sơ đồ như vậy;
ii) loại ứng dụng nào;
iii) làm thế nào để đo tải và với độ chính xác nào; và
iv) cách giám sát tải và chọn vị trí cho quy trình mới. Giả sử rằng các quy trình có thể không được di chuyển.
Distributed Systems, Edition 3: Chapter 7 solutions 9
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Thiết kế của bạn sẽ bị ảnh hưởng như thế nào nếu các quy trình có thể được di chuyển giữa các máy tính? Bạn có mong đợi quá
trình di chuyển có chi phí đáng kể không?
Ans.
Các nhận xét ngắn gọn sau đây được đưa ra theo cách gợi ý và không nhằm mục đích toàn diện:
i) Ví dụ về các yêu cầu mà một triển khai có thể hoặc không thể được thiết kế để đáp ứng: thời gian phản hồi tương tác tốt bất
chấp mức tải; quay vòng nhanh chóng các công việc chuyên sâu về tính toán; lập lịch trình đồng thời của một tập hợp các công
việc thuộc một ứng dụng song song; giới hạn chênh lệch tải giữa máy tính ít tải nhất và nhiều tải nhất; các công việc có thể được
chạy trên các máy trạm nhàn rỗi hoặc ít được sử dụng; thông lượng cao, về số lượng công việc chạy mỗi giây; thứ tự ưu tiên của
công việc.
ii) Sơ đồ cân bằng tải nên được thiết kế theo hồ sơ công việc. Ví dụ, hành vi công việc (tổng thời gian thực hiện, yêu cầu tài
nguyên) có thể được biết trước hoặc chưa biết; các công việc có thể tương tác điển hình hoặc thường sử dụng nhiều máy tính
hoặc kết hợp cả hai; công việc có thể là một phần của các chương trình song song đơn lẻ. Tổng thời gian chạy của chúng trung
bình có thể là một giây hoặc mười phút. Hiệu quả của cân bằng tải là nghi ngờ vì rất nhẹ việc làm; vì ngắn công việc, các hệ
thống chi phí chung vì một tổ hợp thuật toán có thể lớn hơn những lợi thế.
iii) Một giản dị và hiệu quả đường đến đo lường một máy tính trọng tải Là đến tìm thấy các chiều dài của nó là chạy xếp hàng.
Đo tải bằng cách sử dụng một tập hợp thô các danh mục như NHẸ và NẶNG thường là đủ, do chi phí thu thập thông tin chi tiết
hơn và xu hướng tải thay đổi trong thời gian ngắn.
iv) Một cách tiếp cận hữu ích là dành cho các máy tính có tải NHẸ để quảng cáo thực tế này cho những máy tính khác, để các
công việc mới được bắt đầu trên các máy tính này.
Tại vì của không thể đoán trước Công việc chạy lần, không tí nào thuật toán có thể chỉ huy đến không cân bằng máy tính, với
một khan hiếm tạm thời của Mới việc làm đến nơi trên các NHẸ máy vi tính. Nếu quá trình di cư Là có sẵn, tuy nhiên, sau đó
việc làm có thể là di dời từ NẶNG máy vi tính đến NHẸ máy vi tính tại như là lần. Các chính Giá cả của quá trình di chuyển là
chuyển giao không gian địa chỉ, mặc dù vẫn tồn tại các kỹ thuật để giảm thiểu điều này [Kindberg 1990]. Có thể mất vài giây để
di chuyển một quy trình và thời gian này phải ngắn so với thời gian chạy còn lại của các quy trình liên quan.

Q100. Giải thích lợi ích của việc sao chép vùng copy-on-write cho UNIX, trong đó lệnh gọi fork thường được theo sau bởi lệnh
gọi exec . Điều gì sẽ xảy ra nếu một vùng đã được sao chép bằng tính năng sao chép khi ghi lại được sao chép?
Ans.
Nó sẽ thì là ở lãng phí đến sao chép các ngã ba quy trình địa chỉ không gian nội dung, từ họ là ngay lập tức thay thế. Với copy-
on-write, chỉ một vài trang thực sự cần thiết trước khi gọi exec sẽ được sao chép.
Bây giờ giả sử rằng exec không được gọi. Khi một quá trình rẽ nhánh, con của nó có thể lần lượt rẽ nhánh một đứa trẻ. Gọi đây
là cha mẹ, con và cháu. Các trang trong cháu được sao chép một cách hợp lý từ đứa trẻ, các trang của chúng lần lượt được sao
chép một cách hợp lý từ cha mẹ. Ban đầu, các trang của cháu có thể chia sẻ một khung với trang của cha mẹ. Nếu, Nói, các đứa
trẻ sửa đổi một trang, tuy nhiên, sau đó các cháu của trang phải thì là ở thực hiện đến đăng lại các khung của đứa trẻ. Một đường
phải thì là ở tìm đến quản lý xiềng xích của trang phụ thuộc, cái mà có đến thì là ở thay đổi khi nào các trang được sửa đổi.
Một tập tin người phục vụ sử dụng bộ nhớ đệm, và đạt được một đánh tỷ lệ của 80%. Tập tin hoạt động Trong các người phục vụ
Giá cả 5 bệnh đa xơ cứng của CPU thời gian khi các người phục vụ tìm thấy các yêu cầu khối Trong các bộ đệm, và cầm lấy một
thêm vào 15 bệnh đa xơ cứng của đĩa vào/ra thời gian nếu không thì.

Q101. giải thích không tí nào giả định bạn làm, ước tính các may chủ thông lượng dung tích (trung bình yêu cầu/giây) nếu nó
Là:
i) đơn luồng;
ii) hai luồng, chạy trên một bộ xử lý;
iii) hai luồng, chạy trên máy tính hai bộ xử lý.
Ans.
80% truy cập tốn 5 ms ; 20% truy cập có giá 20 ms. thời gian yêu cầu trung bình là 0,8*5+.2*20 = 4+4=8ms.
i) đơn luồng: tốc độ là 1000/8 = 125 yêu cầu / giây
ii) hai luồng: phục vụ 4 lưu vào bộ nhớ cache và 1 không được lưu trong bộ nhớ cache yêu cầu nhận 25 bệnh đa xơ cứng.
( trùng lặp vào/ra với tính toán).
Do đó , thông lượng trở thành 1 yêu cầu trong 5 ms. trung bình, = 200 yêu cầu / giây
Distributed Systems, Edition 3: Chapter 7 solutions 1
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
iii) hai luồng, 2 CPU: Bộ xử lý có thể phục vụ 2 rqst trong 5 ms => 400 yêu cầu /giây. Nhưng đĩa có thể phục vụ 20% yêu cầu tại
chỉ có 1000/15 yêu cầu / giây (giả định đĩa yêu cầu nối tiếp ). Đây ngụ ý một toàn bộ tỷ lệ của 5*1000/15 = 333 yêu cầu/giây (mà
hai CPU có thể phục vụ).

Q102. So sánh kiến trúc đa luồng của worker pool với kiến trúc luồng cho mỗi yêu cầu.
Ans.
Các người làm việc hồ bơi ngành kiến trúc tiết kiệm trên chủ đề sự sáng tạo và sự phá hủy chi phí so đến các kiến trúc luồng cho
mỗi yêu cầu nhưng (a) nhóm có thể chứa quá ít luồng để tối đa hóa hiệu suất trong điều kiện khối lượng công việc cao hoặc quá
nhiều luồng cho các mục đích thực tế và (b) các luồng tranh giành hàng đợi công việc được chia sẻ.
103. Hoạt động luồng nào có chi phí đáng kể nhất?
Ans.
Chủ đề chuyển mạch xu hướng đến xảy ra nhiều lần Trong các cả đời của chủ đề và Là vì thế các phần lớn có ý nghĩa Giá cả.
Tiếp theo đến chủ đề sáng tạo/hủy diệt hoạt động, cái mà xảy ra thường Trong năng động xâu chuỗi kiến trúc (chẳng hạn như
kiến trúc thread-per-request).

Q104. Khóa quay (xem Bacon [1998]) là một biến boolean được truy cập thông qua hướng dẫn kiểm tra và thiết lập nguyên tử ,
trong đó được sử dụng để loại trừ lẫn nhau. Bạn có sử dụng khóa quay để loại trừ lẫn nhau giữa các luồng trên máy tính có một
bộ xử lý không?
Ans.
Vấn đề có thể phát sinh là tình huống trong đó một luồng quay trên khóa sử dụng hết timelice của nó , trong khi đó, luồng sắp
giải phóng khóa nằm ở chế độ chờ trên hàng đợi SẴN SÀNG. Chúng ta có thể cố gắng tránh vấn đề này qua tích hợp Khóa ban
quản lý với các lập kế hoạch cơ chế, nhưng nó Là nghi ngờ cho dù đây sẽ có bất kỳ lợi thế nào so với cơ chế loại trừ lẫn nhau mà
không cần chờ bận.
Q105. Giải thích những gì hạt nhân phải cung cấp cho việc triển khai các luồng ở cấp độ người dùng, chẳng hạn như Java trên
UNIX.
Ans.
Một luồng thực hiện cuộc gọi hệ thống chặn không tạo cơ hội cho bộ lập lịch trình cấp người dùng can thiệp và vì thế tất cả các
chủ đề trở thành bị chặn thậm chí Tuy nhiên một số có thể thì là ở Trong các SẴN SÀNG tiểu bang. Một cấp độ người dùng yêu
cầu thực hiện (một) không chặn (không đồng bộ) vào/ra hoạt động cung cấp qua các nhân, cái đó chỉ có bắt đầu vào/ra; và (b)
một cách xác định khi I/O đã hoàn thành -- ví dụ, lệnh gọi hệ thống chọn UNIX . Người lập trình luồng không nên sử dụng các
lệnh gọi hệ thống chặn riêng mà gọi trong API luồng để thực hiện lệnh gọi không đồng bộ và sau đó gọi bộ lập lịch.

Q106. Các lỗi trang có gây ra sự cố đối với việc triển khai chuỗi cấp độ người dùng không?
Ans.
Nếu một quá trình triển khai luồng cấp người dùng gặp lỗi trang, thì theo mặc định, hạt nhân sẽ hủy lịch trình các toàn bộ quá
trình. Trong nguyên tắc, các nhân có thể thay vì phát ra một phần mềm ngắt Trong các xử lý, thông báo cho nó về lỗi trang và
cho phép nó lên lịch cho một luồng khác trong khi trang được tìm nạp.

Q107. Giải thích các các nhân tố cái đó động viên các hỗn hợp lập kế hoạch cách tiếp cận của các 'Người lập kế hoạch kích hoạt'
thiết kế (thay vì lập lịch trình cấp độ người dùng hoặc cấp độ nhân thuần túy).
Ans.
Lược đồ lập lịch kết hợp kết hợp các ưu điểm của lập lịch ở cấp độ người dùng với mức độ kiểm soát phân bổ bộ xử lý xuất phát
từ việc triển khai cấp nhân. Lập lịch trình tùy chỉnh, hiệu quả diễn ra bên trong các quy trình nhưng việc phân bổ bộ xử lý của bộ
xử lý đa bộ xử lý cho các quy trình có thể được kiểm soát trên toàn cầu.

Q108. Tại sao Nên một chủ đề bưu kiện thì là ở quan tâm đến Trong các sự kiện của một chủ đề của trở thành bị chặn hoặc bỏ
chặn? Tại sao nó nên quan tâm đến trường hợp quyền ưu tiên sắp xảy ra của bộ xử lý ảo? (Gợi ý: các bộ xử lý ảo khác có thể tiếp
tục được phân bổ.)

Ans.
Nếu một luồng bị chặn, bộ lập lịch cấp người dùng có thể có một luồng SẴN SÀNG để lên lịch. Nếu một luồng không bị chặn,
nó có thể trở thành luồng có mức độ ưu tiên cao nhất và do đó sẽ được chạy.
Nếu một bộ xử lý ảo được ưu tiên sử dụng, thì bộ lập lịch trình cấp người dùng có thể chỉ định lại các luồng cấp độ người dùng
Distributed Systems, Edition 3: Chapter 7 solutions 1
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
cho các bộ xử lý ảo để các luồng có mức độ ưu tiên cao nhất sẽ tiếp tục chạy.

Q109. Mạng truyền tải thời gian tài khoản vì 20% của một vô giá trị RPC và 80% của một RPC cái đó truyền 1024 người sử
dụng byte (nhỏ hơn kích thước của gói mạng). Bao nhiêu phần trăm thời gian cho hai hoạt động này sẽ cải thiện nếu mạng được
nâng cấp từ 10 megabit/giây lên 100 megabit/giây?
Ans.
T null = null Thời gian RPC = f + w null , trong đó f = chi phí hệ điều hành cố định, w null = thời gian trên dây ở tốc độ 10
megabit/giây. Tương tự, T 1024 = thời gian để RPC truyền 1024 byte = f + w 1024 .
Đặt T' null và T' 1024 là các số liệu tương ứng với tốc độ 100 megabit trên giây. Khi đó T' null = f + 0,1w null và T' 1024 = f + 0,1w
1024 .
Phần trăm thay đổi đối với RPC null = 100(T null - T' null )/T null = 100*0,9w null /T null = 90*0,2 = 18%. Tương tự, phần trăm
thay đổi cho RPC 1024 byte = 100*0,9*0,8 = 72%.
Một 'vô giá trị' RMI cái đó nhận không thông số, cuộc gọi một trống rỗng thủ tục và lợi nhuận không giá trị sự chậm trễ các
người gọi vì 2,0 mili giây. Giải thích những gì đóng góp cho thời gian này.

Q110. Trong các tương tự RMI hệ thống, mỗi 1K của người sử dụng dữ liệu thêm một thêm 1,5 mili giây. Một khách hàng mong
muốn đến tìm về 32k dữ liệu từ một máy chủ tập tin. Nó nên sử dụng một 32K RMI hay 32 1K RMI?
Ans.
Trang 236 trình bày chi tiết các chi phí tạo nên sự chậm trễ của một RMI rỗng. một 32K RMI: tổng độ trễ là 2 + 32*1,5 = 50 ms.
32 1K RMI: tổng độ trễ là 32(2+1,5) = 112 ms -- một RMI rẻ hơn nhiều.

Q111. Những yếu tố nào được xác định trong chi phí của một lệnh gọi từ xa cũng có trong việc truyền tin nhắn?
Ans.
Hầu hết các chi phí gọi từ xa cũng có tính năng truyền tin nhắn. Tuy nhiên, nếu người gửi sử dụng truyền tin nhắn không đồng
bộ thì nó không bị trì hoãn do lập lịch, sao chép dữ liệu tại người nhận hoặc chờ xác nhận

Q112. Giải thích cách một vùng dùng chung có thể được sử dụng cho một quá trình đọc dữ liệu được ghi bởi nhân. Bao gồm
trong phần giải thích của bạn những gì cần thiết để đồng bộ hóa.
Ans.
Vùng dùng chung được ánh xạ ở chế độ chỉ đọc vào không gian địa chỉ của quy trình, nhưng nhân có thể ghi được . Quy trình
đọc dữ liệu từ vùng bằng cách sử dụng các lệnh LOAD tiêu chuẩn (tránh TRAP). Thỉnh thoảng, quá trình có thể thăm dò dữ liệu
trong khu vực để xem liệu nó có thay đổi hay không. Tuy nhiên, chúng tôi có thể yêu cầu một cách để nhân thông báo cho tiến
trình khi nó đã ghi dữ liệu mới. Một ngắt phần mềm có thể được sử dụng cho mục đích này.
i ) Máy chủ có thể được gọi bằng các lệnh gọi thủ tục nhẹ có thể kiểm soát mức độ đồng thời bên trong nó không?
ii) Giải thích tại sao và thế nào một khách hàng Là ngăn cản từ kêu gọi Bất kỳ mã số ở trong một người phục vụ Dưới RPC nhẹ.
iii) LRPC có khiến máy khách và máy chủ gặp rủi ro can thiệp lẫn nhau cao hơn so với RPC thông thường (do chia sẻ bộ nhớ)
không?

Q 113. LRPC có khiến máy khách và máy chủ gặp rủi ro can thiệp lẫn nhau cao hơn so với RPC thông thường (do chia sẻ bộ nhớ)
không?
Ans.
i) Mặc dù một máy chủ sử dụng LRPC không tạo và quản lý các luồng một cách rõ ràng, nhưng nó có thể kiểm soát mức độ
đồng thời bên trong nó bằng cách sử dụng các semaphores trong các hoạt động mà nó xuất.
ii) Một khách hàng phải không phải thì là ở cho phép đến cuộc gọi Bất kỳ mã số ở trong các người phục vụ, từ nó có thể tham
nhũng các may chủ dữ liệu. Hạt nhân đảm bảo rằng chỉ các thủ tục hợp lệ mới được gọi khi nó làm trung gian cuộc gọi lên của
luồng vào máy chủ, như đã giải thích trong Phần 6.5.
iii) Về nguyên tắc, một luồng máy khách có thể sửa đổi các đối số của cuộc gọi trên ngăn xếp A, trong khi một luồng khác của
máy khách, thực thi bên trong máy chủ, đọc các đối số này. Do đó, các luồng trong máy chủ nên sao chép tất cả các đối số vào
một vùng riêng tư trước khi cố gắng xác thực và sử dụng chúng. Mặt khác, dữ liệu của máy chủ được bảo vệ hoàn toàn bởi cơ
chế gọi LRPC.
Distributed Systems, Edition 3: Chapter 7 solutions 1
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Một khách hàng tạo RMI cho một máy chủ. Máy khách mất 5 mili giây để tính toán các đối số cho từng yêu cầu và máy chủ
nhận 10ms đến quá trình mỗi lời yêu cầu. Các địa phương hệ điều hành Chế biến thời gian vì mỗi gửi hoặc nhận hoạt động Là
0,5 cô , và các mạng thời gian đến chuyển giao mỗi lời yêu cầu hoặc Đáp lại thông điệp Là 3 bệnh đa xơ cứng. soái ca hoặc sắp
xếp lại mất 0,5 ms cho mỗi tin nhắn.

Q114. Ước tính thời gian mà máy khách cần để tạo và trả về từ 2 yêu cầu ( i ) nếu nó là một luồng và (ii) nếu nó có hai luồng có
thể thực hiện đồng thời các yêu cầu trên một bộ xử lý. Có cần RMI không đồng bộ nếu các quy trình đa luồng không?
Ans.
(i) Thời gian đơn luồng: 2(5 (chuẩn bị) + 4(0,5 (marsh/ unmarsh ) + 0,5 (hệ điều hành cục bộ)) + 2*3 (net)) + 10 (serv))
= 50 ms.
(ii) Thời gian hai luồng: (xem hình 6.14) do chồng chéo, tổng thời gian là thời gian để thông báo yêu cầu của thao tác đầu tiên
đến máy chủ, để máy chủ thực hiện tất cả quá trình xử lý cả thông báo yêu cầu và trả lời mà không bị gián đoạn, và để tin nhắn
trả lời của thao tác thứ hai đến được máy khách.
Đây là: 5 + (0,5+0,5+3) + (0,5+0,5+10+0,5+0,5) + (0,5+0,5+10+0,5+0,5) + (3 + 0,5+0,5)
= 37ms.

Q115. Giải thích chính sách bảo mật là gì và các cơ chế tương ứng trong trường hợp hệ điều hành nhiều người dùng như UNIX.
Ans.
Cơ chế: xem câu trả lời cho 6.1.
Chính sách liên quan đến việc áp dụng các cơ chế này bởi một người dùng cụ thể hoặc trong một môi trường làm việc cụ thể. Ví
dụ: quyền truy cập mặc định trên các tệp mới có thể thì là ở " rw -------------------------------------------------" trong trường hợp
một
môi trường trong đó bảo mật là ưu tiên hàng đầu và " rw -r--r--" là nơi khuyến khích chia sẻ.

Q116. Giải thích các yêu cầu liên kết chương trình phải được đáp ứng nếu máy chủ được tải động vào không gian địa chỉ của hạt
nhân và những yêu cầu này khác với trường hợp thực thi máy chủ ở cấp độ người dùng như thế nào.
Ans.
Các phần không gian địa chỉ của hạt nhân phải được phân bổ cho mã và dữ liệu mới. Các ký hiệu trong mã mới và dữ liệu phải
được phân giải thành các mục trong không gian địa chỉ của nhân. Ví dụ, nó sẽ sử dụng các chức năng xử lý thông báo của hạt
nhân.
Ngược lại, nếu máy chủ thực thi như một tiến trình riêng biệt thì nó sẽ chạy từ một địa chỉ tiêu chuẩn trong không gian địa chỉ
riêng của nó và, ngoài các tham chiếu đến các thư viện dùng chung, hình ảnh được liên kết của nó sẽ độc lập.

Q117. Làm thế nào một ngắt có thể được liên lạc với một máy chủ cấp người dùng?
Ans.
Trình xử lý ngắt tạo một thông báo và gửi nó, sử dụng một nguyên hàm không chặn đặc biệt, đến một cổng được xác định trước
mà máy chủ cấp người dùng sở hữu.

Trên một chắc chắn máy tính chúng tôi ước tính cái đó, bất kể của các hệ điều hành nó chạy, chủ đề lập kế hoạch chi phí khoảng
50 s, một vô giá trị thủ tục cuộc gọi 1 s, một định nghĩa bài văn công tắc đến các nhân 20 s và một miền chuyển tiếp 40
s. Đối với mỗi Mach và SPIN, hãy ước tính chi phí cho khách hàng khi gọi thủ tục null được tải động.

Theo mặc định, Mach chạy mã được tải động trong một không gian địa chỉ riêng. Vì vậy, gọi mã liên quan đến kiểm soát chuyển
khoản đến một chủ đề Trong một tách rời địa chỉ không gian. Đây liên quan đến bốn (định nghĩa bài văn công tắc + miền chuyển
đổi) đến và từ kernel cũng như hai lịch trình (luồng máy khách đến luồng máy chủ và luồng máy chủ đến luồng máy khách) --
ngoài thủ tục null.
Chi phí ước tính: 4(20 + 40) + 2*50 + 1 = 341 s
Trong SPIN, cuộc gọi liên quan đến hai (chuyển đổi ngữ cảnh + chuyển đổi miền) và không lập lịch trình luồng.
Ước lượng chi phí: 2(20 + 40) + 1 = 121 s.

Chương 7 Giải bài tập


Q118. Mô tả một số chính sách bảo mật vật lý trong tổ chức của bạn. Thể hiện chúng dưới dạng có thể thực hiện được
Distributed Systems, Edition 3: Chapter 7 solutions 1
Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
trong hệ thống khóa cửa vi tính hóa.
Ans.
Đối với Phòng Khoa học Máy tính QMW:
• nhân viên có quyền truy cập vào tất cả các khu vực của bộ ngoại trừ văn phòng của những người khác, vào mọi giờ;
• sinh viên của khoa có quyền truy cập vào các phòng thí nghiệm giảng dạy và lớp học mọi lúc trừ 0,00 đến 0,400 và các khu
vực khác của khoa, ngoại trừ văn phòng tư nhân, trong giờ hành chính;
• sinh viên của khác phòng ban đang lấy khóa học Trong Máy tính Khoa học có truy cập đến lớp học tại tất cả các thời gian và
đến các phòng thí nghiệm giảng dạy vào thời gian được chỉ định theo các khóa học đã thực hiện;
• khách được tiếp cận Văn phòng Sở trong giờ hành chính;
• một người giữ chìa khóa chính có quyền truy cập vào tất cả các văn phòng. Ghi chú:
– Quyền truy cập sẽ bị rút lại khi người dùng không còn là thành viên của nhân viên hoặc học sinh.
– Những thay đổi trong chính sách phải có hiệu lực ngay lập tức.

Q119. Mô tả một số cách mà email thông thường dễ bị nghe lén, giả mạo, giả mạo, phát lại, từ chối dịch vụ. Đề xuất các phương
pháp mà email có thể được bảo vệ chống lại từng hình thức tấn công này.
Ans.
Khả thi những điểm yếu vì một đặc trưng thư hệ thống với SMTP vận chuyển và khách hàng đón từ NHẠC POP hoặc IMAP
máy chủ thư trên mạng cục bộ:
Điểm yếu Các loại biện pháp tấn công
Người gửi không được xác thực. Giả mạo, phủ nhận Xác thực đầu cuối bằng chữ ký số ( ví dụ: sử dụng PGP)
Dịch vụ.
Nội dung tin nhắn không được xác thực. Giả mạo, giả mạo. Xác thực đầu cuối bằng chữ ký số
Nội dung tin nhắn rõ ràng. ( ví dụ: sử dụng PGP).
Vận chuyển và xóa từ máy chủ POP/IMAP Nghe trộm. Mã hóa đầu cuối ( ví dụ: sử dụng PGP). hóa trang. Xác
chỉ được xác thực bằng thông tin đăng nhập
bằng mật khẩu. thực Kerberos hoặc SSL của khách hàng.
Đồng hồ của người gửi không được đảm
bảo .

Hẹn hò sai của tin nhắn. Bao gồm chứng chỉ thời gian từ một thời gian đáng tin
cậy
Dịch vụ.

Q120. Ban đầu trao đổi của công cộng phím là dễ bị tổn thương đến các người trung gian tấn công. Mô tả như nhiều phòng thủ
chống lại nó như bạn có thể.
Ans.
1. Sử dụng một kênh riêng để phân phối các khóa ban đầu, chẳng hạn như CDROM được phân phối bằng tay hoặc bằng một số
phương pháp có thể thay thế lại khác.
2. Bao gồm Tên miền trong chứng chỉ và chỉ xử lý đúng địa chỉ IP tương ứng.
3. Nếu chứng chỉ được phân phối qua mạng, hãy xác thực chúng bằng 'dấu vân tay khóa' – một chuỗi ký tự được lấy từ khóa có
chức năng một chiều tiêu chuẩn - được phân phối bởi một kênh riêng biệt ( ví dụ: trên danh thiếp).

Q121. PGP được sử dụng rộng rãi để bảo mật thông tin liên lạc qua email. Mô tả các bước mà một cặp người dùng sử dụng PGP
phải cầm lấy trước họ có thể trao đổi e-mail tin nhắn với sự riêng tư và tính xác thực bảo lãnh. Có phạm vi nào để làm cho các
cuộc đàm phán sơ bộ trở nên vô hình đối với người dùng?
Ans.
PGP dựa trên một giao thức kết hợp giống như giao thức được mô tả ở trang 264 và 281. Mục đích sử dụng chính của nó là để
liên lạc qua email an toàn. Nó cung cấp chữ ký điện tử để xác thực mã hóa chuỗi thông điệp để bảo mật và toàn vẹn. Chữ ký
được tạo bằng thuật toán SHA-1 để tạo bản tóm tắt thông báo và RSA hoặc DSS để ký bằng khóa riêng của người gửi.
Tin nhắn được mã hóa (tùy chọn) bằng 3DES hoặc IDEA, sử dụng khóa phiên một lần do người gửi tạo, khóa này được mã hóa

Distributed Systems, Edition 3: Chapter 7 solutions 1


Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
bằng RSA với khóa chung của người nhận và được gửi cùng với tin nhắn.
PGP Là yêu cầu đến phát ra công cộng/riêng tư Chìa khóa cặp vì mỗi người sử dụng và các một lần phiên họp phím đã sử dụng
để mã hóa tin nhắn. Khóa công khai/riêng tư của người dùng nên được thay đổi theo thời gian. (Không có khóa nào được sử
dụng vô thời hạn trong một hệ thống bảo mật vì nguy cơ chúng có thể bị xâm phạm do vô tình tiết lộ hoặc do bị tấn công.) Để
đạt được sự luân phiên của các cặp khóa công khai/riêng tư, PGP phải tạo và lưu trữ nhiều khóa cặp và đặt cho mỗi cặp một
nhãn hoặc số nhận dạng .
Chìa khóa ban quản lý Là dựa trên trên một Chìa khóa vòng cầm qua mỗi người sử dụng và một thu thập của PGP Chìa khóa
may chủ có thể truy cập trên các Internet cái đó tổ chức chỉ có các công cộng phím của đăng ký PGP người dùng. Các Chìa khóa
vòng Là đơn giản một nắm giữ cơ sở dữ liệu nhỏ phím Trong dữ liệu cấu trúc cái đó là chắc chắn. Họ là bảo đảm sử dụng bí mật
Chìa khóa mã hóa với một đi qua cụm từ mà người dùng phải nhập để cho phép các ứng dụng truy cập các phím trong chuỗi
khóa.
Nếu PGP Là triệt để tích hợp vào trong một e-mail hoặc khác đăng kí các cần thiết hành động đến phát ra phím, truy cập các
Chìa khóa vòng và trình diễn ký kết và mã hóa trên e-mail tin nhắn có thể tất cả các thì là ở kích hoạt tự động. Các chỉ có người
sử dụng hoạt động yêu cầu Là các đầu vào của các đi qua cụm từ đến giải mã các móc khóa mục. Nếu người dùng là được trang
bị thẻ thông minh hoặc các khóa truy cập vật lý khác, cụm mật khẩu có thể được cung cấp từ thẻ.

Q122. Làm cách nào để gửi email đến danh sách 100 người nhận bằng cách sử dụng PGP hoặc một chương trình tương tự? Đề
xuất một sơ đồ đơn giản hơn và nhanh hơn khi danh sách được sử dụng thường xuyên.
Ans.
Các ý kiến của đây tập thể dục Là đến tương phản các cần vì PGP đến mã hóa các phiên họp Chìa khóa N lần (Một lần Trong
các khóa công khai của mỗi người dùng) với sơ đồ trong đó các thành viên của một nhóm sẽ chia sẻ một khóa phiên duy nhất.
Việc quản lý và gia hạn khóa chia sẻ có thể dễ dàng đạt được hơn nếu các thành viên trong danh sách gửi thư được đại diện là
thành viên của một nhóm phát đa hướng (trang 436 et tiếp theo .).

Q123. Việc triển khai thuật toán mã hóa đối xứng TEA được đưa ra trong Hình 7.8–7.10 không khả dụng giữa tất cả các kiến trúc
máy. Giải thích vì sao. Làm thế nào một thông báo được mã hóa bằng cách sử dụng triển khai TEA có thể được truyền đi để giải
mã nó một cách chính xác trên tất cả các kiến trúc khác?
Ans.
byte đặt hàng Là một vấn đề. Các thuật toán như trình bày giả định cái đó các 4 byte Trong một 32-bit từ là ra lệnh giống nhau ở
người gửi (bộ mã hóa ) và người nhận (bộ giải mã ). Để làm cho nó hoạt động với tất cả các kiến trúc, chúng tôi cần truyền thông
báo theo thứ tự byte tiêu chuẩn của mạng và sắp xếp lại thứ tự các byte cho phù hợp với kiến trúc cục bộ khi nhận.

t dọn xác thực giao thức với bí mật phím, giải thích tại sao các phiên bản sau của thông báo 5 không an toàn:
Một B: {N B }
K AB

Ans.
Các mục đích của thông điệp 5 Là vì Một đến thuyết phục b cái đó k AB Là mới. b sẽ thì là ở thuyết phục nếu nó biết cái đó Một
có K AB (tại vì nó sẽ biết cái đó Một không thể thì là ở đơn thuần chơi lại nghe được tin nhắn). Các đề nghị phiên bản tin nhắn 5
Là không phải chắc chắn tại vì Một sẽ không phải cần đến biết k AB Trong gọi món đến gửi nó, nó có thể thì là ở gởi qua sao
chép tin nhắn 4.

Distributed Systems, Edition 3: Chapter 7 solutions 1


Last updated: 8 August 2000 12:20 pm ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Chương 8 Giải bài tập
Q128. Tại sao không có thao tác mở hoặc đóng trong giao diện của dịch vụ tệp phẳng hoặc dịch vụ thư mục. Sự khác biệt giữa
hoạt động Tra cứu dịch vụ thư mục của chúng tôi và UNIX mở là gì?
Ans.
Tại vì cả hai dịch vụ là không quốc tịch. Các giao diện đến các bằng phẳng tập tin Dịch vụ Là được thiết kế đến làm mở không
cần thiết. Thao tác Tra cứu thực hiện tra cứu một cấp, trả về UFID tương ứng với một tên đơn giản nhất định trong một thư mục
đã chỉ định. Để tra cứu tên đường dẫn, phải sử dụng một chuỗi Tra cứu . Unix open nhận một tên đường dẫn và trả về một bộ mô
tả tệp cho tệp hoặc thư mục được đặt tên.

Q131. Tại sao UFID phải là duy nhất trên tất cả các hệ thống tệp có thể? Tính duy nhất của UFID được đảm bảo như thế nào?
Ans.
Tính duy nhất rất quan trọng vì các máy chủ có thể được gắn vào các mạng khác nhau cuối cùng có thể được kết nối, ví dụ qua
một kết nối mạng, hoặc tại vì một tập tin tập đoàn Là di chuyển từ một người phục vụ đến nữa. UFID có thể được tạo thành duy
nhất bằng cách bao gồm địa chỉ của máy chủ tạo ra chúng và đồng hồ logic được tăng lên bất cứ khi nào UFID được tạo. Lưu ý
rằng địa chỉ máy chủ được đưa vào chỉ vì tính duy nhất, không dành cho mục đích đánh địa chỉ (mặc dù sau đó địa chỉ này có thể
được sử dụng làm gợi ý cho vị trí của tệp).

Q132. Sun NFS đi chệch khỏi ngữ nghĩa cập nhật tệp một bản sao ở mức độ nào? xây dựng một kịch bản trong cái mà hai cấp độ
người dùng quy trình chia sẻ một tập tin sẽ vận hành chính xác Trong một Độc thân UNIX chủ nhà nhưng sẽ quan sát sự không
nhất quán khi chạy trong các máy chủ khác nhau.
Ans.
Sau thao tác ghi , dữ liệu tương ứng được lưu trong bộ nhớ cache trong máy khách không phải là dữ liệu thực hiện ghi không
hợp lệ (vì nó không phản ánh nội dung hiện tại của tệp trên máy chủ NFS), nhưng các máy khách khác sẽ không phát hiện ra sự
khác biệt và có thể sử dụng dữ liệu cũ trong khoảng thời gian tối đa 3 giây (thời gian mà các khối được lưu trong bộ nhớ cache
được coi là mới). Đối với thư mục, khoảng thời gian tương ứng là 30 giây nhưng hậu quả ít nghiêm trọng hơn do thao tác duy
nhất trên thư mục là chèn và xóa tên tệp.
Tình huống: bất kỳ chương trình nào phụ thuộc vào việc sử dụng dữ liệu tệp để đồng bộ hóa sẽ gặp sự cố. Ví dụ, chương trình
Một Séc và bộ hai ổ khóa Trong một bộ của Khóa chút ít lưu trữ tại các bắt đầu của một tập tin, bảo vệ hồ sơ ở trong các tập tin.
sau đó chương trình Một cập nhật các hai bị khóa Hồ sơ. Một thứ hai sau chương trình b đọc các khóa tương tự từ bộ đệm của
nó, tìm thấy chúng chưa được đặt, đặt chúng và cập nhật các bản ghi giống nhau. Các giá trị kết quả của hai bản ghi không được
xác định.

Q133. Sun NFS nhằm mục đích hỗ trợ các hệ thống phân tán không đồng nhất bằng cách cung cấp một hệ điều hành độc lập tập
tin Dịch vụ. Gì là các Chìa khóa quyết định cái đó các người thực hiện của một NFS máy chủ cho một hệ điều hành khác với
UNIX sẽ phải mất? Một hệ thống lưu trữ cơ bản phải tuân theo những ràng buộc nào để phù hợp cho việc triển khai các máy chủ
NFS?
Ans.
Giao diện hệ thống tệp ảo cung cấp giao diện độc lập với hệ điều hành cho UNIX và các hệ thống tệp khác. Các người thực hiện
của một NFS người phục vụ vì một phi Unix điều hành hệ thống phải quyết định trên một đại diện cho xử lý tập tin. 64 bit cuối
cùng của trình xử lý tệp phải xác định duy nhất một tệp trong hệ thống tệp. Biểu diễn Unix được xác định (như được hiển thị trên
trang ??) nhưng nó không được xác định cho các hệ điều hành khác. Nếu hệ điều hành không cung cấp phương tiện để xác định
các tệp dưới 64 bit, thì máy chủ sẽ phải tạo các mã định danh để đáp ứng tra cứu , tạo và mkdir hoạt động và duy trì một bảng
định danh đối với tên tệp.
Bất kỳ hệ thống lưu trữ nào được sử dụng để hỗ trợ máy chủ NFS phải cung cấp:
- truy cập cấp khối hiệu quả vào các tệp;
- thuộc tính tệp phải bao gồm dấu thời gian ghi để duy trì tính nhất quán của bộ nhớ cache của máy khách;
- các thuộc tính khác là mong muốn, chẳng hạn như bit nhận dạng chủ sở hữu và quyền truy cập.

Q134. Dữ liệu nào mà mô-đun máy khách NFS phải giữ thay mặt cho từng quy trình cấp người dùng?
Ans.
Distributed Systems, Edition 3: Chapter10Answers 1
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Một danh sách của mở các tập tin, với các tương ứng nút v con số. Các khách hàng mô-đun cũng có một nút v bàn với một mục
nhập cho mỗi tệp đang mở. Mỗi nút v giữ phần xử lý tệp cho tệp từ xa và con trỏ đọc-ghi hiện tại.
Q136. Giải thích tại sao giao diện RPC để triển khai sớm NFS có khả năng không an toàn. Lỗ hổng bảo mật đã bị đóng trong
NFS 3 bằng cách sử dụng mã hóa. Khóa mã hóa được giữ bí mật như thế nào? Tính bảo mật của khóa có đầy đủ không?
Ans.
Các người sử dụng Tôi vì các khách hàng quá trình là thông qua Trong các RPC đến các người phục vụ Trong không được mã
hóa hình thức. Không tí nào chương trình có thể mô phỏng mô-đun máy khách NFS và truyền các cuộc gọi RPC đến máy chủ
NFS với id người dùng của bất kỳ người dùng nào, do đó có được quyền truy cập trái phép vào tệp của họ. Mã hóa DES được sử
dụng trong NFS phiên bản 3. Khóa mã hóa được thiết lập tại thời điểm gắn kết . Do đó, giao thức gắn kết là một mục tiêu tiềm
năng cho một cuộc tấn công bảo mật. Bất kỳ máy trạm nào cũng có thể mô phỏng giao thức gắn kết và khi hệ thống tệp đích đã
được gắn kết, có thể mạo danh bất kỳ người dùng nào bằng cách sử dụng mã hóa đã thỏa thuận tại thời điểm gắn kết ..

Q137. Sau khi hết thời gian chờ của cuộc gọi RPC để truy cập tệp trên hệ thống tệp được gắn cứng, mô-đun máy khách NFS
không trả lại quyền kiểm soát cho quy trình cấp người dùng đã tạo ra cuộc gọi. Tại sao?
Ans.
Nhiều chương trình Unix (công cụ và ứng dụng) không được thiết kế để phát hiện và khôi phục các điều kiện lỗi biểu mẫu do
thao tác tệp trả về. Nó được coi là tốt hơn để tránh các điều kiện lỗi bất cứ khi nào có thể, thậm chí phải trả giá bằng việc tạm
dừng các chương trình vô thời hạn.

Q138. NFS Automounter giúp cải thiện hiệu suất và khả năng mở rộng của NFS như thế nào?
Ans.
Dịch vụ gắn kết NFS hoạt động vào thời điểm khởi động hệ thống hoặc thời gian đăng nhập của người dùng tại mỗi máy trạm,
gắn kết toàn bộ hệ thống tệp trong trường hợp chúng sẽ được sử dụng trong phiên đăng nhập. Điều này được cho là quá cồng
kềnh đối với một số ứng dụng và tạo ra một số lượng lớn các mục không sử dụng trong bảng gắn kết. Với hệ thống tập tin
Automounter cần không phải thì là ở gắn kết cho đến khi họ là truy cập. Đây giảm các kích thước của gắn kết những cái bàn (và
kể từ đây thời gian để tìm kiếm chúng). Cũng có thể đạt được một hình thức sao chép hệ thống tệp đơn giản cho các hệ thống tệp
chỉ đọc với Automounter, cho phép tải các truy cập vào các tệp hệ thống được sử dụng thường xuyên được chia sẻ giữa một số
máy chủ NFS.

Q139. Làm sao nhiều tra cứu cuộc gọi là cần thiết đến giải quyết một 5 phần tên đường dẫn (vì thí dụ, / usr /users/ jim /code/
xyz.c ) vì một tập tin cái đó Là lưu trữ trên một NFS người phục vụ? Gì Là các lý do vì biểu diễn các dịch từng bước?
Ans.
Năm tra cứu , một tra cứu cho mỗi phần của tên.
Dưới đây là một số lý do tại sao tên đường dẫn được tra cứu từng phần một, chỉ phần đầu tiên trong số những phần được liệt kê
được đề cập trong cuốn sách (trên trang 229):
i) tên đường dẫn có thể vượt qua các điểm gắn kết;
ii) tên đường dẫn có thể chứa các liên kết tượng trưng; iii) tên đường dẫn có thể chứa '..';
iv) cú pháp của tên đường dẫn có thể dành riêng cho khách hàng.
Trường hợp ( tôi ) đòi hỏi tài liệu tham khảo đến các khách hàng gắn kết những cái bàn, và một biến đổi Trong các người phục
vụ đến cái mà tiếp theo tra cứu là phái đi. Trường hợp (ii) không thể thì là ở xác định qua các khách hàng. Trường hợp (iii) đòi
hỏi một kiểm tra Trong các khách hàng chống lại 'gốc giả' của các khách hàng quá trình làm các lời yêu cầu đến làm chắc chắn
rồi cái đó các đường dẫn không đi ở trên các gốc giả. Trường hợp (iv) yêu cầu phân tích cú pháp tên tại máy khách (bản thân nó
không phải là thanh để tra cứu nhiều phần, vì tên được phân tích cú pháp có thể được chuyển đến máy chủ, nhưng giao thức
NFSD không cung cấp điều đó).

Q140. Điều kiện nào phải được đáp ứng bởi cấu hình của các bảng gắn kết tại các máy khách để đạt được tính minh bạch truy
cập trong hệ thống lưu trữ dựa trên NFS.
Ans.
Tất cả các khách hàng phải gắn kết các tương tự hệ thống tập tin, và các tên đã sử dụng vì họ phải thì là ở các tương tự tại tất cả
các khách hàng. Điều này sẽ đảm bảo rằng hệ thống tệp trông giống nhau từ tất cả các máy khách.

Q141. Làm sao làm AFS lợi điều khiển khi nào một mở hoặc gần hệ thống cuộc gọi giới thiệu đến một tập tin Trong các không
gian tệp được chia sẻ do khách hàng cấp?
Ans.
Distributed Systems, Edition 3: Chapter10Answers 1
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Nhân UNIX được sửa đổi để chặn các cuộc gọi đóng và mở cục bộ tham chiếu đến các tệp không cục bộ và chuyển chúng tới
quy trình Venus cục bộ.

Q142. So sánh ngữ nghĩa cập nhật của UNIX khi truy cập các tệp cục bộ với các tệp của NFS và AFS. Trong những trường hợp
nào khách hàng có thể nhận thức được sự khác biệt?
Ans.
UNIX: ngữ nghĩa cập nhật một bản nghiêm ngặt;
NFS:gần đúng với ngữ nghĩa cập nhật một bản sao với độ trễ (~3 giây) để đạt được tính nhất quán;
AFS: tính nhất quán chỉ đạt được khi đóng . Do đó, các bản cập nhật đồng thời ở các máy khách khác nhau sẽ dẫn đến các bản
cập nhật bị mất – máy khách cuối cùng đóng tệp sẽ thắng.
Xem giải pháp cho Bài tập 8.1 để biết tình huống trong đó có sự khác biệt giữa ngữ nghĩa cập nhật NFS và UNIX sẽ vấn đề. Các
Sự khác biệt giữa AFS và UNIX Là nhiều hơn có thể nhìn thấy. Mất đi cập nhật sẽ xảy ra bất cứ khi nào hai tiến trình tại các
máy khách khác nhau mở tệp để ghi đồng thời.

Q143. Làm cách nào để AFS xử lý rủi ro có thể bị mất thông báo gọi lại?
Ans.
Các cuộc gọi lại được Venus gia hạn trước khi mở nếu thời gian T đã trôi qua kể từ khi tệp được lưu vào bộ nhớ cache mà không
có liên lạc từ máy chủ. T là thứ tự của một vài phút.

Q144. Những tính năng nào của thiết kế AFS làm cho nó có khả năng mở rộng hơn NFS? Các giới hạn về khả năng mở rộng của
nó là gì, giả sử rằng các máy chủ có thể được thêm vào theo yêu cầu? Những phát triển gần đây cung cấp khả năng mở rộng lớn
hơn ?
Ans.
Tải lượng cuộc gọi RPC trên máy chủ AFS ít hơn nhiều so với máy chủ NFS cho cùng một khối lượng công việc máy khách.
Điều này đạt được qua các loại bỏ của tất cả các Xa xôi cuộc gọi ngoại trừ những thứ kia có liên quan với mở và gần hoạt động,
và việc sử dụng cơ chế gọi lại để duy trì tính nhất quán của bộ đệm máy khách (so với việc sử dụng của getattributes các cuộc
gọi của khách hàng trong NFS). Khả năng mở rộng của AFS bị giới hạn bởi hiệu suất của một máy chủ cái đó nắm giữ các
thường xuyên nhất truy cập tập tin âm lượng ( ví dụ các âm lượng có chứa / etc /passwd , / etc /hosts hoặc một số tệp hệ thống
tương tự). Vì các tệp đọc-ghi không thể được sao chép trong AFS nên không có cách nào để phân phối tải truy cập vào các tệp
được sử dụng thường xuyên.
Các thiết kế như xFS và Frangipani cung cấp khả năng mở rộng lớn hơn bằng cách tách các hoạt động quản lý và siêu dữ liệu
khỏi việc xử lý dữ liệu và chúng giảm lưu lượng mạng bằng cách định vị các tệp dựa trên các kiểu sử dụng.

Chương 9 Giải bài tập


Q145. Mô tả tên (bao gồm cả mã định danh) và thuộc tính được sử dụng trong dịch vụ tệp phân tán như NFS (xem Chương 8).
Ans.
Tên: phân cấp, tên tập tin văn bản; mã định danh cục bộ của tệp đang mở (bộ mô tả tệp); xử lý tập tin; hệ thống tập tin định danh;
inode con số; văn bản tên máy chủ; địa chỉ IP địa chỉ; Hải cảng con số; vật lý mạng địa chỉ; định danh người dùng và nhóm; số
khối đĩa; địa chỉ đĩa vật lý.
Thuộc tính: siêu dữ liệu tệp, bao gồm thông tin lưu trữ vật lý và thuộc tính tệp người dùng có thể nhìn thấy. Xem Phần 8.2 để
biết thêm thông tin về NFS.

Q146. Bàn luận các các vấn đề đưa lên qua các sử dụng của bí danh Trong một Tên Dịch vụ, và biểu thị thế nào, nếu tại tất cả
các, những điều này có thể được khắc phục.
Ans.
Thứ nhất, nếu các bí danh là riêng tư và không được xác định công khai, thì sẽ có nguy cơ hiểu lầm thông qua việc người dùng
đề cập đến một đối tượng sử dụng bí danh. Bí danh có thể đề cập đến một đối tượng (không chính xác) trong không gian tên của
người dùng khác.
Vấn đề thứ hai với các bí danh là chúng có thể đưa các chu kỳ vào biểu đồ đặt tên. Ví dụ, một tên
/người dùng/ fred có thể Trong nguyên tắc thì là ở thực hiện một bí danh vì /người dùng . Một người giải quyết sẽ có tiềm năng
đi xe đạp vô tận Trong cố gắng giải quyết tên này. Một giải pháp là đặt giới hạn về số lượng bí danh mà trình phân giải chuẩn bị
gặp phải khi nó phân giải một tên.
Distributed Systems, Edition 3: Chapter10Answers 1
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q147. Giải thích tại sao lặp đi lặp lại dẫn đường Là cần thiết Trong một Tên Dịch vụ Trong cái mà khác nhau Tên không gian
được tích hợp một phần, chẳng hạn như sơ đồ đặt tên tệp do NFS cung cấp.
Ans.
Lý do tại sao điều hướng lặp đi lặp lại là cần thiết là khi khách hàng gặp một liên kết tượng trưng, thì liên kết tượng trưng này
liên kết Nên thì là ở giải quyết với kính trọng đến các của khách hàng Tên không gian, thậm chí khi nào các người phục vụ cửa
hàng các liên kết. Vì thí dụ, giả sử cái đó các may chủ danh mục /viên ngọc quý Là gắn kết trên các của khách hàng danh mục
/ruby/đỏ . Giả sử rằng /ruby/red/stone (được lưu trữ trong không gian tên của máy chủ là /jewel/stone ) là một liên kết tượng
trưng đến /ruby/stone . Máy chủ chuyển lại liên kết này cho máy khách, sau đó máy khách phải tiếp tục giải quyết nó. Tên đường
dẫn /ruby/stone có thể đề cập đến một tệp được lưu trữ tại máy khách hoặc nó có thể là điểm gắn kết với máy chủ khác.

Q148. Mô tả vấn đề về tên không liên kết trong điều hướng phát đa hướng. Điều gì được ngụ ý bởi việc cài đặt một máy chủ để
đáp ứng việc tra cứu các tên không liên kết?
Ans.
Trong điều hướng phát đa hướng, máy khách phát đa hướng tên cho một nhóm máy chủ để phân giải. Nếu một máy chủ có thể
giải quyết Tên, nó trả lời đến các khách hàng. Đến giảm thiểu tin nhắn, một người phục vụ cái đó không thể giải quyết các Tên
làm không phải đáp ứng. Tuy nhiên nếu không người phục vụ có thể giải quyết các Tên – các Tên Là không ràng buộc – sau đó
các khách hàng sẽ thì là ở chào mừng với Im lặng. Nó phải gửi lại yêu cầu, trong trường hợp nó bị hủy. Máy khách không thể
phân biệt trường hợp này với trường hợp lỗi của máy chủ có thể giải quyết tên.
Một giải pháp cho vấn đề này là cài đặt một thành viên của nhóm theo dõi tất cả các tên bị ràng buộc, nhưng không cần lưu trữ
các thuộc tính tương ứng. Khi một yêu cầu được phát đa hướng tới nhóm, máy chủ này sẽ tìm kiếm tên trong danh sách các tên
bị ràng buộc của nó. Nếu tên xuất hiện trong danh sách, nó không làm gì cả. Tuy nhiên, nếu tên đó không Trong nó là danh sách,
sau đó nó gửi một 'Tên không ràng buộc' phản ứng thông điệp đến các khách hàng. Các ngụ ý Là cái đó đây máy chủ đặc biệt phải
được thông báo bất cứ khi nào máy khách liên kết hoặc hủy liên kết tên, làm tăng chi phí hoạt động cho các hoạt động này.

Q149. Làm thế nào để bộ nhớ đệm giúp tính khả dụng của dịch vụ tên?
Ans.
khách hàng bộ đệm cả hai sự vật thuộc tính và các địa chỉ của may chủ cái đó cửa hàng thư mục. Đây giúp các tính khả dụng của
dịch vụ vì máy khách vẫn có thể truy cập vào các thuộc tính được lưu trong bộ nhớ cache ngay cả khi máy chủ lưu trữ chúng gặp
sự cố (mặc dù các thuộc tính có thể đã cũ). Và nếu, ví dụ, máy chủ lưu trữ thư mục / emerald bị lỗi , thì một máy khách vẫn có
thể tra cứu đối tượng /emerald/green/stone nếu nó đã lưu vị trí của thư mục vào bộ đệm /ngọc lục bảo/xanh lục .

Q150. Thảo luận về việc không có sự khác biệt về cú pháp (chẳng hạn như sử dụng dấu '.') cuối cùng giữa tên tuyệt đối và tên
tương đối trong DNS.
Ans.
Máy chủ DNS chỉ chấp nhận tên miền hoàn chỉnh không có dấu '.' cuối cùng, chẳng hạn như dcs.qmw.ac.uk . Những tên như vậy
được gọi là gốc DNS và theo nghĩa đó là tuyệt đối. Tuy nhiên, trình phân giải được định cấu hình với danh sách tên miền mà
chúng nối với tên do khách hàng cung cấp, được gọi là danh sách hậu tố miền. Ví dụ: khi được cung cấp tên fred trong khoa
Khoa học Máy tính tại Queen Mary và Westfield College, một trình giải quyết nối thêm .dcs.qmw.ac.uk đến lấy
fred.dcs.qmw.ac.uk , cái mà nó sau đó đệ trình đến một người phục vụ. Nếu đây Nên không bị ràng buộc, các người giải quyết cố
gắng fred.qmw.ac.uk. _ Sau cùng, nếu cần thiết, các người giải quyết sẽ Gửi đi các Tên fred đến một máy chủ. Một số trình phân
giải chấp nhận phần cuối cùng sau một tên miền. Điều này biểu thị cho trình phân giải rằng tên sẽ được gửi trực tiếp đến máy
chủ như hiện tại (nhưng bị loại bỏ phần cuối cùng của nó '.'); trận chung kết '.' cú pháp tên miền không được chấp nhận.
Trong thực tế, thiếu sự phân biệt cú pháp giữa tên tương đối ( fred ) và tên tuyệt đối ( fred.dcs.qmw.ac.uk ) Là không phải một
vấn đề tại vì của các quy ước quản lý cấp một miền tên. Không ai sử dụng đơn thành phần tên giới thiệu đến các nguồn gốc (như
là như chính phủ , giáo dục , anh ), vì thế một đơn thành phần Tên Là luôn liên quan đến một số tên miền phụ. Về nguyên tắc,
một tên nhiều thành phần như ac.uk được thốt ra trong miền elvis.edu có thể tham khảo đến một (ràng buộc) miền ac.uk.elvis.edu
, nhưng thông thường tổ chức cũng không cần đến cũng không muốn cài đặt những tên khó hiểu như vậy trong tên miền phụ của
họ.
Một lợi thế của việc thiếu sự phân biệt cú pháp giữa tên tuyệt đối và tên tương đối là về nguyên tắc, không gian tên DNS có thể
được cấu hình lại. Ví dụ: chúng tôi có thể chuyển đổi edu , gov , com , v.v. thành edu.us , gov.us , com.us , v.v. và vẫn giải quyết
chính xác các tên như purdue.edu ở Hoa Kỳ bằng cách định cấu hình tất cả các trình phân giải ở Hoa Kỳ để bao gồm .us trong
danh sách hậu tố tên miền của họ.

Distributed Systems, Edition 3: Chapter10Answers 1


Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q151. Điều tra cấu hình máy chủ và tên miền DNS cục bộ của bạn. Bạn có thể tìm thấy một chương trình như nslookup được cài
đặt trên các hệ thống UNIX, cho phép bạn thực hiện các truy vấn máy chủ định danh riêng lẻ .
Ans.
Còn lại cho người đọc.

Q152. Tại sao máy chủ gốc DNS giữ các mục nhập cho các tên hai cấp độ như ac.uk và purdue.edu, thay vì các tên một cấp độ
như uk , edu và com?
Ans.
cấp một miền tên như là như giáo dục và com tham khảo đến trừu tượng Thể loại của tổ chức và đơn vị hành chính, và làm
không phải tham khảo đến không tí nào thật sự thân hình. Cấp độ thứ hai miền tên như là như yhaoo.com và purdue.edu không
vì thế nhiều Trong con số như đến cần đến thì là ở đã chia ra giữa tách rời com và giáo dục may chủ. Như là một phân công sẽ
mang lại thêm sự phức tạp và chi phí. Mặc dù Vương quốc Anh , v.v. có các máy chủ riêng biệt.

Q153. Theo mặc định, máy chủ tên DNS giữ những địa chỉ máy chủ định danh nào khác và tại sao?
Ans.
Một DNS Tên người phục vụ nắm giữ các địa chỉ của một hoặc hơn nguồn gốc may chủ, vì thế cái đó tất cả các các bộ phận của
các Tên không gian có thể đạt được. Nó cửa hàng các địa chỉ của may chủ lưu trữ tên miền phụ (do đó một người phục vụ vì
qmw.ac.uk cửa hàng địa chỉ của máy chủ cho dcs.qmw.ac.uk ). Thứ ba, nó thường thuận tiện cho việc lưu trữ địa chỉ của các máy
chủ lưu trữ tên miền mẹ của nó (do đó, một máy chủ trong dcs.qmw.ac.uk biết địa chỉ của các máy chủ lưu trữ qmw.ac.uk ).

Q154. Tại sao có thể một DNS khách hàng chọn đệ quy dẫn đường hơn là hơn lặp đi lặp lại dẫn đường? Gì Là mức độ phù hợp
của tùy chọn điều hướng đệ quy với đồng thời trong một máy chủ định danh?
Ans.
Máy khách DNS có thể chọn điều hướng đệ quy đơn giản vì nó quá cơ bản để thực hiện điều hướng lặp lại. Máy chủ thực hiện
điều hướng đệ quy phải chờ phản hồi từ máy chủ khác trước khi trả lời máy khách. Máy chủ nên xử lý một số yêu cầu chưa xử lý
của khách hàng cùng một lúc hơn là tạm dừng các yêu cầu khác cho đến khi từng yêu cầu được hoàn thành, để khách hàng
không bị giữ quá mức. Nói chung, máy chủ sẽ tham chiếu độ phân giải cho một số máy chủ khác thay vì chỉ một máy chủ, vì vậy
các yêu cầu của máy khách sẽ được đáp ứng song song ở một mức độ nào đó.

Q155. Khi nào máy chủ DNS có thể cung cấp nhiều câu trả lời cho một lần tra cứu tên và tại sao?
Ans.
Máy chủ DNS cung cấp một số câu trả lời cho một lần tra cứu tên duy nhất bất cứ khi nào nó sở hữu chúng, giả sử rằng máy
khách đã yêu cầu nhiều câu trả lời. Ví dụ: máy chủ có thể biết địa chỉ của một số máy chủ thư hoặc máy chủ DNS cho một miền
nhất định. Việc trao lại tất cả các địa chỉ này sẽ làm tăng tính khả dụng của dịch vụ thư và DNS tương ứng.

Q156. Dịch vụ tra cứu Jini đối sánh các ưu đãi dịch vụ với các yêu cầu của khách hàng dựa trên các thuộc tính hoặc cách gõ Java
. Giải thích với ví dụ các Sự khác biệt giữa này hai phương pháp của phù hợp. Gì Là lợi thế của việc cho phép cả hai loại kết
hợp?
Ans.
Thuộc tính - thuộc tính mô tả đặc tính của một Dịch vụ, vì thí dụ một máy in có thể chỉ định nó là tốc độ, vận tốc, độ phân giải,
cho dù nó được in trên một trong hai mặt của tờ giấy, vị trí của nó trong tòa nhà.
Các loại - chỉ định các loại dữ liệu Java do dịch vụ triển khai. ví dụ: Máy in, Máy in màu .
Cả hai các loại của phù hợp. ví dụ nếu cuộc thi đấu chỉ có qua loại hình (ví dụ vì Máy in màu ), ở đó có thể thì là ở một số như là
dịch vụ và khách hàng có thể chỉ định lựa chọn của mình bằng các thuộc tính, ví dụ: để lấy dịch vụ gần nhất. Nếu chỉ khớp theo
thuộc tính, loại có thể không chính xác.

Q157. Giải thích thế nào các Jini tra cứu Dịch vụ sử dụng hợp đồng thuê đến chắc chắn cái đó các danh sách của dịch vụ đăng ký
với một máy chủ tra cứu vẫn hiện hành mặc dù các dịch vụ có thể bị lỗi hoặc không thể truy cập được.
Ans.
Giả sử thời gian hết hạn thuê là t phút. Danh sách các dịch vụ trong dịch vụ tra cứu được làm mới trong vòng t phút vì bất kỳ
máy chủ nào vẫn còn hoạt động sẽ gia hạn hợp đồng thuê sau mỗi t phút. Nếu máy chủ gặp sự cố hoặc bị ngắt kết nối khỏi dịch
vụ tra cứu, thì máy chủ sẽ xóa mục nhập của nó ngay khi hợp đồng thuê hết hạn. Do đó , một máy chủ không khả dụng chỉ được
đăng ký trong tối đa t phút sau khi nó không khả dụng.
Distributed Systems, Edition 3: Chapter10Answers 2
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Các máy chủ biết về sự tồn tại (hoặc xuất hiện trở lại) của các dịch vụ tra cứu cục bộ vì chúng thỉnh thoảng gửi thông báo “Tôi ở
đây”.

Q158. Mô tả việc sử dụng tên nhóm và phát đa hướng IP trong dịch vụ 'khám phá' của Jini, dịch vụ này cho phép máy khách và
máy chủ định vị các máy chủ tra cứu.
Ans.
Mỗi tra cứu Dịch vụ có một bộ của các nhóm có liên quan với nó. Một khách hàng hoặc người phục vụ cần đến định vị một tra
cứu máy chủ chỉ định các tên của một bộ của các nhóm (họ là quan tâm đến Trong) Trong một phát đa hướng lời yêu cầu. Tra
cứu may chủ thuộc các nhóm đó trả lời bằng cách gửi proxy.
Các máy chủ tra cứu cũng quảng cáo các nhóm mà chúng được liên kết khi chúng gửi tin nhắn “Tôi ở đây”.

Q159. GNS không đảm bảo rằng tất cả các bản sao của các mục trong cơ sở dữ liệu đặt tên đều được cập nhật. khách hàng thế
nào của GNS rất có thể đến trở thành nhận thức cái đó họ có đã được một hết hạn lối vào? Dưới những trường hợp nó có thể có
hại?
Ans.
khách hàng sẽ trở thành nhận thức của các sử dụng của một hết hạn lối vào nếu một Tên cái đó họ có được Là không lâu hơn
một số nhận dạng liên lạc hợp lệ (chẳng hạn như khi địa chỉ email của người dùng đã thay đổi và không tồn tại địa chỉ chuyển
tiếp). Điều này thường không có hại, vì máy khách có thể phục hồi dễ dàng bằng cách đưa ra yêu cầu bị trì hoãn tới GNS. Tuy
nhiên, có thể có hại nếu mã định danh giao tiếp thu được từ GNS cung cấp quyền truy cập vào một số tài nguyên được bảo vệ và
tên được sử dụng để lấy nó không còn bị ràng buộc với tài nguyên đó nữa. nguồn. Vì thí dụ, khi nào một người sử dụng chấm
dứt đến thì là ở một thành viên của các tổ chức , GNS có thể tiếp tục đến cung cấp thông tin về vai trò tổ chức của họ , dẫn dắt
người dùng hoặc ứng dụng dành các đặc quyền cho người dùng.

Q160. Thảo luận về những ưu điểm và nhược điểm tiềm ẩn trong việc sử dụng dịch vụ thư mục X.500 thay cho DNS và các
chương trình gửi thư trên Internet. Phác thảo thiết kế của một hệ thống gửi thư cho một liên mạng trong đó tất cả người dùng
thư và máy chủ thư được đăng ký trong cơ sở dữ liệu X.500.
Ans.
Vì truy cập đến thông thường e-mail địa chỉ (dựa trên trên Internet Miền tên), X.500 sẽ cung cấp một các tiện ích tương tự như
dịch vụ DNS. X.500 được thiết kế để có thể mở rộng. Nếu điều này đạt được trong thực tế, thì nó sẽ đáp ứng nhu cầu kết nối
mạng quy mô lớn trong tương lai tốt hơn DNS.
Các chính thuận lợi của X.500 Là cái đó nó Là một dựa trên thuộc tính danh mục Dịch vụ. Trong nguyên tắc, người dùng có thể
giải quyết các thông báo cho mọi người bằng cách trích dẫn tên thật và các chi nhánh tổ chức của họ , thay vì các địa chỉ dựa
trên Tên miền hiện đang được sử dụng. Hệ thống thư sẽ thực hiện yêu cầu tìm kiếm X.500 để tìm tương ứng DNS hoặc khác
mạng địa chỉ của các của người dùng hộp thư. Một Hạn chế Là cái đó đang tìm kiếm với một phạm vi rộng khá chậm và tốn tài
nguyên máy tính, phạm vi có thể bị hạn chế bằng cách sử dụng liên kết tổ chức . Một số hộp thư thay thế có thể được giữ trong
máy chủ thư mục, cung cấp khả năng gửi thư có khả năng chịu lỗi.

Q161. Gì Bảo vệ vấn đề là chịu trách nhiệm đến thì là ở liên quan, thích hợp đến một danh mục Dịch vụ như là như X500 điều
hành trong một tổ chức chẳng hạn như một trường đại học?
Ans.
Ở đó là hai chính Bảo vệ vấn đề của sự liên quan đến một Tên Dịch vụ. Các Đầu tiên Là các câu hỏi của ai có thể tạo và sửa đổi
một mục cho một tên nhất định. Điều quan trọng là người dùng độc hại không thể tạo các mục không có thật hoặc thay đổi các
thuộc tính được lưu trữ mà không được phép. Điều quan trọng không kém là các ranh giới hành chính trong không gian tên được
tôn trọng.
Vấn đề thứ hai là quyền riêng tư. Nói chung, người dùng có thể chỉ muốn các hiệu trưởng đặc quyền đọc các thuộc tính của họ.

Chương 10 Giải bài tập


Q162. Tại sao đồng bộ hóa đồng hồ máy tính là cần thiết? Mô tả các yêu cầu thiết kế cho một hệ thống để đồng bộ hóa
các đồng hồ trong một hệ thống phân tán.
Ans.
Xem Phần 10.1 để biết sự cần thiết của việc đồng bộ hóa đồng hồ. Yêu cầu thiết kế chính:
i) nên có giới hạn về độ lệch giữa các đồng hồ hoặc giữa bất kỳ đồng hồ nào và UTC;
Distributed Systems, Edition 3: Chapter10Answers 2
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
ii) đồng hồ chỉ nên tiến lên;
iii) chỉ những người được ủy quyền mới có thể đặt lại đồng hồ (Xem Phần 7.6.2 trên Kerberos)
Trong thực tế ( i ) không thể đạt được trừ khi chỉ xảy ra lỗi lành tính và hệ thống là đồng bộ.
Q163. Một chiếc đồng hồ đang đọc 10:27:54.0 ( hr:min :sec ) khi nó được phát hiện là nhanh 4 giây. Giải thích lý do tại sao nó
là không mong muốn đến bộ nó mặt sau đến các bên phải thời gian tại cái đó điểm và buổi bieu diễn (bằng số) thế nào nó Nên
thì là ở điều chỉnh vì thế là chính xác sau 8 giây đã trôi qua.
Ans.
Một số ứng dụng sử dụng giá trị đồng hồ hiện tại để đóng dấu các sự kiện, với giả định rằng đồng hồ luôn chạy nhanh. Chúng
tôi sử dụng E để chỉ đồng hồ 'lỗi' đọc 10:27:54.0 khi thời gian thực là 10:27:50. Chúng tôi giả định rằng H
tăng với tốc độ hoàn hảo, đến giá trị gần đúng đầu tiên, trong 8 giây tiếp theo. Chúng tôi điều chỉnh đồng hồ phần mềm S của
mình để đánh dấu ở tốc độ đã chọn để nó đúng sau 8 giây, như sau:
S = c ( E - Tskew ) + Tskew , trong đó Tskew = 10:27:54 và cần tìm c . Nhưng S = Tskew +4 (thời điểm chính xác) khi E =
Tskew +8, nên:
Tskew + 4 = c ( Tskew + 8 - Tskew ) + Tskew và c là 0,5. Cuối cùng:
S = 0,5( E - Tskew ) + Tskew (khi Tskew  E  Tskew +8).
Q164. Một lược đồ để triển khai gửi tin nhắn đáng tin cậy cùng một lúc sử dụng đồng hồ được đồng bộ hóa để từ chối các tin
nhắn trùng lặp. Các quy trình đặt giá trị đồng hồ cục bộ của chúng (một 'dấu thời gian') trong các tin nhắn mà chúng gửi. Mỗi
người nhận giữ một bàn cho, vì mỗi gửi quá trình, các lớn nhất thông điệp dấu thời gian nó có đã xem. Giả định đồng hồ đó
được đồng bộ hóa trong vòng 100 mili giây và tin nhắn có thể đến tối đa là 50 mili giây sau khi truyền.
(i) Khi nào có thể một quá trình phớt lờ một thông điệp Ổ đỡ trục một dấu thời gian T , nếu nó có ghi lại các Cuối cùng thông
điệp nhận được từ quá trình đó là có dấu thời gian T  ? 
(ii) Khi nào máy thu có thể xóa dấu thời gian 175.000 ( ms ) khỏi bảng của nó? (Gợi ý: sử dụng giá trị đồng hồ cục bộ của máy
thu .)
(iii) Đồng hồ nên được đồng bộ hóa bên trong hay đồng bộ hóa bên ngoài?
Ans.
i) Nếu T  T thì tin nhắn phải là một nói lại.
ii) Các sớm nhất thông điệp dấu thời gian cái đó có thể còn đến khi nào các người nhận cái đồng hồ Là r Là r - 100 - 50. Nếu
điều này Là đến thì là ở tại ít nhất 175.000 (vì thế cái đó chúng tôi không thể nhầm lẫn nhận một nhân bản), chúng tôi cần r -
150 = 175.000, I E r = 175,150.
iii) nội bộ là đủ, vì chỉ khác biệt về thời gian là liên quan, thích hợp.
Một khách hàng nỗ lực đến làm cho đồng bộ với một thời gian người phục vụ. Nó Hồ sơ các khứ hồi lần và dấu thời gian trả lại
bởi máy chủ trong bảng dưới đây.

Q165. Cái mà của này lần Nên nó sử dụng đến bộ nó là cái đồng hồ? Đến Gì thời gian Nên nó bộ nó? Ước tính các sự chính xác
của cài đặt với kính trọng đến các may chủ cái đồng hồ. Nếu nó Là đã biết cái đó các thời gian giữa gửi và nhận một tin nhắn
trong hệ thống có liên quan ít nhất là 8 ms , câu trả lời của bạn có thay đổi không?

Khứ hồi ( ms ) Thời gian ( giờ:phút :giây ) 22 10:54:23,674


25 10:54:25.450
20 10:54:28.342
Ans.
Các khách hàng Nên chọn các tối thiểu khứ hồi thời gian của 20 bệnh đa xơ cứng = 0,02 S. Nó sau đó ước tính các hiện hành
thời gian là 10:54:28,342 + 0,02/2 = 10:54:28,352. Độ chính xác là ± 10 ms.
Nếu các tối thiểu thông điệp chuyển khoản thời gian Là đã biết đến thì là ở số 8 cô , sau đó các cài đặt hài cốt các tương tự
nhưng các độ chính xác cải thiện lên ± 2 ms.

Q166. Trong hệ thống của Bài tập 10.4, cần phải đồng bộ hóa đồng hồ của máy chủ tệp trong khoảng ±1 mili giây. Thảo luận
điều này liên quan đến thuật toán của Cristian.
Ans.
Distributed Systems, Edition 3: Chapter10Answers 2
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Đến làm cho đồng bộ một cái đồng hồ ở trong ± 1 bệnh đa xơ cứng nó Là cần thiết đến được một khứ hồi thời gian của không
hơn hơn 18 cô , với thời gian truyền thông báo tối thiểu là 8 ms. Về nguyên tắc, tất nhiên là có thể có được một chuyến đi khứ
hồi như vậy. thời gian, nhưng nó có thể thì là ở không thể xảy ra cái đó như là một thời gian có thể thì là ở tìm. Các tập tin
người phục vụ rủi ro thất bại đến đồng bộ hóa trong một thời gian dài, khi nó có thể đồng bộ hóa với độ chính xác thấp hơn.

Q167. Những cấu hình lại nào bạn muốn xảy ra trong mạng con đồng bộ hóa NTP?
Ans.
Một người phục vụ có thể Thất bại hoặc trở thành không thể truy cập được. May chủ cái đó làm cho đồng bộ với nó sẽ sau đó
nỗ lực đến làm cho đồng bộ đến một máy chủ khác. Kết quả là, họ có thể di chuyển đến một tầng khác. Ví dụ: máy ngang hàng
tầng 2 (máy chủ) mất kết nối với máy ngang hàng tầng 1 và từ đó phải sử dụng máy ngang hàng tầng 2 vẫn giữ kết nối của nó
với máy ngang hàng tầng 1. Nó trở thành một đồng đẳng cấp 3.
Ngoài ra, nếu nguồn UTC của máy chủ chính bị lỗi, thì nó sẽ trở thành máy chủ phụ.

Q168. Máy chủ NTP B nhận được tin nhắn của máy chủ A lúc 16:34:23.480 mang dấu thời gian 16:34:13.430 và trả lời nó. A
nhận được tin nhắn lúc 16:34:15.725, mang dấu thời gian của B là 16:34:25.7. Ước tính phần bù giữa B và A và độ chính xác
của ước lượng.
Ans.
Cho a  T i-2 –T i-3 = 23,48 – 13,43 = 10,05; b  T i-1 – T i = 25,7- 15,725 =9,975.
Sau đó, phần bù ước tính o i = ( a + b )/2 = 10,013s, với độ chính xác ước tính = d i 2 = ± ( a - b )/2 = 0,038s
( câu trả lời được thể hiện chính xác đến một phần nghìn giây).

Q 169. Thảo luận về các yếu tố cần tính đến khi quyết định máy chủ NTP nào mà máy khách sẽ đồng bộ hóa đồng hồ của nó.
Ans.
Các yếu tố chính cần tính đến là độ tin cậy nội tại của máy chủ với tư cách là nguồn giá trị thời gian và chất lượng của thông tin
thời gian khi nó đến đích. Kiểm tra tình trạng vệ sinh là cần thiết, trong trường hợp máy chủ có lỗi hoặc là vận hành ác ý và
phát ra giả mạo thời gian các giá trị. Giả định cái đó may chủ phát ra các tốt nhất các giá trị thời gian được biết đến với chúng,
các máy chủ có số tầng thấp hơn sẽ gần với UTC nhất và do đó có khả năng chính xác nhất. Mặt khác, khoảng cách mạng lớn từ
nguồn có thể tạo ra các biến thể lớn trong mạng sự chậm trễ. Các sự lựa chọn liên quan đến một đánh đổi giữa này hai các nhân
tố, và may chủ có thể làm cho đồng bộ với một số máy chủ khác (ngang hàng) để tìm kiếm dữ liệu chất lượng cao nhất.

Q170. Bàn luận thế nào nó Là khả thi đến đền bù vì cái đồng hồ trôi dạt giữa đồng bộ hóa điểm qua quan sát các tốc độ trôi
theo thời gian. Thảo luận về bất kỳ hạn chế nào đối với phương pháp của bạn.
Ans.
Nếu chúng ta biết rằng tốc độ trôi là không đổi, thì chúng ta chỉ cần đo nó giữa các điểm đồng bộ với một chính xác nguồn và
đền bù vì nó. Vì thí dụ, nếu các cái đồng hồ thua một thứ hai mọi giờ, sau đó chúng tôi có thể thêm một giây mỗi giờ, với mức
tăng đều đặn, vào giá trị được trả lại cho người dùng. Khó khăn là tốc độ trôi của đồng hồ có thể thay đổi – ví dụ, nó có thể là một
hàm của nhiệt độ. Do đó , chúng tôi cần một phương pháp điều chỉnh thích ứng, phương pháp này đoán tốc độ trôi, dựa trên
hành vi trong quá khứ , nhưng phương pháp này sẽ bù khi tốc độ trôi được phát hiện là đã thay đổi ở điểm đồng bộ hóa tiếp
theo .

Q171. Bằng cách xem xét một chuỗi gồm 0 hoặc nhiều thông báo kết nối các sự kiện e và e và dùng quy nạp, chứng tỏ cái đó
e  e  L e   L e  .
Ans.
Nếu e và e là liên tiếp sự kiện xảy ra tại các tương tự quá trình, hoặc nếu ở đó Là một thông điệp tôi như là cái đó e = sen d ( m
) và e = rcv ( m ) thì kết quả có ngay từ LC1 và LC2. Giả sử rằng kết quả cần chứng minh là đúng với tất cả các cặp biến cố
được kết nối trong một chuỗi biến cố (trong đó HB1 hoặc HB2 áp dụng giữa mỗi cặp lân cận ) có độ dài N hoặc nhỏ hơn ( N
2). Bây giờ giả sử rằng e và e là được kết nối trong một chuỗi các sự kiện e 1 , e2 , _ e 3 , .. , e N+1 xảy ra tại một hoặc hơn
quy trình như là cái đó e = e 1 và e = và N+1 . sau đó e  e N và vì thế C( đ )
< C ( e N ) theo giả thuyết quy nạp. Nhưng theo LC1 và LC2, C ( e N ) < C( e ). Do đó C ( e ) < C( e ).

Q172. Chứng tỏ rằng V j i   V i i  (NB erratum trong bài tập này trong lần đầu tiên in ấn)
Ans.
Quy tắc VC2 (tr. 399) cho chúng ta biết rằng p i là 'nguồn' của các gia số đến V i i , mà nó tạo ra ngay trước khi gửi mỗi tin
Distributed Systems, Edition 3: Chapter10Answers 2
Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
nhắn; và p j đó tăng V j i chỉ khi nó nhận được thông báo chứa dấu thời gian với các mục nhập lớn hơn cho p i . Mối quan hệ
V j i   V i i theo ngay.

Q173. Tương tự như Bài tập 10.10, hãy chứng minh rằng e  e  V e   V e  .
Ans.
Nếu e và e là liên tiếp sự kiện xảy ra tại các tương tự quá trình, hoặc nếu ở đó Là một thông điệp tôi như là cái đó e = sen d ( m
) và e = rcv ( m ), sau đó là kết quả từ VC2–VC4. Trong trường hợp sau, người gửi bao gồm giá trị dấu thời gian của nó và
người nhận tăng mục nhập đồng hồ vectơ của chính nó; tất cả các mục khác của nó ít nhất vẫn tuyệt vời như những mục trong
dấu thời gian của người gửi.
Giả sử rằng kết quả cần chứng minh là đúng với tất cả các cặp biến cố được kết nối trong một chuỗi biến cố (trong đó HB1 hoặc
HB2 áp dụng giữa mỗi cặp lân cận ) có độ dài N hoặc nhỏ hơn ( N 2). Bây giờ giả sử rằng e và e là được liên kết trong một
chuỗi các sự kiện e 1 , e 2 , e 3 , .. , e N+1 xảy ra tại một hoặc nhiều quá trình sao cho e = e 1 và e = e N+1 . Khi đó e  e N và do
đó V( e ) < V( e N ) theo giả thuyết quy nạp. Nhưng bởi VC2–VC4, V( e N ) < V( e ). Do đó V ( e ) < V( e ).

Q174. sử dụng các kết quả của Tập thể dục 10.11, buổi bieu diễn cái đó nếu sự kiện e và e là đồng thời sau đó cũng không V
e   V e  cũng không
V e   V e  . Từ đó chứng tỏ rằng nếu V e   V e  sau đó e  e .
Ans.
Gọi e và e là đồng quy và để e xảy ra tại p i và e tại p j . Bởi vì các sự kiện diễn ra đồng thời (không liên quan đến việc xảy ra
trước đó), chúng tôi biết rằng không có thông báo nào được gửi từ p i tại hoặc sau sự kiện e đã tuyên truyền dấu thời gian
đến P j qua các thời gian e xảy ra tại P j , và hành vi xấu xa ngược lại . Qua các suy luận vì Tập thể dục 10.11, nó theo
sau cái đó
V j i   V i i  và V tôi  j   V ( bất đẳng thức nghiêm ngặt ) và do đó không V e   V cũng
V e   V e  . j e 
  không
j

Distributed Systems, Edition 3: Chapter10Answers 2


Last updated: 19 August 2000 ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Vì vậy nếu V e   V e  các hai sự kiện là không phải đồng thời – họ phải thì là ở có liên quan qua đã xảy ra trước đây.
Trong hai khả năng, rõ ràng phải là e  e .

Câu 175. Hai tiến trình P và Q được kết nối trong một vòng sử dụng hai kênh và chúng liên tục luân chuyển một thông điệp m .
Tại không tí nào một thời gian, ở đó Là chỉ có một sao chép của tôi Trong các hệ thống. Mỗi quy trình tiểu bang bao gồm của
các con số của lần nó đã nhận được m , và P gửi m đầu tiên. Tại một thời điểm nhất định, P có tin nhắn và trạng thái của nó là
101. Ngay sau khi gửi m , P khởi tạo thuật toán chụp nhanh. Giải thích hoạt động của thuật toán trong trường hợp này, đưa ra
(các) trạng thái toàn cầu có thể được nó báo cáo.

Ans.
P gửi tin nhắn m
P hồ sơ trạng thái (101)
P gửi điểm đánh dấu (xem bắt đầu thuật toán được mô tả trên trang 406)
Q nhận m, làm cho trạng thái của nó 102
Q nhận điểm đánh dấu và theo quy tắc nhận điểm đánh dấu, ghi lại trạng thái của nó (102) và trạng thái của kênh từ P đến Q
dưới dạng {}
Q gửi điểm đánh dấu (quy tắc gửi điểm đánh dấu) (Q gửi lại cho m sau đó) P nhận điểm đánh dấu
P Hồ sơ các tiểu bang của các kênh truyền hình từ Hỏi đến P như bộ của tin nhắn nhận từ nó đã lưu nó là tiểu bang = {} (quy
tắc nhận điểm đánh dấu).

Chương 11 Giải bài tập


Q 178. Có thể triển khai bộ phát hiện lỗi (quy trình) đáng tin cậy hoặc không đáng tin cậy bằng cách sử dụng kênh liên lạc
không đáng tin cậy không?
Ans.
Một bộ phát hiện lỗi không đáng tin cậy có thể được xây dựng từ một kênh không đáng tin cậy – tất cả những thay đổi từ việc
sử dụng một kênh đáng tin cậy là các thông báo bị loại bỏ có thể làm tăng số lượng nghi ngờ sai về lỗi quy trình.
Một bộ phát hiện lỗi đáng tin cậy yêu cầu một hệ thống đồng bộ. Nó không thể được xây dựng trên một kênh không đáng tin
cậy vì không thể phân biệt được một thông báo bị rớt và một quá trình bị lỗi – trừ khi độ tin cậy của kênh có thể được che giấu
trong khi cung cấp giới hạn trên được đảm bảo về thời gian gửi tin nhắn. Về nguyên tắc, một kênh làm rớt tin nhắn với một số
xác suất nhưng đảm bảo rằng ít nhất một tin nhắn trong một trăm tin nhắn không bị rớt có thể được sử dụng để tạo ra một bộ
phát hiện lỗi đáng tin cậy.

Câu hỏi 179. Nếu tất cả các quy trình máy khách đều là một luồng, thì điều kiện loại trừ lẫn nhau ME3, trong đó chỉ định mục
nhập theo thứ tự xảy ra trước, có liên quan không?
Ans.
ME3 không liên quan nếu giao diện yêu cầu loại trừ lẫn nhau là đồng bộ. Đối với quy trình đơn luồng không thể gửi thông báo
đến quy trình khác trong khi chờ mục nhập và ME3 không phát sinh.

Q 180.Đưa ra công thức cho thông lượng tối đa của hệ thống loại trừ lẫn nhau về độ trễ đồng bộ hóa.
Ans.
Nếu s = độ trễ đồng bộ hóa và m = thời gian tối thiểu dành cho một phần quan trọng bởi bất kỳ quy trình nào, thì thông lượng
tối đa là 1  s + m mục nhập phần quan trọng mỗi giây.

Q181. Trong thuật toán loại trừ lẫn nhau của máy chủ trung tâm, hãy mô tả tình huống trong đó hai yêu cầu không được xử lý
theo thứ tự xảy ra trước đó.
Ans.
Tiến trình A gửi một yêu cầu r A cho mục nhập sau đó gửi tin nhắn m đến B . Khi nhận được m , B gửi yêu cầu r B vì
lối vào. Đến thỏa mãn đã xảy ra trước đây gọi món, r Một Nên thì là ở được cấp trước r B . Tuy nhiên, quá hạn đến các mơ hồ
của
độ trễ truyền tin, r B đến máy chủ trước r A và chúng được phục vụ theo thứ tự ngược lại.

Distributed Systems, Edition 3: Chapter 13 Solutions 2


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q182. Phỏng theo các Trung tâm người phục vụ thuật toán vì qua lại loại trừ đến xử lý các tai nạn thất bại của không tí nào
khách hàng (Trong không tí nào trạng thái), giả sử rằng máy chủ là chính xác và được cung cấp một bộ phát hiện lỗi đáng tin
cậy. Nhận xét về việc liệu hệ thống kết quả có khả năng chịu lỗi hay không. Điều gì sẽ xảy ra nếu một khách hàng sở hữu mã
thông báo bị nghi ngờ là đã thất bại?
Ans.
Các người phục vụ sử dụng các đáng tin cậy thất bại máy dò đến mục đích cho dù không tí nào khách hàng có bị rơi. Nếu các
khách hàng có được cấp mã thông báo thì máy chủ hoạt động như thể khách hàng đã trả lại mã thông báo. Trong trường hợp sau
đó nó nhận được mã thông báo từ máy khách (có thể đã gửi nó trước khi gặp sự cố), thì nó sẽ bỏ qua nó.
Hệ thống kết quả là không chịu lỗi. Nếu ứng dụng khách đang giữ mã thông báo gặp sự cố thì dữ liệu dành riêng cho ứng dụng sẽ
được bảo vệ qua các phê bình tiết diện (của ai Tính nhất quán Là tại cổ phần) có thể thì là ở Trong một không xác định tiểu
bang tại các điểm khi một khách hàng khác bắt đầu truy cập nó.
Nếu một khách hàng cái đó sở hữu các mã thông báo Là sai lầm nghi ngờ đến có thất bại sau đó ở đó Là một sự nguy hiểm cái
đó hai các quy trình sẽ được phép thực hiện đồng thời trong phần quan trọng.

Câu 183. Cho một thí dụ chấp hành của các dựa trên vòng thuật toán đến buổi bieu diễn cái đó quy trình là không phải nhất
thiết được cấp vào phần quan trọng theo thứ tự xảy ra trước.
Ans.
Xét ba quá trình trong một vòng, theo thứ tự P1, P2 và P3. Lưu ý rằng các quy trình có thể gửi tin nhắn cho nhau một cách độc
lập với giao thức chuyển mã thông báo.
P1 > P2
| |
| |
P3 < ----------------------------------|
Các mã thông báo Là ban đầu với P2. P1 yêu cầu các mã thông báo, sau đó gửi một thông điệp đến P3, cái mà cũng yêu cầu các
mã thông báo. Thông báo chuyển mã thông báo tại P2. Sau đó, P2 gửi mã thông báo. P3 nhận được nó, nhưng mã thông báo lẽ
ra phải được cấp cho P1 trước.

Q184. Trong một hệ thống nhất định, mỗi quy trình thường sử dụng một phần quan trọng nhiều lần trước khi quy trình khác yêu
cầu . Giải thích tại sao Ricart và của Agrawala dựa trên phát đa hướng qua lại loại trừ thuật toán Là không hiệu quả vì đây
trường hợp, và mô tả làm thế nào để cải thiện hiệu suất của nó. Sự thích nghi của bạn có thỏa mãn điều kiện sống ME2 không?
Ans.
Trong Ricart và của Agrawala dựa trên phát đa hướng qua lại loại trừ thuật toán, một khách hàng vấn đề một phát đa hướng lời
yêu cầu mỗi khi nó yêu cầu nhập cảnh. Điều này không hiệu quả trong trường hợp được mô tả, của một khách hàng liên tục vào
phần quan trọng trước khi một khách hàng khác cần vào.
Thay vì, một khách hàng cái đó kết thúc với một phê bình tiết diện và cái mà có nhận không vượt trội yêu cầu có thể đánh dấu
mã thông báo là JUST_RELEASED , nghĩa là nó chưa chuyển bất kỳ thông tin nào đến các quy trình khác mà nó có hoàn thành
với các phê bình tiết diện. Nếu các khách hàng nỗ lực đến đi vào các phê bình tiết diện và tìm thấy các mã thông báo đến là
JUST_RELEASED , nó có thể thay đổi trạng thái thành HELD và nhập lại giá trị quan trọng tiết diện.
Đến gặp sức sống tình trạng TÔI 2, một JUST_RELEASED mã thông báo Nên trở thành PHÁT HÀNH nếu một lời yêu cầu vì
mục nhập được nhận.

Q 185. Trong thuật toán Bully, một quá trình khôi phục bắt đầu một cuộc bầu chọn và sẽ trở thành điều phối viên mới nếu nó
có một định danh cao hơn so với người đương nhiệm hiện tại. Đây có phải là một tính năng cần thiết của thuật toán?
Ans.
Đầu tiên lưu ý rằng đây là một tính năng không mong muốn nếu không có lợi thế khi sử dụng quy trình được đánh số cao hơn:
cuộc bầu cử lại là lãng phí. Tuy nhiên, việc đánh số các quy trình có thể phản ánh lợi thế tương đối của chúng (ví dụ: với các
quy trình được đánh số cao hơn thực thi ở các máy nhanh hơn). Trong trường hợp này, lợi thế có thể xứng đáng với chi phí bầu
cử lại. Chi phí bầu cử lại bao gồm các vòng thông báo cần thiết để thực hiện cuộc bầu cử; chúng cũng có thể bao gồm chuyển
trạng thái dành riêng cho ứng dụng từ điều phối viên cũ sang điều phối viên mới.
Để tránh bầu cử lại, quá trình khôi phục chỉ có thể gửi requestStatus gửi thông báo tới các quy trình được đánh số thấp hơn liên
tiếp để khám phá xem liệu một quy trình khác đã được bầu hay chưa và chỉ tự bầu nếu nó nhận được một phủ định phản ứng.
Sau đó, các thuật toán có thể vận hành như trước: nếu các mới hồi phục quá trình phát hiện ra điều phối viên đã thất bại hoặc
nếu nhận được thông báo bầu cử , nó sẽ gửi thông báo điều phối viên đến các quy trình còn lại.

Distributed Systems, Edition 3: Chapter 13 Solutions 2


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q186. Đề xuất cách điều chỉnh thuật toán Bully để xử lý các phân vùng mạng tạm thời (giao tiếp chậm) và các quy trình chậm.
Ans.
Với các giả định vận hành được nêu trong câu hỏi, chúng tôi không thể đảm bảo chọn một quy trình duy nhất bất cứ lúc nào.
Thay vào đó, chúng ta có thể thấy hài lòng khi hình thành các nhóm con quy trình thống nhất về điều phối viên của chúng và
cho phép một số như là phân nhóm đến hiện hữu tại một thời gian. Vì thí dụ, nếu một mạng chia rẽ vào trong hai sau đó chúng
tôi có thể tạo thành hai nhóm con, mỗi nhóm chọn quy trình có số nhận dạng cao nhất trong số các thành viên của nó. Tuy
nhiên, nếu các vách ngăn Nên chữa trị sau đó các hai các nhóm Nên hợp nhất mặt sau vào trong một Độc thân tập đoàn với một
Độc thân điều phối viên.
Thuật toán được gọi là 'thuật toán lời mời' đạt được điều này. Nó bầu chọn một điều phối viên duy nhất trong số mỗi nhóm con
mà các thành viên của họ có thể giao tiếp, nhưng theo định kỳ, một điều phối viên sẽ thăm dò ý kiến các thành viên khác của
toàn bộ quy trình nhằm cố gắng hợp nhất với các nhóm khác. Khi một điều phối viên khác được tìm thấy, một điều phối viên sẽ
gửi nó một 'lời mời' thông điệp đến mời nó đến hình thức một sáp nhập tập đoàn. Như Trong các Bắt nạt thuật toán, khi nào
một quá trình nghi ngờ không thể truy cập hoặc thất bại của điều phối viên của nó gọi là một cuộc bầu cử.

Q 187. Để biết chi tiết, xem Garcia-Molina [1982].


Tạo ra một giao thức cho multicast cơ bản qua IP multicast.
Ans.
chúng tôi có thể sử dụng các thuật toán vì đáng tin cậy phát đa hướng, ngoại trừ cái đó quy trình làm không phải giữ lại bản sao
của các tin nhắn mà họ đã gửi (và họ cũng không nhận lại xác nhận trên các tin nhắn mà họ phát đa hướng). Nếu người gửi là
chính xác, người nhận có thể lấy một tin nhắn bị thiếu từ người gửi; nhưng nếu người gửi gặp sự cố thì một tin nhắn có thể được
gửi tới một số thành viên của nhóm chứ không phải những người khác.

Q 188. Làm thế nào, nếu có, các định nghĩa về tính toàn vẹn, thỏa thuận và hiệu lực cho phát đa hướng đáng tin cậy sẽ thay đổi
như thế nào đối với trường hợp của các nhóm mở?
Ans.
Đối với các nhóm mở, các định nghĩa về tính toàn vẹn và thỏa thuận không thay đổi. Thuộc tính hợp lệ không được xác định
phù hợp cho các nhóm mở, vì người gửi không nhất thiết phải là thành viên của nhóm.
Đối với các nhóm mở, chúng tôi có thể xác định tính hợp lệ như sau: 'Nếu một quá trình chính xác gửi thông báo phát đa hướng
m , thì một số thành viên của nhóm ( m ) cuối cùng sẽ gửi m .'

Q 189. Giải thích tại sao đảo ngược thứ tự các dòng ' R-deliver m ' và ' if ( q  p ) rồi B-multicast ( g, m ); end if ' trong hình
11.10 làm cho thuật toán không còn thỏa mãn thống nhất. Liệu multicast đáng tin cậy thuật toán dựa trên IP multicast đáp ứng
thỏa thuận thống nhất?
Ans.
đảo chiều các gọi món của những thứ kia dòng có nghĩa cái đó một quá trình có thể giao một thông điệp và sau đó tai nạn trước
gửi nó cho các thành viên khác trong nhóm - trong trường hợp đó, có thể không nhận được tin nhắn nào cả. Điều này mâu thuẫn
với tài sản thỏa thuận thống nhất.
Các đáng tin cậy phát đa hướng thuật toán dựa trên trên địa chỉ IP phát đa hướng làm không phải thỏa mãn đồng phục hiệp
định. Một người nhận cung cấp một thông điệp như Sớm như nó nhận được nó; nếu các người gửi là đến Thất bại suốt trong
truyền tải và cái đó tương tự thông điệp là không đạt được các thành viên khác trong nhóm thì tài sản thỏa thuận thống nhất sẽ
không được đáp ứng.

Q 190. Giải thích tại sao thuật toán phát đa hướng đáng tin cậy qua phát đa hướng IP không hoạt động đối với các nhóm mở.
Đưa ra bất kỳ thuật toán nào cho các nhóm đóng, làm thế nào, một cách đơn giản, chúng ta có thể rút ra một thuật toán cho các
nhóm mở?
Ans.
'Không hoạt động' đang diễn đạt hơi mạnh mẽ: 'yêu cầu nhiều công việc hơn để hoạt động chính xác' sẽ tốt hơn.
Ví dụ, trong số các nhóm mở, chúng tôi bao gồm một nhóm 'người đăng ký' với người gửi là nhà xuất bản. Có thể một thành
viên của nhóm nhận được thông báo từ nhà xuất bản ngay trước khi thông báo sau gặp sự cố, nhưng không thành viên nào khác
nhận được thông báo tương tự. Vì các thành viên trong nhóm không tự gửi tin nhắn nên các thành viên khác sẽ không biết gì.
Giả định của chúng tôi rằng mọi quy trình 'thông báo phát đa hướng' vô thời hạn Là không phải phù hợp Trong các định nghĩa
bài văn của như là một tập đoàn. Các sửa chữa Là vì quy trình đến gửi 'nhịp tim' đều đặn tin nhắn đến một nữa, nói Về cái mà
tin nhắn họ có nhận (hiểu các tiếp theo tập thể dục).
chúng tôi được một thuật toán vì mở các nhóm qua đang có người gửi nhặt một thành viên của các đóng cửa tập đoàn và gửi tin
Distributed Systems, Edition 3: Chapter 13 Solutions 2
Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
nhắn đến nó, sau đó nó sẽ gửi đến nhóm.

Q 191. Xem xét cách giải quyết các giả định không thực tế mà chúng tôi đã thực hiện để đáp ứng các thuộc tính hợp lệ và thỏa
thuận cho giao thức phát đa hướng đáng tin cậy dựa trên phát đa hướng IP. Gợi ý: thêm quy tắc để xóa các tin nhắn được giữ lại
khi chúng đã được gửi đi khắp nơi; và xem xét thêm một thông báo 'nhịp tim' giả, thông báo này không bao giờ được gửi tới
ứng dụng, nhưng giao thức sẽ gửi nếu ứng dụng không có thông báo nào để gửi.
Ans.
Một tiến trình có thể xóa một tin nhắn được giữ lại khi nó được biết là đã được nhận bởi tất cả các thành viên trong nhóm. Điều
kiện thứ hai có thể được xác định từ các xác nhận mà các thành viên nhóm ghi lại các tin nhắn họ gửi. (Đây là một trong những
mục đích chính của những lời xác nhận đó; mục đích khác là một quá trình có thể biết rằng nó đã bỏ lỡ một tin nhắn sớm hơn
nếu nó phải đợi người gửi tin nhắn đó gửi một tin nhắn khác .)
Thành viên nhóm có thể gửi tin nhắn nhịp tim định kỳ nếu không có tin nhắn cấp ứng dụng nào để gửi. Thông báo nhịp tim ghi
lại số thứ tự cuối cùng được gửi và số thứ tự nhận được từ mỗi người gửi, cho phép người nhận xóa tin nhắn mà họ có thể giữ
lại và phát hiện các tin nhắn bị thiếu.

Q 192. Hãy chỉ ra rằng thuật toán phát đa hướng theo thứ tự FIFO không hoạt động đối với các nhóm chồng chéo, bằng cách
xem xét hai thông báo được gửi từ cùng một nguồn đến hai nhóm chồng chéo và xem xét một quá trình trong giao điểm của các
nhóm đó. Điều chỉnh giao thức để làm việc cho trường hợp này. Gợi ý: các quy trình nên bao gồm cùng với thông báo của
chúng số thứ tự mới nhất của các thông báo được gửi tới tất cả các nhóm.
Ans.
Để p gửi một tin nhắn m1 với số thứ tự nhóm cụ thể 1 đến nhóm g1 và một tin nhắn m2 với số thứ tự cụ thể theo nhóm sự phối
hợp con số 1 đến tập đoàn g2 . (Các sự phối hợp con số là sống độc lập, kể từ đây nó Là khả thi vì hai thông báo có cùng số thứ
tự.) Bây giờ hãy xem xét quá trình q nằm trong giao điểm của g1 và g2 . Làm thế nào là q để đặt hàng m1 và m2 ? Nó không có
thông tin để xác định cái nào sẽ được gửi Đầu tiên.
Giải pháp là người gửi p đưa vào thông điệp của mình các số thứ tự mới nhất cho mỗi nhóm mà nó gửi . đến. Như vậy nếu P
gởi m1 trước m2 , m1 sẽ bao gồm < g1 , 1> và < g2 , 0> nhưng trái lại m2 sẽ bao gồm < g1 , 1> và < g2 , 1>. Quá trình q ở một
vị trí để biết rằng m1 sẽ được giao tiếp theo; nó cũng sẽ biết rằng nó đã bỏ lỡ một tin nhắn nếu nó nhận được m2 Đầu tiên.

Câu hỏi 193. Hãy chỉ ra rằng, nếu phát đa hướng cơ bản mà chúng ta sử dụng trong thuật toán của Hình 11.14 cũng được sắp
xếp theo thứ tự FIFO, thì phát đa hướng có thứ tự toàn bộ kết quả cũng được sắp xếp theo nguyên nhân. Có phải trường hợp bất
kỳ phát đa hướng nào được sắp xếp theo thứ tự FIFO và được sắp xếp hoàn toàn đều được sắp xếp theo nguyên nhân không?
Ans.
Chúng tôi chỉ ra rằng trật tự nhân quả đạt được đối với các trường hợp đơn giản nhất có thể có của mối quan hệ xảy ra trước đó;
trường hợp chung sau tầm thường.
Đầu tiên, giả sử p TO-multicast một thông báo m1 mà q nhận được; q sau đó thông báo TO-multicast m2 . Trình sắp xếp thứ tự
phải sắp xếp thứ tự m2 sau m1 , vì vậy mọi quy trình sẽ phân phối m1 và m2 theo thứ tự đó.
Thứ hai, giả sử p TO-multicast một tin nhắn m1 sau đó TO-multicast tin nhắn m2 . Vì phát đa hướng cơ bản được sắp xếp theo
thứ tự FIFO, trình sắp xếp thứ tự sẽ nhận m1 và m2 theo thứ tự đó; vì vậy mọi thành viên trong nhóm sẽ nhận được chúng theo
thứ tự đó.
Rõ ràng là kết quả nói chung là đúng, miễn là việc triển khai sắp xếp toàn bộ đảm bảo rằng số thứ tự của bất kỳ thông báo nào
được gửi lớn hơn số thứ tự của bất kỳ thông báo nào nhận được bởi quá trình gửi. Xem Florin & Toinard [1992].
[Florin & Toinard 1992] Florin, G. và Toinard , C. (1992). Một cách mới để thiết kế các giao thức phát đa hướng theo thứ tự
nhân quả và hoàn toàn . Đánh giá hệ điều hành, ACM, tháng 10 năm 1992.

Q 194. Đề xuất cách điều chỉnh giao thức phát đa hướng theo thứ tự nhân quả để xử lý các nhóm chồng chéo.
Ans.
Một tiến trình duy trì một dấu thời gian vectơ khác nhau Vg cho mỗi nhóm g mà nó thuộc về và gắn tất cả các dấu thời gian
vectơ của nó khi nó gửi một thông điệp.
Khi một quá trình p nhận được một tin nhắn dành cho nhóm g từ thành viên i của nhóm đó, nó sẽ kiểm tra, như trong nhóm đơn
trường hợp, cái đó Vg ( tin nhắn )[ tôi ] = Vg ( p )[ tôi ] + 1; cũng, tất cả các khác mục Trong các véc tơ dấu thời gian chứa
trong các thông điệp phải thì là ở ít hơn hơn hoặc bình đẳng đến p 's véc tơ dấu thời gian mục. Quá trình P giữ các thông điệp
Distributed Systems, Edition 3: Chapter 13 Solutions 2
Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
trên hàng đợi giữ lại nếu kiểm tra này không thành công, vì nó tạm thời thiếu một số thông báo đã xảy ra trước kiểm tra này.

Q 195. Khi thảo luận về thuật toán loại trừ lẫn nhau của Maekawa, chúng tôi đã đưa ra một ví dụ về ba tập hợp con của một bộ
ba quy trình có thể dẫn đến bế tắc. Sử dụng các tập hợp con này làm nhóm phát đa hướng để chỉ ra cách sắp xếp tổng theo cặp
không nhất thiết phải theo chu kỳ.
Ans.
Ba nhóm là G1 = { p1 , p2 }; G2 = { p2 , p3 }; G3 = { p1 , p3 }.
Thứ tự tổng theo cặp có thể hoạt động như sau: m1 được gửi tới G1 được gửi tại p2 trước khi m2 được gửi tới G2 ; m2 được gửi
tới p3 trước khi m3 được gửi tới G3 . Nhưng m3 được gửi tới p1 trước m1 . Do đó ta có thứ tự giao tuần hoàn m 1  m 2  m
3  m 1  Chúng tôi mong đợi từ một trật tự toàn cầu mà một chu kỳ như thế này không thể xảy ra.

Q 196. Xây dựng giải pháp phát đa hướng đáng tin cậy, hoàn toàn theo thứ tự trong một hệ thống đồng bộ, sử dụng phát đa
hướng đáng tin cậy và giải pháp cho vấn đề đồng thuận.
Ans.
Để phát đa hướng RTO (phát đa hướng đáng tin cậy, được sắp xếp hoàn toàn) một thông báo m , một quy trình sẽ đính kèm một
mã định danh duy nhất, được sắp xếp hoàn toàn cho m và R-phát đa hướng nó.
Mỗi quá trình Hồ sơ các bộ của thông điệp nó có R-giao và các bộ của tin nhắn nó có RTO-phân phối. Do đó , nó biết những tin
nhắn nào chưa được gửi theo RTO.
Từ thời gian đến thời gian nó đề xuất nó là bộ của chưa-RTO-phân phối tin nhắn như những thứ kia cái đó Nên thì là ở đã giao
hàng tiếp theo. Một chuỗi các lần chạy của thuật toán đồng thuận diễn ra, trong đó các đề xuất thứ k ( k = 1, 2, 3, ...) trong số tất
cả các quy trình được thu thập và một tập hợp thông báo quyết định duy nhất là kết quả.
Khi một quy trình nhận được quyết định đồng thuận thứ k , nó sẽ lấy giao điểm của giá trị quyết định và tập hợp các thông báo
chưa được gửi RTO của nó và gửi chúng theo thứ tự định danh của chúng, chuyển chúng đến bản ghi các thông báo mà nó có
RTO-phân phối.
Theo cách này, mọi quy trình đều gửi thông báo theo thứ tự nối chuỗi các kết quả đồng thuận. Từ các đoàn kết kết quả được
đến khác nhau Chính xác quy trình là giống hệt nhau, chúng tôi có một RTO phát đa hướng.

Q 197. Chúng tôi đã đưa ra một giải pháp cho sự đồng thuận từ một giải pháp cho phát đa hướng đáng tin cậy và được sắp xếp
hoàn toàn, liên quan đến việc chọn giá trị đầu tiên sẽ được gửi. Giải thích từ các nguyên tắc đầu tiên tại sao, trong một hệ thống
không đồng bộ, thay vào đó, chúng tôi không thể tìm ra giải pháp bằng cách sử dụng dịch vụ phát đa hướng đáng tin cậy nhưng
không được sắp xếp hoàn toàn và chức năng 'đa số'. (Lưu ý rằng, nếu chúng ta có thể, thì điều này sẽ mâu thuẫn với kết quả bất
khả thi của Fischer et al .!) Gợi ý: xem xét các quy trình chậm/thất bại.
Ans.
Nếu chúng ta đã sử dụng một phát đa hướng đáng tin cậy nhưng không được sắp xếp hoàn toàn, thì hàm đa số chỉ có thể được
sử dụng một cách có ý nghĩa nếu nó được áp dụng cho cùng một bộ giá trị. Nhưng, trong một hệ thống không đồng bộ, chúng ta
không thể biết phải đợi bao lâu để bộ của tất cả các giá trị – các nguồn của một còn thiếu thông điệp có thể thì là ở chậm hoặc
nó có thể có bị rơi. Đang chờ đợi đối với thông báo đầu tiên được gửi bởi một phát đa hướng được sắp xếp hoàn toàn đáng tin
cậy sẽ giải quyết vấn đề đó.

Q 198. Hãy chứng minh rằng có thể đạt được thỏa thuận byzantine đối với ba vị tướng, với một trong số họ bị lỗi, nếu các vị
tướng ký điện tử vào thông điệp của họ.
Ans.
Không tí nào trung úy có thể kiểm chứng các Chữ ký trên không tí nào thông điệp. Không trung úy có thể làm giả nữa Chữ ký.
Các các trung úy chính xác ký vào những gì họ từng nhận được và gửi cho nhau.
Một trung úy chính xác quyết định x nếu nó nhận được tin nhắn [ x ]( chỉ huy đã ký) và [[ x ](chỉ huy đã ký)](trung úy đã ký)
hoặc một tin nhắn có chữ ký của trung úy bị hỏng hoặc chữ ký của chỉ huy bị hỏng.
Mặt khác, nó quyết định một quá trình hành động mặc định (rút lui chẳng hạn).
Một Chính xác trung úy một trong hai nhìn các thích hợp chỉ huy Chữ ký trên hai khác nhau khóa học của hoạt động (Trong
trường hợp nào cả hai trung úy quyết định 'rút lui'); hoặc, nó nhìn thấy một chữ ký tốt trực tiếp từ người chỉ huy và một chữ ký
không phù hợp của người chỉ huy (trong trường hợp đó, nó quyết định bất cứ điều gì người chỉ huy đã ký để làm); hoặc nó
không thấy chữ ký của chỉ huy tốt (trong trường hợp đó cả hai trung úy đúng quyết định 'rút lui').
Trong trường hợp giữa, hoặc chỉ huy đã gửi một tuyên bố có chữ ký không phù hợp cho trung úy kia, hoặc trung úy kia có lỗi
Distributed Systems, Edition 3: Chapter 13 Solutions 2
Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
và giả vờ rằng anh ta đã nhận được một chữ ký không phù hợp. Trong trường hợp trước, cả hai đều đúng trung úy sẽ làm sao
cũng được các (mặc dù bị lỗi) chỉ huy kể lại một của họ đến làm Trong một đã ký thông điệp. Trong trường hợp thứ hai, trung
úy phù hợp làm những gì mà chỉ huy chính xác yêu cầu.

Chương 12 Giải bài tập


Q 199. TaskBag là một dịch vụ có chức năng cung cấp kho lưu trữ 'mô tả nhiệm vụ'. Nó cho phép các máy khách chạy trong
một số máy tính thực hiện song song các phần của phép tính. Một quy trình chính đặt các mô tả về các nhiệm vụ con của một
tính toán trong TaskBag và các quy trình worker lựa chọn nhiệm vụ từ các Túi nhiệm vụ và mang họ ngoài, trở về mô tả của kết
quả đến Túi nhiệm vụ . Master sau đó thu thập các kết quả và kết hợp chúng để tạo ra kết quả cuối cùng kết quả.
Dịch vụ TaskBag cung cấp các thao tác sau:
setTask cho phép khách hàng thêm mô tả nhiệm vụ vào túi;
takeTask cho phép khách hàng lấy các mô tả nhiệm vụ ra khỏi túi.
Một khách hàng đưa ra yêu cầu takeTask , khi một tác vụ không có sẵn nhưng có thể sẽ sớm có. Thảo luận về ưu điểm và
nhược điểm của các phương án sau:
(i) máy chủ có thể trả lời ngay lập tức, yêu cầu khách hàng thử lại sau;
(ii) làm cho hoạt động của máy chủ (và do đó là máy khách) đợi cho đến khi có tác vụ.
(iii) sử dụng gọi lại.
Ans.
Đây là một ứng dụng đơn giản của các ý tưởng về đồng bộ hóa các hoạt động của máy chủ. Một trong những dự án trong phần
Project Work dựa trên dịch vụ TaskBag .

Câu hỏi 203. Một mục dữ liệu mới được tạo như Z trong Bài tập 12.4 đôi khi được gọi là phantom . Từ quan điểm của giao dịch
U , Z lúc đầu không có và sau đó xuất hiện (như một bóng ma). Giải thích bằng một ví dụ về cách bóng ma có thể xảy ra khi tài
khoản bị xóa.
Ans.
Điểm trong Bài tập 12.4 là việc chèn một mục dữ liệu như Z không nên xen kẽ với các thao tác trên cùng một mục dữ liệu bởi
một giao dịch khác. Giả sử rằng chúng ta định nghĩa giao dịch V là: aBranch.delete (“Z”) và xem xét các xen kẽ sau của V và U
:

sau đó chúng tôi có một ma tại vì z Là ở đó tại Đầu tiên và sau đó biến mất. Nó có thể thì là ở cho xem (như Trong
Tập thể dục 12.10) rằng các xen kẽ này không tương đương theo trình tự.
Câu 209. Các hành quyết của giao dịch là nghiêm khắc nếu đọc và viết hoạt động trên một sự vật là trì hoãn cho đến khi tất cả các
giao dịch đã viết đối tượng đó trước đó đã được cam kết hoặc bị hủy bỏ. Giải thích cách các quy tắc khóa trong Hình 12.16 đảm
bảo thực thi nghiêm ngặt.
Ans.
Nếu một giao dịch trước đó đã ghi một mục dữ liệu, thì nó sẽ giữ các khóa của nó cho đến sau khi nó được
thực hiện, do đó, không có giao dịch nào khác có thể đọc hoặc ghi mục dữ liệu đó (đây là yêu cầu đối với
các lần thực thi nối tiếp).
Q 210. Mô tả tình huống không thể phục hồi có thể phát sinh như thế nào nếu các khóa ghi được giải phóng sau thao tác cuối
cùng của giao dịch nhưng trước cam kết của nó.
Ans.
Một sớm hơn Giao dịch có thể phóng thích nó là ổ khóa nhưng không phải làm, trong khi đó một sau Giao
dịch sử dụng các các đối tượng và cam kết. Sau đó, giao dịch trước đó có thể bị hủy bỏ. Giao dịch sau đó đã
thực hiện đọc bẩn và không thể khôi phục được vì nó đã được cam kết.

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Câu 211. Giải thích tại sao hành quyết là luôn luôn nghiêm khắc thậm chí nếu đọc ổ khóa là phát hành sau các
Cuối cùng hoạt động của một giao dịch nhưng trước khi cam kết của nó. Đưa ra phát biểu cải tiến của
Quy tắc 2 trong Hình 12.16.
Ans.
Việc thực thi nghiêm ngặt yêu cầu các thao tác đọc và ghi trên một mục dữ liệu bị trì hoãn cho đến khi tất cả các giao
dịch đã ghi mục dữ liệu đó trước đó được thực hiện hoặc bị hủy bỏ. Việc giữ một khóa ghi là đủ để bảo vệ Tương lai
giao dịch từ không nghiêm khắc tại vì chúng tôi là lo lắng chỉ có với Trước viết hoạt động.
Qui định 2: Khi nào các khách hàng chỉ ra cái đó các Cuối cùng hoạt động có đã xong (qua một lời yêu cầu đến làm
hoặc Huỷ bỏ), giải phóng khóa đọc. Giữ khóa ghi cho đến khi hoàn thành cam kết hoặc hủy bỏ.
Q 213. Xem xét các khóa phân cấp như minh họa trong Hình 12.26. Những ổ khóa nào phải được đặt khi cuộc hẹn Là giao đến
một ca thời gian Trong tuần w , ngày đ , tại thời gian, t ? Trong Gì gọi món Nên này ổ khóa được thiết lập? Thứ tự mà chúng
được phát hành có quan trọng không?
Khóa nào phải được đặt khi các khoảng thời gian cho mỗi ngày trong tuần w được xem?
Điều này có thể được thực hiện khi các khóa để chỉ định một cuộc hẹn cho một khoảng thời gian đã được thiết lập không?
Ans.
Bộ viết Khóa trên các ca thời gian t , ý định viết ổ khóa trên tuần w và ngày đ Trong tuần v . Các ổ khóa Nên được đặt từ
trên xuống ( tức là tuần w rồi ngày d rồi giờ t ). Thứ tự mở khóa rất quan trọng - chúng phải được mở từ dưới lên.
Khi nào tuần w Là đã xem như một trọn, một đọc Khóa Nên thì là ở bộ trên tuần v . Một ý định viết Khóa Là đã được đặt
vào tuần w (để chỉ định cuộc hẹn), khóa đọc phải đợi (xem Hình 12.27).
Câu hỏi 216. Hãy so sánh trình tự các hoạt động của các giao dịch T và U của Bài tập 12.8 có thể thực hiện được trong điều kiện
khóa hai pha (Bài tập 12.9) và trong điều khiển tương tranh lạc quan (Bài tập 12.16).
Ans.
Thứ tự xen kẽ được phép với khóa hai pha phụ thuộc vào thứ tự mà T và U truy cập vào i . Nếu T đầu tiên chúng ta nhận
được (b) và nếu U đầu tiên chúng ta nhận được (c) trong Bài tập 12.9.
Thứ tự của 12.9b cho khóa hai pha giống như 12.16 ( i ) điều khiển đồng thời lạc quan.
Thứ tự của 12.9c cho khóa hai pha giống như điều khiển đồng thời lạc quan của 12.16 (ii) nếu chúng tôi cho phép giao dịch
T khởi động lại sau khi hủy bỏ.
Trong ví dụ này, trình tự các thao tác giống nhau đối với cả hai phương pháp.
.
Câu 220. Trong đa phiên bản dấu thời gian đặt hàng, đọc hoạt động có thể truy cập mang tính thăm dò phiên bản của các đối
tượng. đưa ra một thí dụ đến buổi bieu diễn thế nào xếp tầng hủy bỏ có thể xảy ra nếu tất cả các đọc hoạt động là cho phép đến
tiến hành ngay.
Ans.
Câu trả lời cho Bài tập 12.21 đưa ra quy tắc đọc cho thứ tự dấu thời gian đa phiên bản . hoạt động đọc bị trì hoãn để đảm bảo
khả năng phục hồi. Trên thực tế , sự chậm trễ này cũng ngăn chặn các lần đọc bẩn và hủy bỏ theo tầng.
Bây giờ giả sử rằng các hoạt động đọc không bị trì hoãn, nhưng các lần xác nhận đó bị trì hoãn như sau để đảm bảo khả năng
phục hồi. Nếu một giao dịch, T đã quan sát một trong các đối tượng dự kiến của U , thì cam kết của T bị trì hoãn cho đến khi
U cam kết hoặc hủy bỏ (xem trang 503). Việc hủy bỏ xếp tầng có thể xảy ra khi U hủy bỏ vì T đã đọc sai và cũng sẽ phải hủy
bỏ.
Đến tìm thấy một thí dụ, nhìn vì một câu trả lời đến Tập thể dục 12.19 ở đâu một đọc hoạt động là trì hoãn (I E (c) hoặc (d)).
Xét sơ đồ (c) trong Bài tập 12.2. Với sự chậm trễ, T 's x : = read( i ) bị trì hoãn cho đến khi U cam kết hoặc hủy bỏ. Bây giờ
hãy xem xét việc cho phép T 's x : = read( i ) sử dụng phiên bản dự kiến của U ngay lập tức. Sau đó xem xét tình huống trong
đó T yêu cầu cam kết và U sau đó hủy bỏ. Lưu ý rằng yêu cầu cam kết của T bị trì hoãn cho đến khi kết quả của U được biết,
vì vậy tình huống có thể phục hồi, nhưng T đã thực hiện 'đọc bẩn' và phải bị hủy bỏ. Việc hủy bỏ theo tầng hiện có thể phát
sinh do một số giao dịch khác có thể đã quan sát các đối tượng dự kiến của T '.

Q 221. Ưu điểm và nhược điểm của thứ tự dấu thời gian đa phiên bản so với thứ tự dấu thời gian thông thường là gì?
Ans.
Thuật toán cho phép đồng thời nhiều hơn so với sắp xếp dấu thời gian của một phiên bản nhưng phát sinh thêm chi phí lưu trữ.
Thuận lợi:

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
đọc muộn thành công.
ghi được phép tiến hành ngay lập tức trừ khi chúng sẽ làm mất hiệu lực các lần đọc trước đó (việc ghi bởi một giao dịch có
dấu thời gian T i bị từ chối nếu một giao dịch có dấu thời gian T j đã đọc một mục dữ liệu có dấu thời gian ghi T k và T k < T i <
Đj ) .
Hạn chế:
Thuật toán yêu cầu lưu trữ nhiều phiên bản của từng đối tượng đã cam kết và để biết thông tin về dấu thời gian đọc và ghi của
từng phiên bản sẽ được sử dụng để thực hiện các quy tắc đọc và ghi. Trong trường hợp một phiên bản bị xóa, các thao tác đọc
sẽ bị từ chối và các giao dịch bị hủy bỏ.
Tập thể dục 13.15 trình diễn cái đó các thuật toán có thể cung cấp nhưng hơn đồng thời, tại các rủi ro của xếp tầng phá thai,
bằng cách cho phép các hoạt động đọc tiến hành ngay lập tức. Trong trường hợp này, để đảm bảo khả năng phục hồi, các yêu
cầu cam kết phải thì là ở trì hoãn cho đến khi không tí nào các hoàn thành (lời cam kết hoặc sự phá thai) của không tí nào Giao
dịch của ai mang tính thăm dò đối tượng đã được quan sát.

Q 222. Hãy so sánh trình tự các hoạt động của các giao dịch T và U của Bài tập 12.8 có thể thực hiện được trong điều kiện
khóa hai pha (Bài tập 12.9) và trong điều khiển tương tranh lạc quan (Bài tập 12.16).
Ans.
Thứ tự xen kẽ được phép với khóa hai pha phụ thuộc vào thứ tự mà T và U truy cập vào i . Nếu T đầu tiên chúng ta nhận được
(b) và nếu U đầu tiên chúng ta nhận được (c) trong Bài tập 12.9.
Thứ tự của 12.9b cho khóa hai pha giống như điều khiển đồng thời lạc quan 12.9 ( i ).
Các đặt hàng của 12.9c vì hai pha khóa Là các tương tự như 12.9 (ii) lạc quan đồng thời điều khiển nếu chúng tôi cho phép
giao dịch T khởi động lại sau phá thai.

Chương 13 Giải bài tập


Q 2 2 3 . Trong một biến thể phi tập trung của giao thức cam kết hai giai đoạn, những người tham gia giao tiếp trực tiếp với
một nữa thay vì của gián tiếp thông qua các điều phối viên. Trong Giai đoạn 1, các điều phối viên gửi nó là bỏ phiếu cho tất cả
những người tham gia. Trong Giai đoạn 2, nếu phiếu bầu của điều phối viên là Không , những người tham gia chỉ cần hủy bỏ
giao dịch; nếu nó Là Vâng , mỗi người tham gia gửi nó là bỏ phiếu đến các điều phối viên và các khác những người tham gia,
mỗi người quyết định kết quả theo phiếu bầu và thực hiện nó. Tính số tin nhắn và số vòng cần thực hiện. Ưu điểm và nhược
điểm của nó so với biến thể tập trung là gì?
Ans.
Trong cả hai trường hợp, chúng tôi xem xét trường hợp bình thường không có thời gian chờ. Trong phiên bản phi tập trung
của giao thức cam kết hai giai đoạn:
Số tin nhắn:
Giai đoạn 1: điều phối viên gửi phiếu bầu của mình cho N công nhân = N
Giai đoạn 2: mỗi người trong số N công nhân gửi phiếu bầu của mình cho ( N -1) công nhân khác + điều phối viên = N *( N -
1). Tổng = N * N .
Số vòng:
điều phối viên cho công nhân + công nhân cho người khác = 2 vòng.
Ưu điểm: số lượng vòng ít hơn so với giao thức cam kết hai pha thông thường yêu cầu 3. Nhược điểm: số lượng thông báo
nhiều hơn: N * N thay vì 3 N .

Q 224. Giao thức xác nhận ba pha có các phần sau:


Giai đoạn 1: giống như cam kết hai giai đoạn.
Giai đoạn 2: điều phối viên thu phiếu và ra quyết định; nếu là Không , nó sẽ hủy bỏ và thông báo cho những người tham gia
đã bình chọn Có ; nếu quyết định là Yes , nó sẽ gửi preCommit yêu cầu tất cả những người tham gia. những người tham gia đã
bình chọn Có , đợi một cam kết trước hoặc doAbort lời yêu cầu. Họ thừa nhận preCommit yêu cầu và thực hiện doAbort yêu
cầu.
Giai đoạn 3: điều phối viên thu thập các xác nhận. Khi tất cả được nhận, nó Cam kết và gửi
doCommit cho những người tham gia. người tham gia chờ một doCommit lời yêu cầu. Khi nó đến, họ Cam kết .
Giải thích làm thế nào giao thức này tránh được sự chậm trễ cho những người tham gia trong khoảng thời gian 'không chắc
Distributed Systems, Edition 3: Chapter 13 Solutions 3
Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
chắn' của họ do lỗi của điều phối viên hoặc những người tham gia khác. Giả sử rằng giao tiếp không thất bại.
Ans.
Trong giao thức cam kết hai giai đoạn: giai đoạn 'không chắc chắn' xảy ra do một công nhân đã bỏ phiếu đồng ý nhưng chưa
được thông báo kết quả. (Nó không còn có thể hủy bỏ đơn phương).
Trong các ba pha làm giao thức: các công nhân 'không chắc chắn' Giai đoạn kéo dài từ khi nào các người làm việc phiếu bầu
Vâng cho đến khi nó nhận được các Cam kết trước lời yêu cầu. Tại đây sân khấu, không khác người tham gia có thể có cam kết.
Vì vậy nếu một nhóm lao động phát hiện ra mình đều 'bất định' và không liên lạc được với điều phối viên, họ có thể đơn
phương quyết định bỏ việc.

Q 225. Giải thích cách thức giao thức cam kết hai giai đoạn cho các giao dịch lồng nhau đảm bảo rằng nếu giao dịch cấp cao
nhất được cam kết, tất cả các phần tử con phù hợp sẽ được cam kết hoặc hủy bỏ.
Ans.
Bất cứ khi nào một giao dịch lồng nhau được thực hiện, nó sẽ báo cáo trạng thái của nó và trạng thái của các giao dịch con của
nó cho cha mẹ của nó. Do đó , khi một giao dịch đi vào trạng thái đã cam kết, nó có một danh sách chính xác các hậu duệ đã
cam kết của nó. Do đó , khi giao dịch cấp cao nhất bắt đầu giao thức cam kết hai giai đoạn, danh sách các hậu duệ đã cam kết
của nó là chính xác. Nó kiểm tra các hậu duệ và đảm bảo rằng chúng vẫn có thể cam kết hoặc phải hủy bỏ. Có thể có các nút
chạy hậu duệ không thành công không được bao gồm trong giao thức cam kết hai giai đoạn. Chúng sẽ khám phá kết quả bằng
cách truy vấn giao dịch cấp cao nhất.

Q 226. Cho ví dụ về sự xen kẽ của hai giao dịch tương đương tuần tự tại mỗi máy chủ nhưng không tương đương tuần tự trên
toàn cầu.
Ans.
Lịch trình tại máy chủ X :
T : Đọc( A ); Viết( A ); U : Đọc ( A ); Viết( A ); nối tiếp tương đương với T trước U
Lịch trình tại Máy chủ Y :
U : Đọc( B ); Viết( B ); T : Đọc( B ); Viết( B ); nối tiếp tương đương với U trước T
Điều này không tương đương nối tiếp trên toàn cục vì có một chu trình T  U  T. _

Câu 227. Các getDecision thủ tục xác định Trong Nhân vật 13.4 Là cung cấp chỉ có qua điều phối viên. Định nghĩa một phiên
bản mới của getDecision được cung cấp bởi những người tham gia để những người tham gia khác sử dụng, những người cần
lấy quyết định khi điều phối viên không có mặt.
Giả sử rằng bất kỳ người tham gia tích cực nào cũng có thể thực hiện getDecision yêu cầu cho bất kỳ người tham gia tích cực
nào khác. Điều này có giải quyết được vấn đề chậm trễ trong khoảng thời gian 'không chắc chắn' không? Giải thich câu trả lơi
của bạn.
Tại thời điểm nào trong giao thức cam kết hai giai đoạn, điều phối viên sẽ thông báo cho những người tham gia về danh tính
của những người tham gia khác (để kích hoạt giao tiếp này)?
Ans.
Chữ ký cho phiên bản mới là:
getDecision (trans) -> Có/Không/Không chắc chắn
Người thợ trả lời như sau:
Nếu nó đã nhận được doCommit hoặc doAbort từ điều phối viên hoặc nhận kết quả qua nhân viên khác, sau đó trả lời Có hoặc
Không;
nếu chưa biểu quyết thì trả lời Không (người lao động có thể bỏ ngang vì chưa đạt được quyết định); nếu nó không chắc chắn,
hãy trả lời không chắc chắn.
Điều này không giải quyết được vấn đề chậm trễ trong thời gian 'không chắc chắn'. Nếu tất cả những người lao động hiện đang
hoạt động đều không chắc chắn, họ sẽ vẫn không chắc chắn.
Điều phối viên có thể thông báo cho worker về danh tính của các worker khác khi nó gửi canCommit
lời yêu cầu.

Q 228. Mở rộng định nghĩa về khóa hai pha để áp dụng cho các giao dịch phân tán. Giải thích làm thế nào điều này được đảm
bảo bởi các giao dịch phân tán bằng cách sử dụng khóa cục bộ hai pha nghiêm ngặt.

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Ans.
Khóa hai pha trong một giao dịch phân tán yêu cầu nó không thể có được khóa tại bất kỳ máy chủ nào sau khi nó đã giải
phóng khóa tại bất kỳ máy chủ nào.
Một khách hàng Giao dịch sẽ không phải lời yêu cầu làm (hoặc hủy bỏ ) (tại các điều phối viên) cho đến khi sau nó có thực
hiện tất cả các nó là yêu cầu và có phản hồi từ các máy chủ khác nhau có liên quan, khi đó tất cả các khóa sẽ được lấy. Sau đó,
điều phối viên gửi cam kết hoặc hủy bỏ đến các máy chủ khác sẽ giải phóng các khóa. Do đó, tất cả các khóa được mua trước và
sau đó tất cả chúng được giải phóng, đó là khóa hai pha

Câu hỏi 229. Giả sử rằng khóa hai pha nghiêm ngặt đang được sử dụng, hãy mô tả các hành động của giao thức xác nhận hai
pha liên quan như thế nào đến các hành động kiểm soát đồng thời của từng máy chủ riêng lẻ. Phát hiện bế tắc phân tán phù hợp
như thế nào?
Ans.
Mỗi máy chủ riêng lẻ đặt khóa trên các mục dữ liệu của riêng mình theo yêu cầu mà nó nhận được, khiến các giao dịch phải
chờ khi những máy khác giữ khóa.
Khi điều phối viên trong giao thức cam kết hai pha gửi doCommit hoặc doAbort yêu cầu một giao dịch cụ thể, mỗi máy chủ
riêng lẻ (bao gồm cả điều phối viên) trước tiên thực hiện hành động cam kết hoặc hủy bỏ và sau đó giải phóng tất cả các khóa
cục bộ do giao dịch đó nắm giữ.
(Người lao động ở trạng thái không chắc chắn có thể giữ khóa trong một thời gian rất dài nếu điều phối viên không thành
công)
Chỉ các giao dịch đang chờ khóa mới có thể tham gia vào các chu kỳ bế tắc. Khi một giao dịch được đang chờ khóa, nó vẫn
chưa đến được yêu cầu cam kết của máy khách, do đó, một giao dịch trong chu kỳ bế tắc không thể tham gia vào giao thức cam
kết hai giai đoạn.
Khi một giao dịch bị hủy bỏ để phá vỡ một chu kỳ, bộ điều phối sẽ được thông báo bởi bộ phát hiện bế tắc. Điều phối viên sau
đó gửi doAbort đến người lao động.

Q 230. Một máy chủ sử dụng thứ tự dấu thời gian để kiểm soát đồng thời cục bộ. Những thay đổi nào phải được thực hiện để
điều chỉnh nó để sử dụng với các giao dịch phân tán? Trong những điều kiện nào có thể lập luận rằng giao thức cam kết hai pha
là dư thừa với thứ tự dấu thời gian?
Ans.
Dấu thời gian vì địa phương đồng thời điều khiển là chỉ địa phương quầy. Nhưng mà vì phân phối giao dịch, dấu thời gian tại
các máy chủ khác nhau phải có thứ tự toàn cầu đã được thống nhất. Ví dụ: chúng có thể được tạo dưới dạng ( dấu thời gian cục
bộ, id máy chủ) để làm cho chúng khác nhau. Dấu thời gian cục bộ phải được đồng bộ hóa gần đúng giữa các máy chủ.
Với dấu thời gian đặt hàng, một Giao dịch có thể thì là ở hủy bỏ sớm tại một của các may chủ qua các đọc hoặc viết qui định,
trong đó trường hợp các Huỷ bỏ kết quả Là trả lại đến các khách hàng. Nếu một người phục vụ tai nạn trước các khách hàng có
xong tất cả các nó là hành động tại máy chủ đó, khách hàng sẽ nhận ra rằng giao dịch đã thất bại. Trong cả hai trường hợp này,
khách hàng nên gửi abortTransaction đến điều phối viên.
Khi khách hàng yêu cầu cam kết , tất cả các máy chủ sẽ có thể cam kết, miễn là chúng không bị lỗi sau thao tác cuối cùng trong
giao dịch.
Các hai pha làm giao thức có thể thì là ở được xem xét dư thừa Dưới các các điều kiện cái đó ( tôi ) may chủ là giả định làm
của chúng thay đổi kiên trì trước trả lời đến các khách hàng sau mỗi thành công hoạt động và (ii) các khách hàng không cố gắng
thực hiện các giao dịch đã thất bại.

Câu 231. Cân nhắc phân phối lạc quan đồng thời điều khiển Trong cái mà mỗi người phục vụ thực hiện địa phương xác thực
ngược tuần tự (nghĩa là chỉ có một giao dịch trong giai đoạn xác thực và cập nhật cùng một lúc), liên quan đến câu trả lời của
bạn cho Bài tập 13.4. Mô tả các kết quả có thể xảy ra khi hai giao dịch nỗ lực đến làm. Gì Sự khác biệt làm nó làm nếu các may
chủ sử dụng song song Thẩm định?
Ans.
Tại người phục vụ X , t đi trước bạn . Tại người phục vụ Y , bạn đi trước T. _ Này là không phải nối tiếp tương đương tại vì ở
đó là Đọc/Ghi xung đột.
T bắt đầu xác thực tại máy chủ X và vượt qua, nhưng chưa được cam kết. Nó yêu cầu xác thực tại máy chủ Y . Nếu U chưa bắt
đầu xác thực, Y có thể xác thực T . Sau đó, U xác nhận sau T (ở cả hai). Tương tự cho T sau U .
T bắt đầu xác thực tại máy chủ X và vượt qua, nhưng chưa được cam kết. Nó yêu cầu xác thực tại máy chủ Y . Nếu U đã bắt
đầu xác thực, T sẽ bị chặn. Khi U yêu cầu xác thực tại X , nó cũng sẽ bị chặn. Thế là bế tắc.

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Nếu sử dụng xác thực song song, T và U có thể được xác thực (theo các thứ tự khác nhau) tại hai máy chủ, điều này là sai.
Q 233. Hãy xem xét thuật toán đuổi theo cạnh (không có ưu tiên). Đưa ra các ví dụ để chứng minh rằng nó có thể phát hiện
các bế tắc ảo.
Ans.
Giao dịch U , V và W thực hiện các thao tác trên một mục dữ liệu tại mỗi máy chủ X , Y và Z theo thứ tự sau:
Bạn nhận được mục dữ liệu tại Y
V lấy mục dữ liệu tại X và sau đó chặn tại Y . W lấy mục dữ liệu tại z
U chặn tại Y . khối W tại X . V tắt tại Y
Các bàn phía dưới trình diễn số ba may chủ X , Y và Z , các giao dịch họ điều phối, các người nắm giữ và người yêu cầu các
mục dữ liệu của họ và các mối quan hệ chờ đợi tương ứng trước V hủy bỏ:

X (điều phối viên của : V ) Y (điều phối viên của: U ) Z (điều phối viên của: W )
được tổ chức bởi: V được được tổ chức bởi: U được yêu được tổ chức bởi: W được yêu cầu
yêu cầu bởi: W cầu bởi: V bởi: U
W  V (bị chặn tại Y ) V  U (bị chặn tại Z ) U  W (bị chặn tại X )

Bây giờ hãy xem xét các bản thăm dò được gửi bởi ba máy chủ:
Tại máy chủ X : W  V (bị chặn tại Y ); thăm dò < W  V > gửi đến Y ; sau đó
Tại Y : thăm dò < W  V > nhận được; quan sát V  U (bị chặn tại Z ), vì vậy thêm vào đầu dò để có được < W V  U >
và gửi nó đến Z .
Khi nào V hủy bỏ tại Y ; Y kể X - các điều phối viên của V , nhưng V có không phải đã đến thăm Z , vì thế z sẽ không phải thì
là ở kể lại Về các sự thật là V đã phá thai!
Tại Z : thăm dò < W  V  bạn > Là nhận; z quan sát bạn  W và ghi chú các đi xe đạp W V U  W và như một kết
quả phát hiện bế tắc ảo. Nó chọn một nạn nhân, (có lẽ không V ).

Q 234. Một máy chủ quản lý các đối tượng a 1 , a 2 ,... một n . Máy chủ cung cấp hai hoạt động cho nó khách hàng:
Read ( i ) trả về giá trị của a i Write( i , Value) gán Giá trị cho a i
Các giao dịch T , U và V được định nghĩa như sau:
T: x= Đọc ( i ); Viết( j, 44);
U : Viết( i , 55); Viết(j, 66);
V : Viết( k, 77);Viết(k, 88);
Mô tả các thông tin bằng văn bản đến các đăng nhập tập tin trên thay mặt của này số ba giao dịch nếu nghiêm khắc hai pha
khóa là Trong sử dụng và bạn mua lại một tôi và một j trước T. _ Mô tả thế nào các sự hồi phục người quản lý sẽ sử dụng đây
thông tin để phục hồi các các hiệu ứng của T , bạn và V khi nào các người phục vụ Là thay thế sau một tai nạn. Gì Là các tầm
quan trọng của các thứ tự của các mục cam kết trong tệp nhật ký?
Ans.
Khi giao dịch U có được j trước tiên, nó sẽ cam kết trước và các mục nhập của giao dịch T theo sau các mục nhập của U . Để
đơn giản, chúng tôi hiển thị các mục của giao dịch V sau các mục của giao dịch T .

P 0 : ... P 1 : Số liệu: i P 2 : Dữ liệu: j P 3 : Xuyên: U P 4 : Xuyên: U


55 66 chuẩn bị làm
<i,P1>
<j, P 2 > P 0
P3 ; _
P 5 : Dữ liệu: j P 6 : Xuyên: T P 7 : Xuyên: T P 8 : Số liệu: k P 9 : Xuyên : V
44 chuẩn bị làm 88 chuẩn bị
<j, P 5 > P 4 < k, P 8 >
P6 ; _ trang 7
P 10 : Xuyên : V
làm
trang 9
Distributed Systems, Edition 3: Chapter 13 Solutions 3
Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Sơ đồ tương tự như hình 13.9. Nó hiển thị thông tin được đặt tại các vị trí P 0 , P 1 , ... P 10 trong tệp nhật ký.
Khi khôi phục, trình quản lý khôi phục đặt các giá trị mặc định trong các mục dữ liệu là 1... . một n . Sau đó, nó bắt đầu ở cuối
tệp nhật ký (tại vị trí P 10 ). Nó thấy V đã cam kết, tìm danh sách ý định của P 9 và V < k,P 8 > và khôi phục k = 88. Sau đó, nó
quay lại P 7 (T cam kết) , quay lại P 6 cho danh sách ý định của T < j,P 5 > và khôi phục a j =44. Sau đó, nó quay lại P 4 ( U
commit ), quay lại P 3 cho danh sách ý định của U < i,P 1 ><j, P 2 > . Nó bỏ qua mục nhập cho j vì nó có đã sẵn sàng đã phục
hồi, nhưng nó được i = 55 . Các giá trị của các khác dữ liệu mặt hàng là tìm sớm hơn Trong các đăng nhập tập tin hoặc trong
một trạm kiểm soát.
Thứ tự của các mục nhập cam kết trong tệp nhật ký phản ánh thứ tự các giao dịch đã cam kết. Nhiều giao dịch gần đây đến sau
những giao dịch trước đó. Quá trình khôi phục bắt đầu từ cuối, lấy ảnh hưởng của các giao dịch gần đây nhất trước tiên.

Q235. Việc nối thêm một mục nhập vào tệp nhật ký là nguyên tử, nhưng các hoạt động nối thêm từ các giao dịch khác nhau có
thể được xen kẽ. Điều này ảnh hưởng như thế nào đến câu trả lời cho Bài tập 13.12?
Ans.
Vì không có xung đột giữa các hoạt động của giao dịch V và của T và U , các mục nhật ký do giao dịch V có thể thì là ở đan
xen với những thứ kia quá hạn đến giao dịch t và bạn . Trong tương phản, các mục quá hạn đến t và U không thể xen kẽ vì các
khóa trên i và a j đảm bảo rằng U đứng trước T. _

Các giao dịch T , U và V của Bài tập 13.12 sử dụng khóa hai pha nghiêm ngặt và các yêu cầu của chúng được xen kẽ như sau:

t bạn V
x = Đọc( i );
Viết( k, 77);
Viết( i , 55)
Viết( j, 44)
Viết(k,88)
Viết( j, 66)

Câu 236. Giả sử cái đó các sự hồi phục người quản lý nối thêm các dữ liệu lối vào tương ứng đến mỗi Viết hoạt động đến các
tệp nhật ký ngay lập tức thay vì của đang chờ đợi cho đến khi các chấm dứt của các Giao dịch, mô tả các thông tin bằng văn
bản đến các tệp nhật ký thay mặt cho các giao dịch T , U và V . Viết sớm có ảnh hưởng đến tính chính xác của quy trình khôi
phục không? Những lợi thế và bất lợi của việc viết sớm là gì?
Ans.
Khi T có được khóa đọc trên a i , U 's Write(i,55) đợi cho đến khi T cam kết và giải phóng khóa:

P 3 :Trans : T
P 1 : Số liệu : k P 2 :Dữ liệu : j chuẩn bị P 4 : Số liệu : k
P 0 : ...
77 44 <j, P 2 > P 0 88

P5 : Xuyên : V P 6 : Xuyên: T P7 : Xuyên : V


chuẩn bị làm làm P 8 :Dữ liệu : tôi P 9 : Dữ liệu: j
< k, P 4 > 55; 66
trang 3 trang 5 trang 6
P 10 : Xuyên: U P11: Xuyên: U
chuẩn bị làm
< tôi, tr 8 >
< j, P 9 >
trang 7 trang 10

Chúng tôi đã chỉ ra khả năng xen kẽ của các mục nhập Write(k,88) và chuẩn bị của V giữa các mục nhập đã chuẩn bị và cam
kết của T. Viết sớm không ảnh hưởng đến tính chính xác của quy trình khôi phục vì các mục nhập cam kết phản ánh thứ tự các
giao dịch đã được cam kết.

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Nhược điểm của việc viết sớm: một giao dịch có thể bị hủy bỏ sau khi các mục đã được viết, do bế tắc. Cũng thế có thể có các
mục nhập trùng lặp (như k = 77 và k = 88) nếu cùng một mục dữ liệu được ghi hai lần bởi cùng một giao dịch.
Ưu điểm của việc viết sớm: cam kết giao dịch nhanh hơn.

Câu hỏi 237. Các giao dịch T và U được chạy với kiểm soát đồng thời đặt hàng dấu thời gian. Mô tả thông tin được ghi vào tệp
nhật ký thay mặt cho T và U , cho phép thực tế là U có dấu thời gian muộn hơn T và phải đợi để cam kết sau T. Tại sao điều
cần thiết là các mục cam kết trong đăng nhập tập tin Nên thì là ở ra lệnh qua dấu thời gian? Mô tả các hiệu ứng của sự hồi
phục nếu các người phục vụ tai nạn
(i) giữa hai lần Cam kết và (ii) sau cả hai lần họ.

TU
x= Đọc( i );
Viết( i , 55);
Viết( j, 66); Làm
Viết( j, 44); Làm

Distributed Systems, Edition 3: Chapter 13 Solutions 3


Last updated: 21 July 2000 11:44 am ©George Coulouris, Jean Dollimore and Tim Kindberg 2000
Q238. Những lợi thế và bất lợi của việc viết sớm với thứ tự dấu thời gian là gì?
Ans.
Dấu thời gian của T và U được đặt trong tệp khôi phục. Gọi chúng là t ( T ) và t ( U ), trong đó t ( T )< t ( U ).
P 4 :Trans : t( U )
chuẩn bị
P 1 : Số liệu: i 55 P 2 : Dữ liệu: j 66 P 3 : Dữ liệu: j 44
P 0 : ... < tôi, P 1 >
< j, P 2 >
P0
P 5 : Chuyển : t( P 6 :Trans : t( T ) P 7 : Chuyển đổi: P 8 : Chuyển đổi:
U) chuẩn bị t( T ) t( U )
chờ đợi làm làm
làm < j, P 4 >
trang 4 trang 5 trang 6 trang 7
Mục nhập tại P 5 cho thấy rằng U đã cam kết, nhưng phải được đặt hàng sau T . Nếu giao dịch T hủy bỏ hoặc máy chủ không
thành công trước khi T cam kết, mục nhập này cho biết rằng U đã cam kết.
Điều cần thiết là các mục cam kết trong tệp nhật ký phải được sắp xếp theo dấu thời gian vì quá trình khôi phục hoạt động
ngược lại với tệp nhật ký. Ảnh hưởng của các giao dịch sau này phải ghi đè lên ảnh hưởng của các giao dịch trước đó.
Tác dụng phục hồi:
(i) nếu máy chủ gặp sự cố giữa hai lần xác nhận, chúng tôi sẽ mất mục tại P 8 , nhưng chúng tôi có P 6 : Trans t(U) đang chờ
đến cam kết . Giao dịch bạn có thể thì là ở cam kết như các Giao dịch nó chờ đợi vì có một trong hai cam kết hoặc nếu nó
chưa được cam kết, nó sẽ bị hủy bỏ.
(ii) nếu máy chủ gặp sự cố sau cả hai lần xác nhận, cả hai sẽ được khôi phục.
Ưu điểm của việc viết sớm với thứ tự dấu thời gian là cam kết nhanh hơn. Các giao dịch luôn có thể cam kết nếu chúng đạt
được điều đó (khách hàng không hủy bỏ chúng). Có vẻ như không có bất kỳ nhược điểm quan trọng.

Q 239.. Các giao dịch T và U trong Bài tập 13.15 được chạy với điều khiển tương tranh lạc quan bằng cách sử dụng xác thực
ngược và khởi động lại bất kỳ giao dịch nào không thành công. Thay mặt họ mô tả thông tin được ghi vào tệp nhật ký. Tại
sao điều cần thiết là các mục cam kết trong tệp nhật ký phải được sắp xếp theo số giao dịch? Làm thế nào là bộ ghi của các
giao dịch đã cam kết được trình bày trong tệp nhật ký?
Ans.

P 3 : Trans: T U
P 4 : Trans: T U
chuẩn bị
P 1 : Số liệu: i 55 P 2 : Dữ liệu: j 66 cam on
P 0 : ... < tôi, P 1 >
< j, P 2 >
trang 3
P0
P 6 : Xuyên T T P 7 : Xuyên T T
P 5 : Dữ liệu: j 44 chuẩn bị làm
< j, P 4 >
trang 5 trang 6
Số giao dịch chứ không phải số nhận dạng giao dịch (hoặc dấu thời gian) được đưa vào tệp khôi phục sau giao dịch có thông qua
nó là Thẩm định. bạn vượt qua Thẩm định tại vì nó có không đọc hoạt động. Giả sử bạn Là được cung cấp số giao dịch T U .
Giao dịch T không xác thực được vì tập đọc { i } của nó trùng với tập Viết của U bộ
{ i,j }. T được khởi động lại sau U . Nó vượt qua xác thực với số giao dịch T T . trong đó T T > T U
Nó Cần thiết cái đó các làm mục Trong các đăng nhập tập tin Nên thì là ở ra lệnh qua Giao dịch con số tại vì số giao dịch phản
ánh các gọi món Trong cái mà giao dịch là cam kết tại các người phục vụ. Sự hồi phục nhận giao dịch từ mới nhất đến cũ
nhất bằng cách đọc ngược tệp nhật ký.
Các bộ ghi được thể hiện trong tệp nhật ký trong các mục đã chuẩn bị.

3
Q 240. Giả sử rằng điều phối viên của một giao dịch gặp sự cố sau khi nó đã ghi lại mục nhập danh sách ý định nhưng trước khi
ghi lại danh sách người tham gia hoặc gửi canCommit ? yêu cầu. Mô tả cách những người tham gia giải quyết tình huống.
Điều phối viên sẽ làm gì khi nó phục hồi? Sẽ tốt hơn nếu ghi lại danh sách người tham gia trước mục nhập danh sách ý định?
Ans.
Vì điều phối viên là máy chủ duy nhất nhận closeTransaction yêu cầu từ khách hàng, nhân viên sẽ không biết giao dịch đã kết
thúc, nhưng họ có thể hết thời gian chờ và đơn phương quyết định hủy bỏ giao dịch (xem trang 521-3). Họ được phép làm
điều này vì họ chưa bỏ phiếu. Khi điều phối viên phục hồi, nó cũng hủy bỏ giao dịch.
Một lợi thế rõ ràng của việc ghi lại danh sách nhân viên sớm hơn (trước khi điều phối viên không thành công) là nó có thể được
sử dụng để thông báo cho nhân viên khi điều phối viên phục hồi, nhằm tránh việc nhân viên phải hết thời gian chờ. Không
may công nhân không thể tránh xa các cần vì hết giờ tại vì các điều phối viên có thể không phải hồi phục vì một thời gian rất
dài.

Q241. Xem xét giao dịch phân tán T trong Hình 13.3. Mô tả thông tin liên quan đến giao dịch T sẽ được ghi vào tệp nhật ký tại
mỗi máy chủ nếu giao thức cam kết hai giai đoạn được hoàn thành và T là cam kết.
Giả sử rằng máy chủ BranchY treo khi 'không chắc chắn': điều này có ảnh hưởng đến tiến độ của BranchX không và Chi
nhánhZ ? Mô tả sự phục hồi tại BranchY liên quan đến giao dịch T ; trách nhiệm của BranchX là gì đối với việc thu hồi tại
BranchY ?
Giả sử rằng BranchX gặp sự cố sau khi gửi yêu cầu bỏ phiếu, nhưng BranchY và Chi nhánhZ vẫn đang hoạt động: mô tả ảnh
hưởng trên ba nhật ký và mô tả sự phục hồi của BranchX .
13.18 Đáp. .
Mỗi máy chủ sẽ có tệp nhật ký riêng. Chúng được hiển thị trong các hàng của bảng dưới đây. Chúng tôi giả định rằng số dư của
A , B , C và D ban đầu là 100 đô la, 200 đô la, 300 đô la và 400 đô la.
Chi P 2 : Xuyên: P 3 : Điều phối P 4 : Xuyên: T P 5 : Xuyên:
nhánhX : T viên : T cam kết T
P 1 : Dữ liệu: chuẩn bị công xong
P 0 ... A
<A,P1> nhân:
96
BranchY trang 3
P0 Chi trang 4
nhánhZ
trang 2
chi P 2 : Xuyên: P 3 : Công P 4 : Xuyên: T P 5 :Trans : T
nhánhY : P 0 ... P 1 : Dữ liệu: T nhân : T không chắc cam kết
B chuẩn bị điều phối chắn
197 <B,P1> viên:
trang 4
P0 BranchX trang 3
trang 2
Chi P 3 : Xuyên: T P 4 : Công P 5 : Xuyên: P 6 : Xuyên T
nhánhZ : chuẩn bị nhân : T T :
P 0 ... P 1 : Dữ liệu: P 2 :Dữ liệu : điều phối không chắc cam kết
C D <C,P1>
viên: chắn
304 403 <D,P2>
P0 BranchX
trang 5
trang 3 trang 4

Nếu máy chủ BranchY sự cố khi 'không chắc chắn' điều này sẽ không ảnh hưởng đến BranchX và Chi nhánhZ bởi vì tất cả các máy
chủ đã bỏ phiếu đồng ý và điều phối viên có thể quyết định thực hiện giao dịch. Nó gửi DoCommit đến chi nhánhY (không trả lời)
và BranchZ mà làm.
Khi chi nhánhY phục hồi, mục nhập không chắc chắn T sẽ được tìm thấy. Một getDecision yêu cầu sẽ được gửi đến BranchX cái
mà sẽ báo chi nhánhY cái đó các Giao dịch có cam kết. Các nhiệm vụ của Chi nhánhX Là đến ghi lại kết quả của T cho đến khi nó
nhận được xác nhận từ tất cả các máy chủ (bao gồm cả BranchY ). Nó sẽ không ghi lại T done cho đến khi trường hợp này xảy ra,

3
trong khi đó nó sẽ không xóa T đã cam kết nếu việc kiểm tra diễn ra nơi.
Nếu Chi nhánhX tai nạn sau gửi ngoài các bỏ phiếu yêu cầu, nhưng chi nhánhY và Chi nhánhZ là còn tích cực sau đó chi nhánhY
và Chi nhánhZ sẽ trả lời có và trở nên không chắc chắn . Khi NhánhX phục hồi nó được chuẩn bị và sẽ quyết định hủy bỏ giao dịch
và sẽ thông báo cho hai máy chủ khác. Cả ba sẽ ghi T aborted trong của họ khúc gỗ.

Chương 14 Giải bài tập


Q 242. Ba máy tính cùng nhau cung cấp một dịch vụ nhân bản. Các nhà sản xuất tuyên bố rằng mỗi máy tính có thời gian trung
bình giữa các lần hỏng hóc là năm ngày; một lỗi thường mất bốn giờ để sửa chữa. Tính khả dụng của dịch vụ sao chép là gì?
Ans.
Xác suất một máy tính riêng lẻ bị hỏng là 4 /( 5*24 + 4) ~ 0,03. Giả sử máy không phụ thuộc vào lỗi, do đó, tính khả dụng là 1 –
0,03 3 = 0,999973.

Q 243. Giải thích tại sao máy chủ đa luồng có thể không đủ tiêu chuẩn là máy trạng thái.
Ans.
Thứ tự mà các hoạt động được áp dụng trong một máy chủ như vậy có thể khác với thứ tự mà chúng được bắt đầu. Điều này là do
các hoạt động có thể bị trì hoãn khi chờ đợi một số tài nguyên khác và về nguyên tắc, chính sách lập lịch trình tài nguyên có thể đảo
ngược thứ tự của hai hoạt động.

Câu 244. Trong một đa người dùng trò chơi, các người chơi di chuyển số liệu vòng quanh một phổ thông sân khấu. Các tiểu bang
của các trò chơi Là sao chép tại máy trạm của người chơi và tại máy chủ, nơi chứa các dịch vụ kiểm soát tổng thể trò chơi, chẳng
hạn như phát hiện va chạm. Các bản cập nhật được phát đa hướng cho tất cả các bản sao.
(i) Các nhân vật có thể ném đạn vào nhau và một cú đánh sẽ khiến người nhận không may bị suy nhược trong một thời gian giới
hạn. Loại đặt hàng cập nhật nào được yêu cầu ở đây? Gợi ý: xem xét các sự kiện 'ném', 'va chạm' và 'hồi sinh'.
(ii) Trò chơi kết hợp các thiết bị ma thuật mà người chơi có thể nhặt được để hỗ trợ họ. Loại đặt hàng có nên được áp dụng cho
hoạt động nhận thiết bị không?
Ans.
i) Sự kiện va chạm giữa đường đạn và hình vẽ, và sự kiện người chơi bị suy nhược (mà chúng ta có thể cho rằng được thể hiện
bằng hình ảnh) sẽ xảy ra theo thứ tự nhân quả. Hơn nữa, những thay đổi Trong các vận tốc của các nhân vật và các đạn sự đuổi đánh
nó Nên thì là ở nhân quả ra lệnh. Giả định cái đó máy trạm tại cái mà các đạn là đưa ra thường xuyên thông báo các đạn của tọa độ,
và cái đó máy trạm của người chơi tương ứng với hình thường xuyên thông báo tọa độ của hình và thông báo tình trạng suy nhược
của hình. Những thông báo này nên được xử lý theo thứ tự nhân quả. (Người đọc có thể quan tâm đến việc nghĩ ra các cách khác để
tổ chức các chế độ xem nhất quán tại các máy trạm khác nhau.)
ii) Nếu hai người chơi di chuyển để nhặt một quân cờ ít nhiều cùng một lúc, thì chỉ một người thành công và danh tính của người
chơi thành công phải được thống nhất ở tất cả các máy trạm. Do đó tổng đặt hàng là yêu cầu.
Các phần lớn hứa hẹn ngành kiến trúc vì một trò chơi như là như đây Là một ngang nhau tập đoàn của trò chơi quy trình, một tại
mỗi máy trạm của người chơi. Đây Là các ngành kiến trúc phần lớn rất có thể đến gặp các thời gian thực cập nhật Lan truyền yêu
cầu; nó cũng là mạnh mẽ chống lại các thất bại của không tí nào một trạm làm việc (giả định cái đó tại ít nhất hai người chơi là đang
chơi tại các cùng một lúc).

Q 245. Một bộ định tuyến tách tiến trình p khỏi hai tiến trình khác, q và r , không thành công ngay sau khi p khởi tạo đa tuyến của
thông báo m . Nếu hệ thống giao tiếp nhóm là xem-đồng bộ, hãy giải thích điều gì xảy ra với p tiếp theo.
Ans.
Quá trình p phải nhận được một chế độ xem nhóm mới chỉ chứa chính nó và nó phải nhận được thông báo mà nó đã gửi. Câu hỏi
đặt ra là: các sự kiện này nên được gửi đến p theo thứ tự nào?.
Nếu P nhận các thông điệp Đầu tiên, sau đó cái đó sẽ kể P cái đó q và r nhận các thông điệp; nhưng các câu hỏi ngụ ý rằng họ đã
không nhận được nó. Vì thế p phải nhận chế độ xem nhóm Đầu tiên.

Q246.Bạn là được một tập đoàn liên lạc hệ thống với một Tổng cộng ra lệnh phát đa hướng hoạt động, và một thất bại máy dò. Có
thể xây dựng giao tiếp nhóm đồng bộ dạng xem chỉ từ các thành phần này không?
Ans.
Nếu phát đa hướng là đáng tin cậy, có. Sau đó, chúng ta có thể giải quyết sự đồng thuận. Đặc biệt, chúng tôi có thể quyết định, đối
với mỗi thư, chế độ xem của nhóm để gửi thư tới. Vì cả tin nhắn và chế độ xem nhóm mới đều có thể được sắp xếp hoàn toàn, giao

4
tiếp kết quả sẽ đồng bộ với chế độ xem. Nếu phát đa hướng không đáng tin cậy, thì chúng tôi không có cách nào đảm bảo tính nhất
quán của việc phân phối chế độ xem cho tất cả các quy trình liên quan.

Q247. Hoạt động phát đa hướng theo thứ tự đồng bộ là hoạt động có ngữ nghĩa thứ tự phân phối giống như hoạt động phân phối
chế độ xem trong hệ thống giao tiếp nhóm đồng bộ chế độ xem. Trong một dịch vụ thingumajig , hoạt động trên đồ vật là nhân quả
ra lệnh. Các Dịch vụ hỗ trợ danh sách của người dùng có thể đến trình diễn hoạt động trên mỗi điều cụ thểumajig. Giải thích tại sao
việc xóa người dùng khỏi danh sách phải là thao tác được sắp xếp theo thứ tự đồng bộ hóa.
Ans.
Đồng bộ hóa thứ tự cập nhật loại bỏ người dùng đảm bảo rằng tất cả các quy trình xử lý cùng một nhóm hoạt động trên một
thingumajig trước các người sử dụng Là loại bỏ. Nếu loại bỏ là chỉ có nhân quả ra lệnh, ở đó sẽ không phải thì là ở không tí nào thứ
tự giao hàng xác định giữa hoạt động đó và bất kỳ hoạt động nào khác trên thingumajig. Hai quy trình có thể nhận một thao tác từ
người dùng đó tương ứng trước và sau khi người dùng bị xóa, do đó, một quy trình sẽ từ chối thao tác còn quy trình kia thì không.

Q248. Vấn đề nhất quán được đặt ra bởi chuyển giao nhà nước là gì?
Ans.
Khi một tiến trình tham gia vào một nhóm , nó sẽ nhận được trạng thái S từ một hoặc nhiều thành viên của nhóm. Sau đó, nó có thể
bắt đầu nhận các tin nhắn dành cho nhóm mà nó xử lý. Vấn đề nhất quán bao gồm đảm bảo rằng không cập nhật thông điệp cái đó
Là đã sẵn sàng phản ánh Trong các giá trị S sẽ thì là ở áp dụng đến nó lại; và, ngược lại, rằng bất kỳ thông báo cập nhật nào không
được phản ánh trong S sẽ được nhận sau đó và xử lý.

Q249. Một hoạt động X trên một sự vật o nguyên nhân o đến gọi một hoạt động trên nữa sự vật o  .  Nó Là bây giờ đề xuất sao
chép o nhưng không phải o  .  Giải thích các sự khó khăn cái đó đây tăng liên quan đến lời kêu gọi trên o , và gợi ý một giải
pháp.
Ans.
Các sự nguy hiểm Là cái đó tất cả các bản sao của o sẽ vấn đề lời kêu gọi trên o , khi nào chỉ có một Nên cầm lấy nơi. Đây là
không chính xác trừ khi lệnh gọi khi o là idempotent và tất cả các bản sao đưa ra cùng một lời gọi.
Một giải pháp là các bản sao của o được cung cấp các proxy thông minh, nhận biết bản sao cho o . Các proxy thông minh chạy
một thuật toán đồng thuận để chỉ định một mã định danh duy nhất cho mỗi lệnh gọi và chỉ định một trong số chúng xử lý lệnh gọi đó.
Chỉ proxy thông minh đó mới chuyển tiếp yêu cầu gọi; những người khác đợi nó phát đa hướng phản hồi cho họ và chuyển kết quả
trở lại bản sao của họ.

Q250. Giải thích các Sự khác biệt giữa khả năng tuyến tính hóa và tuần tự Tính nhất quán, và tại sao các sau này Là hơn thực tế để
thực hiện, nói chung.
Ans.
Xem trang 566-567 để biết sự khác biệt. Trong trường hợp không có sự đồng bộ hóa đồng hồ đủ độ chính xác, khả năng tuyến tính
hóa chỉ có thể đạt được bằng cách chuyển tất cả các yêu cầu qua một máy chủ duy nhất – khiến nó trở thành nút cổ chai hiệu suất.

Q251. Giải thích tại sao việc cho phép các bản sao lưu xử lý các thao tác đọc lại dẫn đến các thao tác thực thi nhất quán tuần tự
thay vì có thể tuyến tính hóa trong một hệ thống sao chép thụ động.
Ans.
Quá hạn đến sự chậm trễ Trong cập nhật Lan truyền, một đọc hoạt động xử lý tại một sao lưu có thể lấy lại kết quả cái đó là già
hơn những thứ kia tại các sơ đẳng – cái đó Là, kết quả cái đó là lớn hơn hơn những thứ kia của một sớm hơn hoạt động yêu cầu qua
một quá trình khác. Vì vậy, việc thực hiện là không tuyến tính hóa.
Tuy nhiên, hệ thống nhất quán theo trình tự: trình tự chính hoàn toàn sắp xếp tất cả các bản cập nhật và mỗi quy trình sẽ thấy một
số lần đọc xen kẽ nhất quán giữa cùng một loạt bản cập nhật.

Q252. Kiến trúc tin đồn có thể được sử dụng cho trò chơi máy tính phân tán như được mô tả trong Bài tập 14.3 không?
Ans.
Liên quan đến trật tự, câu trả lời là 'có' - tin đồn ủng hộ trật tự nhân quả và tổng thể. Tuy nhiên, tin đồn đưa ra sự chậm trễ lan
truyền về cơ bản là tùy ý, thay vì truyền phát đa hướng với nỗ lực tốt nhất. Sự chậm trễ kéo dài sẽ có xu hướng ảnh hưởng đến tính
tương tác của trò chơi.

4
Q253. Trong kiến trúc tin đồn, tại sao trình quản lý bản sao cần giữ cả dấu thời gian 'bản sao' và dấu thời gian 'giá trị'?
Ans.
Các giá trị dấu thời gian phản ánh các hoạt động cái đó các bản sao người quản lý có áp dụng. bản sao quản lý cũng cần phải quản
lý hoạt động cái đó họ không thể nhưng ứng dụng. Trong cụ thể, họ cần đến giao phó định danh đến Mới hoạt động, và họ cần đến
giữ cho theo dõi của cái mà cập nhật họ có nhận Trong ngồi lê đôi mách tin nhắn, cho dù hoặc không phải họ đã áp dụng họ nhưng.
Các bản sao dấu thời gian phản ánh cập nhật cái đó các bản sao người quản lý có nhận, cho dù hoặc không phải nó đã áp dụng tất cả
chúng chưa.

Q254. Trong một hệ thống buôn chuyện, giao diện người dùng có dấu thời gian vectơ (3, 5, 7) biểu thị dữ liệu mà nó đã nhận được
từ các thành viên của một nhóm gồm ba người quản lý bản sao. Ba trình quản lý bản sao có dấu thời gian vectơ (5, 2, 8), (4, 5, 6) và
(4, 5, 8), tương ứng. Cái mà bản sao quản lý có thể ngay lập tức thỏa mãn một truy vấn từ các giao diện người dùng và dấu thời gian
kết quả của giao diện người dùng là gì? Cái nào có thể kết hợp một bản cập nhật từ giao diện người dùng ngay lập tức?
Ans.
Trình quản lý bản sao duy nhất có thể đáp ứng truy vấn từ giao diện người dùng này là trình quản lý bản sao thứ ba, với dấu thời
gian (giá trị) (4,5,8). Những cái khác chưa xử lý ít nhất một bản cập nhật mà giao diện người dùng nhìn thấy. Dấu thời gian kết quả
của giao diện người dùng sẽ là (4,5,8).
Tương tự, chỉ trình quản lý bản sao thứ ba mới có thể kết hợp bản cập nhật từ giao diện người dùng ngay lập tức.

Q255. Giải thích tại sao đặt một số trình quản lý bản sao ở chế độ chỉ đọc có thể cải thiện hiệu suất của hệ thống tin đồn.
Ans.
Ngày thứ nhất, đọc hoạt động có thể thì là ở hài lòng qua địa phương chỉ đọc bản sao quản lý, trong khi cập nhật là xử lý qua chỉ là
một vài khác bản sao các nhà quản lý. Đây Là một Có hiệu quả sự sắp xếp nếu trên trung bình ở đó là nhiều đọc hoạt động cho mọi
thao tác ghi. Thứ hai, vì các bản sao chỉ đọc không chấp nhận các bản cập nhật nên chúng không cần vectơ các mục nhập dấu thời
gian. Do đó, kích thước dấu thời gian của vectơ được giảm xuống.

Q256. Viết mã giả vì phụ thuộc Séc và hợp nhất thủ tục (như đã sử dụng Trong Bayou) thích hợp vì một giản dị ứng dụng đặt
phòng.
Ans.
: room.book (đặt phòng).
để timeSlot = booking.getPreferredTimeSlot ();
Kiểm tra phụ thuộc:
hiện cóBooking = room.getBooking ( timeSlot );
if ( currentBooking ! = null) trả về “xung đột” khác trả về “không có xung đột”;
Thủ tục hợp nhất:
hiện cóBooking = room.getBooking ( timeSlot );
// Chọn đặt trước sẽ được ưu tiên hơn đặt trước if ( GreaterPriority ( existingBooking , booking) == đặt trước)
sau đó { phòng .setBooking ( timeSlot , đặt phòng); currentBooking.setStatus (“thất bại”);} khác { đặt phòng.setStatus (“thất
bại”);}

– trong một phiên bản tinh vi hơn của chương trình này, đặt trước có các khoảng thời gian thay thế. Khi một đặt phòng không thể
thì là ở thực hiện tại các ưa thích thời gian chỗ, các hợp nhất thủ tục chạy xuyên qua các thay thế thời gian khe cắm và chỉ báo cáo
lỗi nếu không có sẵn. Tương tự như vậy, các phòng thay thế có thể được thử.

Q257. Trong hệ thống tập tin Coda, tại sao đôi khi người dùng phải can thiệp thủ công vào quá trình cập nhật các bản sao của một
tập tin tại nhiều máy chủ?
Ans.
xung đột có thể thì là ở phát hiện giữa các dấu thời gian của phiên bản của các tập tin tại một coda tập tin người phục vụ và một
máy trạm bị ngắt kết nối khi máy trạm được hòa nhập lại, Xung đột phát sinh do các phiên bản đã khác nhau, tức là phiên bản trên
máy chủ tệp có thể đã được cập nhật bởi một máy khách và phiên bản trên máy trạm bởi một máy khách khác. Khi những xung đột
như vậy xảy ra, phiên bản của tệp từ máy trạm được đặt trong một covolume – một
ngoại tuyến phiên bản của các tập tin âm lượng cái đó Là chờ đợi thủ công Chế biến qua một người sử dụng. Các người sử dụng có
thể một trong hai Từ chối phiên bản mới, hãy cài đặt phiên bản mới thay vì phiên bản trên máy chủ hoặc hợp nhất hai tệp bằng cách
sử dụng công cụ thích hợp với định dạng của tập tin.

4
Q257. nghĩ ra một cơ chế vì tích hợp hai bản sao của một tập tin hệ thống danh mục cái đó trải qua tách rời cập nhật trong quá
trình hoạt động bị ngắt kết nối. Sử dụng phương pháp chuyển đổi hoạt động của Bayou hoặc cung cấp giải pháp cho Coda.
Ans.
Các cập nhật có thể có trên một thư mục là (a) thay đổi cài đặt bảo vệ trên các mục nhập hiện có hoặc chính thư mục đó, (b) thêm
các mục nhập và (c) xóa các mục nhập.
Nhiều bản cập nhật có thể được tự động đối chiếu, ví dụ: nếu hai mục nhập có tên khác nhau được thêm vào trong các phân vùng
khác nhau thì cả hai mục nhập đều được thêm vào; nếu một mục đã bị xóa trong một phân vùng và không được cập nhật trong phân
vùng kia thì việc xóa được xác nhận; nếu quyền của một mục đã được cập nhật trong một phân vùng và nó không được cập nhật
(bao gồm cả việc xóa) trong phân vùng kia, thì cập nhật quyền được xác nhận.
Mặt khác, hai bản cập nhật, trong phân vùng A và B, tương ứng, có thể xung đột theo cách không thể điều chỉnh tự động. ví dụ:
một mục đã bị xóa trong A và cùng một mục trong B đã thay đổi quyền của nó; các mục được tạo có cùng tên (nhưng đề cập đến
một tệp khác) trong A và B; một mục đã được thêm vào A nhưng trong B quyền ghi của thư mục đã bị xóa.

Chương 15 Giải pháp


Q259. Phác thảo một hệ thống để hỗ trợ một cơ sở diễn tập âm nhạc phân tán. Đề xuất các yêu cầu QoS phù hợp và cấu hình
phần cứng và phần mềm có thể được sử dụng.
Ans. .
Đây Là một cụ thể đòi hỏi tương tác phân phối đa phương tiện đăng kí. Konstantas vân vân al. [1997] báo cáo rằng cần
có độ trễ khứ hồi dưới 50 ms cho nó. Rõ ràng, video và âm thanh phải được đồng bộ hóa chặt chẽ để nhạc công có thể
sử dụng tín hiệu hình ảnh cũng như âm thanh. Băng thông phải phù hợp với camera và đầu vào âm thanh được sử dụng,
ví dụ: 1,5 Mbps cho luồng video và 44 kbps cho luồng âm thanh. Tỷ lệ tổn thất phải thấp, nhưng không nhất thiết phải
bằng không.
Các yêu cầu QoS khắt khe hơn nhiều so với hội nghị truyền hình thông thường – hiệu suất âm nhạc là không thể nếu
không có đồng bộ hóa nghiêm ngặt. Một môi trường phần mềm bao gồm quản lý QoS với tài nguyên hợp đồng Là yêu
cầu. Các điều hành hệ thống và mạng lưới đã sử dụng Nên cung cấp QoS bảo lãnh. Ít mục đích chung hệ điều hành
cung cấp họ tại hiện nay. Tận tụy thời gian thực hệ điều hành là có sẵn nhưng họ là khó khăn để sử dụng cho phát triển
ứng dụng cấp cao.
Các công nghệ hiện tại nên phù hợp:
• mạng ATM.
• PC có phần cứng để nén MPEG hoặc MJPEG.
• Hệ điều hành thời gian thực có hỗ trợ phát triển phần mềm cấp cao, ví dụ như trong CORBA hoặc Java.

Q260. Internet hiện không cung cấp bất kỳ đặt trước tài nguyên hoặc cơ sở quản lý chất lượng dịch vụ nào. Làm thế nào để các
ứng dụng phát trực tuyến âm thanh và video dựa trên Internet hiện có đạt được chất lượng chấp nhận được ? Những hạn chế nào
các giải pháp mà họ áp dụng diễn ra trên các ứng dụng đa phương tiện?
Ans. .
Có hai loại ứng dụng dựa trên Internet:
a) Các hệ thống phân phối phương tiện như truyền phát nhạc, radio trên Internet và các ứng dụng TV.
b) Các ứng dụng tương tác như điện thoại Internet và hội nghị truyền hình (NetMeeting, CuSeemMe ).
Vì loại hình (một), các chính kĩ thuật đã sử dụng Là giao thông định hình , và hơn đặc biệt, đệm tại điểm đến . Thông
thường , các dữ liệu Là chơi ngoài một số 5–10 giây sau nó là vận chuyển tại các điểm đến. Đây mặt nạ không bằng phẳng độ
trễ và vận chuyển tỷ lệ (giật mình) của Internet giao thức và mặt nạ các sự chậm trễ phát sinh Trong các các lớp mạng và vận
chuyển của Internet do truyền dẫn lưu trữ và chuyển tiếp và TCP độ tin cậy cơ chế. Vì loại hình (b), các vòng chuyến đi sự
chậm trễ phải thì là ở đã giữ phía dưới 100 bệnh đa xơ cứng vì thế các ở trên kĩ thuật Là cai trị ngoài. Thay vào đó, truyền phát
thích nghi Là đã sử dụng. Đặc biệt, video Là truyền đi với cao cấp độ của nén và giảm
tỷ lệ khung hình. Âm thanh yêu cầu ít thích ứng hơn. UDP thường được sử dụng.
Tổng thể, loại hình (một) hệ thống công việc hợp lý Tốt vì âm thanh và độ phân giải thấp video chỉ có. Vì loại hình (b) kết quả
thường không đạt yêu cầu trừ khi các tuyến mạng và các ưu tiên của hệ điều hành được quản lý rõ ràng.

Q260. Giải thích sự khác biệt giữa ba hình thức đồng bộ hóa (trạng thái phân tán đồng bộ, đồng bộ hóa phương tiện và đồng bộ
hóa bên ngoài) có thể được yêu cầu trong các ứng dụng đa phương tiện phân tán. Đề xuất cơ chế mà mỗi người trong số họ có
thể đạt được, ví dụ như trong một ứng dụng hội nghị truyền hình.

4
Ans. .
trạng thái phân tán đồng bộ: Tất cả người dùng sẽ thấy trạng thái ứng dụng giống nhau. Chẳng hạn, kết quả hoạt động trên điều
khiển vì một video, như là như bắt đầu và tạm ngừng Nên thì là ở đồng bộ, vì thế cái đó tất cả các người dùng hiểu các cùng
một khung. Đây có thể thì là ở xong qua kết hợp các hiện hành tiểu bang (vật mẫu con số) của các tích cực đa phương tiện dòng
suối với mỗi thông báo thay đổi trạng thái. Điều này tạo thành một dạng dấu thời gian vectơ logic.
đồng bộ hóa phương tiện: Một số luồng nhất định được kết hợp chặt chẽ. Ví dụ: âm thanh đi kèm với luồng video. Chúng phải
được đồng bộ hóa bằng dấu thời gian được nhúng trong dữ liệu phương tiện.
đồng bộ hóa bên ngoài: Đây thực sự là một ví dụ về trạng thái phân tán đồng bộ. Các tin nhắn cập nhật chia sẻ bảng trắng và
khác chia sẻ các đối tượng Nên mang véc tơ dấu thời gian cho các Những trạng thái của các luồng truyền thông .

Q261. Đề cương các thiết kế của một QoS người quản lý đến cho phép máy tính để bàn máy vi tính kết nối qua một ATM mạng
để hỗ trợ một số ứng dụng đa phương tiện đồng thời. Xác định API cho trình quản lý QoS của bạn, đưa ra các hoạt động chính
với các thông số và kết quả của chúng.
Ans. .
Mỗi đa phương tiện đăng kí đòi hỏi một nguồn hợp đồng vì mỗi của nó là đa phương tiện dòng suối. Bất cứ khi nào một luồng
mới Là đến thì là ở đã bắt đầu, một lời yêu cầu Là thực hiện đến các QoS người quản lý chỉ định CPU tài nguyên, kỉ niệm và
kết nối mạng với của chúng lưu lượng Thông số kỹ thuật. Các QoS người quản lý thực hiện một phân tích tương tự đến Nhân
vật 15.6 vì mỗi từ đầu đến cuối dòng. Nếu một số dòng suối là yêu cầu vì một Độc thân đăng kí, ở đó Là một sự nguy hiểm của
bế tắc – tài nguyên được phân bổ cho một số luồng, nhưng nhu cầu của các luồng còn lại không thể được thỏa mãn. Khi điều
này xảy ra, quá trình đàm phán QoS sẽ bị hủy bỏ và khởi động lại, nhưng nếu ứng dụng đang chạy thì điều này là không thực
tế, do đó, một cuộc đàm phán diễn ra để giảm tài nguyên của các luồng hiện có.
API:
QoSManager.QoSRequest ( FlowID , FlowSpec ) -> ResourceContract
Các ở trên Là các nền tảng giao diện đến các QoS Người quản lý. Nó dự trữ tài nguyên như chỉ định Trong các FlowSpec và trả
về một tương ứng Hợp đồng tài nguyên
Một FlowSpec là một đối tượng đa trị, tương tự như Hình 15.8.
Hợp đồng tài nguyên là một mã thông báo có thể được gửi tới từng trình xử lý tài nguyên (bộ lập lịch CPU, trình quản lý bộ
nhớ, trình điều khiển mạng, v.v.).
Application.ScaleDownCallback ( FlowID , FlowSpec ) -> AcceptReject
Trên đây là một cuộc gọi lại từ Trình quản lý QoS tới một ứng dụng, yêu cầu thay đổi trong FlowSpec cho một luồng. Ứng
dụng có thể trả về một giá trị cho biết chấp nhận hoặc từ chối.

Q262. Để xác định các yêu cầu tài nguyên của các thành phần phần mềm xử lý dữ liệu đa phương tiện, chúng tôi cần ước tính
tải xử lý của chúng. Làm thế nào để có được thông tin này?
Ans. .
Vấn đề chính là làm thế nào để đo lường hoặc đánh giá các yêu cầu tài nguyên (CPU, bộ nhớ, băng thông mạng, đĩa băng
thông) của các các thành phần cái đó xử lý đa phương tiện dòng suối không có một rất nhiều của thủ công thử nghiệm. Cần có
một khung kiểm tra để đánh giá việc sử dụng tài nguyên của một thành phần đang chạy. Nhưng cũng có một cần vì nguồn yêu
cầu người mẫu của các các thành phần – vì thế cái đó các yêu cầu có thể thì là ở được ngoại suy cho các bối cảnh ứng dụng và
đặc điểm luồng khác nhau cũng như các môi trường phần cứng khác nhau (các tham số hiệu suất phần cứng).

Q263. Làm cách nào để hệ thống Tiger đối phó với một số lượng lớn khách hàng đều yêu cầu cùng một bộ phim vào những thời
điểm ngẫu nhiên?
Ans. .
Nếu chúng đến cách nhau trong vòng vài giây, thì chúng có thể được đặt đủ gần nhau trong lịch trình đến cầm lấy thuận lợi của
bộ nhớ đệm Trong các đàn con, vì thế một Độc thân đĩa truy cập vì một khối có thể Dịch vụ một số khách hàng. Nếu chúng có
khoảng cách rộng hơn, thì chúng được đặt độc lập (trong một khe trống gần đĩa giữ anh ấy xem khối phim đầu tiên tại thời điểm
mỗi yêu cầu được nhận). Sẽ không có xung đột về tài nguyên vì các khối khác nhau của phim được lưu trữ trên các đĩa và khối
khác nhau.

Q264. Các Con hổ lịch trình Là có tiềm năng một lớn dữ liệu kết cấu cái đó thay đổi thường xuyên, nhưng mỗi đàn con cần một
đại diện cập nhật của các phần mà nó hiện đang xử lý. Đề xuất một cơ chế phân phối lịch trình cho đàn con.
4
Ans. .
Trong lần triển khai đầu tiên của Tiger, máy tính điều khiển chịu trách nhiệm duy trì phiên bản cập nhật của lịch trình và sao
chép nó cho tất cả đàn con. Điều này không mở rộng quy mô tốt - quá trình xử lý và giao tiếp tải tại các bộ điều khiển lớn lên
tuyến tính với các con số của khách hàng – và Là rất có thể đến giới hạn các quy mô dịch vụ mà Tiger có thể hỗ trợ. Trong một
lần thực hiện sau đó, đàn con chịu trách nhiệm tập thể về duy trì các lịch trình. Mỗi đàn con nắm giữ một miếng của các lịch
trình – chỉ những thứ kia khe cắm cái đó nó sẽ thì là ở chơi chế trong thời gian tới. Khi các vị trí đã được xử lý , chúng được
cập nhật để hiển thị trạng thái trình xem hiện tại và sau đó chúng được chuyển đến khối 'hạ lưu' tiếp theo. Đàn con giữ lại một
số mảnh thừa cho mục đích chịu lỗi.
Khi bộ điều khiển cần sửa đổi lịch trình – để xóa hoặc tạm dừng một mục nhập hiện có hoặc để chèn một trình xem vào trong
một trống rỗng chỗ – nó gửi một lời yêu cầu đến các đàn con cái đó Là hiện nay có tinh thần trách nhiệm vì các liên quan, thích
hợp đoạn lịch trình để thực hiện cập nhật. Sau đó, đàn con sử dụng đoạn lịch trình được cập nhật để hoàn thành trách nhiệm của
mình và chuyển nó cho đàn con tiếp theo ở hạ lưu.

Q265. Khi Tiger đang vận hành với một đĩa hoặc khối bị lỗi, các khối dữ liệu thứ cấp được sử dụng thay cho các khối chính bị
thiếu. Các khối thứ cấp nhỏ hơn n lần so với các khối chính (trong đó n là hệ số loại bỏ ), làm thế nào để hệ thống đáp ứng được
sự thay đổi về kích thước khối này?
Ans. .
Cho dù chúng là khối chính lớn hay khối phụ nhỏ hơn, chúng luôn được xác định bằng số thứ tự chơi. Đàn con chỉ cần giao các
khối cho khách hàng theo thứ tự thông qua mạng ATM. Khách hàng có trách nhiệm lắp ráp chúng theo đúng trình tự và sau đó
trích xuất các khung hình từ chuỗi khối sắp tới và phát các khung hình theo lịch phát.

Chương 16 Giải bài tập


Q266 Giải thích khía cạnh nào DSM phù hợp hoặc không phù hợp với hệ thống máy khách-máy chủ.
Ans.
DSM Là không hợp vì máy khách-máy chủ hệ thống Trong cái đó nó Là không phải thuận lợi đến không đồng nhất đang làm
việc. Hơn nữa, để bảo mật, chúng tôi sẽ cần một khu vực dùng chung cho mỗi khách hàng, điều này sẽ rất tốn kém.
DSM có thể phù hợp với các hệ thống máy khách-máy chủ trong một số miền ứng dụng, ví dụ như nơi một nhóm máy khách
chia sẻ các phản hồi của máy chủ.

Q267.Thảo luận xem truyền tin nhắn hay DSM thích hợp hơn cho các ứng dụng chịu lỗi.
Ans.
Xem xét hai quy trình đang thực thi tại các máy tính không bị lỗi. Trong một hệ thống gửi tin nhắn, nếu một tiến trình có lỗi
khiến nó gửi tin nhắn giả, thì tiến trình kia có thể tự bảo vệ mình ở một mức độ nhất định bằng cách xác thực các tin nhắn mà
nó nhận được. Nếu một quy trình bị lỗi giữa chừng thông qua hoạt động đa thông báo, thì các kỹ thuật giao dịch có thể được sử
dụng để đảm bảo rằng dữ liệu được để ở trạng thái nhất quán.
Bây giờ hãy xem xét rằng các tiến trình chia sẻ bộ nhớ, cho dù đó là bộ nhớ dùng chung vật lý hay DSM dựa trên trang. sau đó
một của họ có thể bất lợi ảnh hưởng các khác nếu nó thất bại, tại vì bây giờ một quá trình có thể cập nhật một chia sẻ biến mà
biến kia không hề hay biết. Ví dụ: nó có thể cập nhật không chính xác các biến được chia sẻ do lỗi. Nó có thể bị lỗi sau khi bắt
đầu nhưng không hoàn thành cập nhật một số biến.
Nếu các quy trình sử dụng DSM dựa trên phần mềm trung gian, thì nó có thể có một số biện pháp bảo vệ chống lại các quy
trình bất thường. Ví dụ: các quy trình sử dụng nguyên mẫu lập trình Linda phải yêu cầu rõ ràng các mục (bộ) từ bộ nhớ dùng
chung. Họ có thể xác thực những điều này, giống như một quy trình có thể xác thực các thông báo.

Q268. Làm sao sẽ bạn thỏa thuận với các vấn đề của khác nhau dữ liệu đại diện vì một dựa trên phần mềm trung gian triển khai
DSM trên các máy tính không đồng nhất? Bạn sẽ giải quyết vấn đề như thế nào khi triển khai dựa trên trang? Giải pháp của bạn
có mở rộng đến con trỏ không?
Ans.
Các phần mềm trung gian cuộc gọi có thể bao gồm soái ca và sắp xếp lại thủ tục. Trong một dựa trên trang triển khai, các trang
sẽ phải được sắp xếp theo thứ tự và không được sắp xếp theo thứ tự bởi các hạt nhân gửi và nhận chúng. Điều này ngụ ý duy trì
một sự mô tả của các cách trình bày và các loại của các dữ liệu, Trong các DSM bộ phận, cái mà có thể thì là ở chuyển đổi đến
và từ đại diện địa phương.
Máy gặp lỗi trang cần mô tả trang nào nó cần theo cách độc lập với kiến trúc máy. Các kích thước trang khác nhau sẽ tạo ra sự
cố ở đây, cũng như các mục dữ liệu nằm giữa các ranh giới của trang hoặc các mục nằm giữa các ranh giới của trang khi không
4
được sắp xếp theo thứ tự.
Một dung dịch sẽ thì là ở đến sử dụng một 'ảo trang' như các đơn vị của chuyển khoản, của ai kích thước Là các tối đa của các
trang kích thước của tất cả các kiến trúc được hỗ trợ. Các mục dữ liệu sẽ được bố trí sao cho cùng một tập hợp các mục xuất
hiện trong mỗi trang ảo cho tất cả các kiến trúc. Con trỏ cũng có thể được sắp xếp lại, miễn là hạt nhân biết cách bố trí dữ liệu,
và có thể bày tỏ con trỏ như Chỉ trỏ đến một sự vật với một sự mô tả của các hình thức "Bù lại o Trong dữ liệu mục i ”, trong
đó o và i được thể hiện một cách tượng trưng, chứ không phải về mặt vật lý.
Hoạt động này ngụ ý chi phí rất lớn.

Q269. Tại sao Nên chúng tôi muốn đến thực hiện dựa trên trang DSM phần lớn tại cấp độ người dùng, và Gì Là yêu cầu đến
Hoàn thành đây?
Ans.
Việc triển khai DSM cấp người dùng tạo điều kiện thuận lợi cho các tùy chọn giao thức và mô hình bộ nhớ (tính nhất quán)
dành riêng cho ứng dụng.
chúng tôi yêu cầu các nhân đến xuất khẩu giao diện vì (một) sự điều khiển trang lỗi từ người sử dụng mức độ (Trong UNIX,
như một dấu hiệu) và
(a)
thiết lập bảo vệ trang từ cấp độ người dùng (xem UNIX mmap hệ thống cuộc gọi).
Q271. Bộ nhớ có làm cơ sở cho việc thực hiện hai quy trình sau đây một cách tuần tự nhất quán không (giả sử rằng, ban đầu, tất
cả các biến được đặt thành 0)?
P1: R ( x )1; R ( x )2; W ( y )1
P2: W ( x )1; R ( y )1; W ( x )2
Ans.
P1 đọc giá trị của x là 2 trước khi đặt y là 1. Nhưng P2 chỉ đặt x là 2 sau khi nó đã đọc y là 1 ( trước đó y là 0). Do đó , hai lần
thực thi này không tương thích và bộ nhớ không nhất quán tuần tự.

Q272. sử dụng các R ( ), W () ký hiệu, cho một thí dụ của một chấp hành trên một kỉ niệm cái đó Là mạch lạc nhưng không phải
tuần tự nhất quán. Một ký ức có thể tuần tự nhất quán nhưng không mạch lạc không?
Ans.
Việc thực hiện Bài tập 16.6 là nhất quán – việc đọc và ghi cho mỗi biến nhất quán với cả hai lệnh của chương trình – nhưng nó
không nhất quán tuần tự, như chúng tôi đã chỉ ra.
Một tuần tự thích hợp kỉ niệm Là thích hợp với chương trình gọi món; vì thế các dãy con của các thao tác trên từng biến riêng
lẻ phù hợp với thứ tự chương trình – bộ nhớ nhất quán.

Q273. Trong ghi-cập nhật, buổi bieu diễn cái đó tuần tự Tính nhất quán có thể thì là ở bị hỏng nếu mỗi cập nhật là đến thì là ở
thực hiện tại địa phương trước khi không đồng bộ phát đa hướng nó đến khác bản sao quản lý, thậm chí Tuy nhiên các phát đa
hướng Là Tổng cộng ra lệnh. Thảo luận xem có thể sử dụng phát đa hướng không đồng bộ để đạt được tính nhất quán tuần tự
hay không. (Gợi ý: cân nhắc xem có nên chặn các thao tác tiếp theo hay không.)
Ans.
P1 V ( x )1; // x được cập nhật ngay lập tức tại P1 và phát đa hướng ở nơi
khác
R ( x )1;
R ( y )0;
// phát đa hướng từ P2 chưa đến

P2 V ( y )1;
R ( x )0; // phát đa hướng từ P1 chưa đến
R ( y )1; // y được cập nhật ngay lập tức và phát đa hướng lên P1
P1 sẽ nói rằng x đã được cập nhật trước y ; P2 sẽ nói rằng y đã được cập nhật trước x . Vì vậy, bộ nhớ không phải là tuần tự
thích hợp khi nào chúng tôi sử dụng một không đồng bộ Tổng cộng ra lệnh phát đa hướng, và nếu chúng tôi cập nhật các địa
phương giá trị ngay lập tức.
Nếu phát đa hướng là đồng bộ (nghĩa là một trình ghi bị chặn cho đến khi bản cập nhật được phân phối ở mọi nơi) và Tổng
cộng ra lệnh, sau đó nó Là dễ đến hiểu cái đó tất cả các quy trình sẽ đồng ý trên một tuần tự hóa của của chúng cập nhật (và do
đó của tất cả các hoạt động bộ nhớ).
4
Chúng tôi có thể cho phép phát đa hướng theo thứ tự hoàn toàn không đồng bộ, nếu chúng tôi chặn mọi thao tác đọc tiếp theo
cho đến khi tất cả các vượt trội cập nhật thực hiện qua các quá trình có đã giao của chúng toàn bộ gọi món (cái đó Là, các phát
đa hướng tương ứng tin nhắn có đã đã giao hàng tại địa phương). Đây sẽ cho phép viết đến thì là ở đường ống dẫn, lên đến các
tiếp theo đọc.

Q274. tuần tự thích hợp kỉ niệm có thể thì là ở thực hiện sử dụng một ghi-cập nhật giao thức tuyển dụng một phát đa hướng
đồng bộ, hoàn toàn theo thứ tự. Thảo luận về những yêu cầu sắp xếp phát đa hướng nào sẽ cần thiết để triển khai bộ nhớ nhất
quán.
Ans.
Người ta có thể thực hiện một bộ nhớ nhất quán bằng cách sử dụng một phát đa hướng ghi hoàn toàn theo thứ tự vào từng vị trí
riêng lẻ, nhưng cái mà làm không phải gọi món viết đến khác nhau địa điểm. Vì thí dụ, một có thể sử dụng khác nhau trình tự
sắp xếp cho khác nhau địa điểm. cập nhật vì một địa điểm là giải trình tự (Tổng cộng ra lệnh) qua các tương ứng trình sắp xếp
thứ tự; nhưng các bản cập nhật cho các địa điểm khác nhau có thể đến theo các đơn đặt hàng khác nhau tại các địa điểm khác
nhau.
Giải thích tại sao, theo giao thức ghi-cập nhật, cần chú ý chỉ truyền những từ đó trong một mục dữ liệu đã được cập nhật cục bộ.

Q275. Đưa ra một thuật toán để thể hiện sự khác biệt giữa một trang và phiên bản cập nhật của nó. Bàn luận hiệu suất của thuật
toán này.
Ans.
Giả định cái đó hai quy trình cập nhật khác nhau từ ngữ ở trong một chia sẻ trang, và cái đó các trọn trang Là gởi khi cung cấp
bản cập nhật cho các quy trình khác (nghĩa là chúng chia sẻ trang một cách sai lệch). Có một mối nguy hiểm là các từ chưa
được sửa đổi trong trang cập nhật của một quy trình sẽ ghi đè lên các sửa đổi của quy trình khác đối với các từ được chia sẻ sai.
Đến lấy vòng quanh đây vấn đề, mỗi quá trình gửi chỉ có các khác biệt nó có thực hiện đến các trang (hiểu các thảo luận về các
mục dữ liệu ghi-chia sẻ của Munin ở trang 540). Bằng cách đó, các bản cập nhật cho các từ được chia sẻ sai sẽ chỉ được áp
dụng cho các từ bị ảnh hưởng và sẽ không xung đột. Để thực hiện điều này, mỗi quá trình cần giữ một bản sao của trang trước
khi cập nhật nó.
Một giản dị mã hóa của các khác biệt giữa các trang trước và sau nó là sửa đổi Là đến tạo ra một loạt của bộ dữ liệu:
< pageOffset , size , đã thay đổiBytes >
– cái mà cửa hàng Trong đã thay đổiByte một chạy của kích thước byte đến biến đổi, bắt đầu tại trangOffset . Các danh sách
của bộ dữ liệu Là được tạo bởi so sánh các trang từng byte. bắt đầu tại các bắt đầu, khi nào một Sự khác biệt Là đã gặp, chúng
tôi tạo ra một cái mới tuple và ghi lại các byte bù lại. chúng tôi sau đó sao chép các byte từ các sửa đổi trang vào trong đã thay
đổiBytes , cho đến khi chúng tôi đạt được một loạt byte giống nhau trong cả hai trang và có độ dài lớn hơn giá trị tối thiểu nhất
định M . Quy trình mã hóa sau đó tiếp tục cho đến khi toàn bộ trang được được mã hóa.
Khi đánh giá một thuật toán như vậy, chúng tôi lưu ý đến thời gian xử lý và không gian lưu trữ được sử dụng bởi mã hóa sự
khác biệt. Các tối thiểu chiều dài m Là đã chọn vì thế cái đó các Chế biến thời gian và kho không gian Lấy lên bởi tạo một Mới
tuple Là chính đáng chống lại các trên không của sao chép byte cái đó có không phải đã sửa đổi. Nó Là
ví dụ, có khả năng là sẽ rẻ hơn khi lưu trữ và sao chép một lần chạy bốn byte chưa sửa đổi so với việc tạo thêm một bộ dữ liệu.

Q276. Người đọc có thể quan tâm để cải thiện hơn nữa thuật toán này.
Giải thích tại sao độ chi tiết là một vấn đề quan trọng trong các hệ thống DSM. So sánh vấn đề về mức độ chi tiết giữa các hệ
thống DSM hướng đối tượng và hướng byte, lưu ý đến việc triển khai chúng.
Tại sao mức độ chi tiết lại liên quan đến không gian bộ chứa dữ liệu bất biến? Chia sẻ sai là gì? Nó có thể dẫn đến thực hiện
sai?
Ans.
Chúng tôi giới thiệu người đọc đến phần thảo luận về mức độ chi tiết ở các trang 648-649.
Trong một dựa trên trang thực hiện, các tối thiểu độ chi tiết Là đã sửa qua các phần cứng. Trong Tập thể dục 16.10 chúng tôi đã
thấy một cách cập nhật số lượng dữ liệu nhỏ hơn một trang, nhưng chi phí của kỹ thuật này khiến nó không được áp dụng
chung.
Trong DSM dựa trên phần mềm trung gian, mức độ chi tiết tùy thuộc vào quá trình triển khai và có thể nhỏ bằng một byte. Nếu
một quy trình cập nhật một trường trong cấu trúc dữ liệu, thì quá trình triển khai có thể chọn chỉ gửi trường đó hoặc toàn bộ cấu
trúc dữ liệu trong bản cập nhật của nó.

4
Hãy xem xét một DSM chẳng hạn như Không gian Tuple của Linda, bao gồm các mục dữ liệu bất biến. Giả sử một tiến trình
cần cập nhật một phần tử trong bộ chứa một mảng triệu phần tử. Vì các bộ dữ liệu là bất biến nên quy trình phải trích xuất bộ
dữ liệu đó, sao chép toàn bộ mảng vào các biến cục bộ của nó; sau đó nó sửa đổi phần tử; sau đó nó viết các Mới tuple mặt sau
vào trong Tuple Không gian. Xa hơn dữ liệu có đã chuyển nhượng hơn là cần thiết vì sự sửa đổi. Nếu các dữ liệu có đã lưu trữ
như tách rời bộ dữ liệu, mỗi có chứa một mảng yếu tố, sau đó các cập nhật sẽ có đã nhiều giá rẻ hơn. Trên các khác tay, một
quá trình mong muốn đến truy cập các trọn mảng sẽ có để thực hiện một triệu lượt truy cập vào không gian bộ dữ liệu. Do độ
trễ, điều này sẽ tốn kém hơn nhiều so với việc truy cập toàn bộ mảng trong một bộ dữ liệu.
Sai chia sẻ Là mô tả trên trang 648-649. Nó làm không phải của chính nó chỉ huy đến không đúng hành quyết, nhưng nó hạ
thấp hiệu quả của hệ thống DSM.

Q277.Ý nghĩa của DSM đối với các chính sách thay thế trang (nghĩa là lựa chọn xóa trang nào khỏi bộ nhớ chính để đưa trang
mới vào)?
Ans.
Khi kernel muốn thay thế một trang thuộc phân đoạn DSM, nó có thể chọn giữa các trang chỉ đọc, trang cái đó là chỉ đọc nhưng
cái mà các nhân sở hữu, và trang cái đó các nhân có viết truy cập đến (và đã sửa đổi). Trong số các tùy chọn này, chi phí thấp
nhất liên quan đến việc xóa trang chỉ đọc không thuộc sở hữu (mà nhân có thể luôn luôn được lại nếu cần thiết); nếu các nhân
xóa một chỉ đọc trang cái đó nó sở hữu, sau đó nó đã mất một tiềm năng thuận lợi nếu viết truy cập Là Sớm yêu cầu; và nếu nó
xóa các sửa đổi trang sau đó nó phải trước tiên hãy chuyển nó đi nơi khác qua mạng hoặc vào đĩa cục bộ. Vì vậy, kernel muốn
xóa các trang theo thứ tự được. Của khóa học nó có thể phân biệt giữa trang với bình đẳng trạng thái qua lựa chọn, vì thí dụ, các
ít được truy cập gần đây nhất.

Q278. Chứng minh rằng giao thức ghi vô hiệu của Ivy đảm bảo tính nhất quán tuần tự.
Ans.
Một kỉ niệm Là không phải tuần tự thích hợp nếu (và chỉ có nếu) ở đó Là một chấp hành Trong cái mà hai quy trình không
đồng ý về các gọi món Trong cái mà hai hoặc hơn cập nhật là thực hiện. Trong một ghi-không hợp lệ giao thức, cập nhật đến
không tí nào trang cụ thể là hiển nhiên nối tiếp (chỉ có một quá trình có thể cập nhật nó tại một thời gian, và độc giả là trong khi
đó loại trừ). Vì vậy, chúng tôi có thể cho rằng các bản cập nhật dành cho các biến khác nhau, nằm trong các trang khác nhau.
Giả sử các biến là x và y , với các giá trị ban đầu (không mất tính tổng quát) 6 và 7. Giả sử thêm rằng x được tăng lên 16 và y
được tăng lên 17. Chúng tôi giả sử một lần nữa, không mất tính tổng quát, rằng lịch sử của hai quá trình chứa các bằng chứng
về rối loạn sau đây:
P1 : R / W ( x )16; ...; R ( y ) 7; .. // x được tăng lên trước
P2 : R / W ( y )17; ...; R ( x ) 6; .. // y được tăng lên trước
Từ các ghi-không hợp lệ giao thức là đã sử dụng, P1 thu được truy cập đến x 's trang, ở đâu nó một trong hai đọc x hoặc đã viết
x là 16. Sau đó, P1 có quyền truy cập vào trang của y , nơi nó đọc y là 7. Vì P2 đã đọc hoặc viết y với các giá trị 17, nó phải có
thu được truy cập đến bạn _ trang sau P1 hoàn thành với nó. Sau còn, nó thu được
truy cập vào trang của x và thấy rằng x có giá trị 6. Bằng cách rút gọn quảng cáo vô lý , chúng tôi có thể cho rằng giả thuyết của
chúng tôi là sai: không thể tồn tại các thực thi như vậy và bộ nhớ nhất quán tuần tự.
Lamport [1979] đưa ra một lập luận tổng quát hơn, đó là một bộ nhớ nhất quán một cách tuần tự nếu hai điều kiện sau được áp
dụng:
R1: Mỗi bộ xử lý (tiến trình) đưa ra các yêu cầu bộ nhớ theo thứ tự được chỉ định bởi chương trình của nó.
R2: Kỉ niệm yêu cầu từ tất cả các bộ vi xử lý cấp đến một riêng biệt, cá nhân, cá thể kỉ niệm mô-đun là phục vụ từ một hàng
đợi FIFO đơn . Phát hành một yêu cầu bộ nhớ bao gồm việc nhập yêu cầu vào hàng đợi này.
Ghi vô hiệu hóa đáp ứng các điều kiện này, trong đó chúng tôi thay thế 'trang' cho 'mô-đun bộ nhớ'.
Mời độc giả khái quát hóa lập luận mà chúng tôi đã đưa ra, để thu được kết quả của Lamport. Bạn sẽ cần xây dựng một phần
thứ tự giữa các yêu cầu bộ nhớ, dựa trên thứ tự phát hành của một quy trình và thứ tự yêu cầu phục vụ tại các trang.

Q279. Trong thuật toán trình quản lý phân tán động của Ivy, những bước nào được thực hiện để giảm thiểu số lần tra cứu cần
thiết để tìm một trang?
Ans.
Chúng tôi giới thiệu người đọc đến phần thảo luận ở trang 655.

Q280. Tại sao đập một vấn đề quan trọng trong các hệ thống DSM và những phương pháp nào có sẵn để xử lý nó?
4
Ans.
đập phá và các ảo ảnh cách tiếp cận đến nó là thảo luận trên trang 657. Các thảo luận trên Munin (trang 661-663) mô tả thế nào
chia sẻ chú thích có thể thì là ở đã sử dụng đến sự giúp đỡ các DSM thời gian chạy Trong ngăn chặn đập phá. Vì ví dụ, di cư dữ
liệu mặt hàng là luôn luôn được đọc và viết truy cập, thậm chí nếu các Đầu tiên truy cập Là một đọc truy cập. Đây Là thực hiện
trong các kỳ vọng cái đó một đọc Là tiêu biểu đã theo dõi chặt chẽ qua một viết. Các người sản xuất người tiêu dùng chú thích
làm cho thời gian chạy sử dụng giao thức ghi cập nhật, thay vì giao thức vô hiệu. Điều này phù hợp hơn, ở chỗ nó tránh được
việc liên tục chuyển quyền truy cập vào mục dữ liệu giữa người viết (nhà sản xuất) và người đọc (người tiêu dùng).

Q281. Bàn luận thế nào tình trạng RC2 vì phóng thích Tính nhất quán có thể thì là ở thảnh thơi. Kể từ đây phân biệt giữa hăng
hái và nhất quán phát hành lười biếng .
Ans.
Xem xét một quá trình P cái đó cập nhật biến ở trong một phê bình tiết diện. Nó có thể không phải thì là ở nghiêm ngặt cần
thiết vì quy trình khác đến quan sát chữ P cập nhật cho đến khi nó đi vào các phê bình tiết diện, nhưng trái lại RC2 quy định cái
đó các cập nhật nên xuất hiện trên chữ P phóng thích hoạt động. (Cũng không của này ngữ nghĩa Là chắc chắn rồi 'bên phải'
hoặc 'Sai lầm'; nhưng các lập trình viên phải được biết cái nào được sử dụng.)
Việc triển khai tính nhất quán của bản phát hành háo hức sẽ lan truyền các bản cập nhật hoặc sự vô hiệu khi hoạt động phát
hành; những người lười biếng truyền bá chúng khi một quá trình khác đi vào phần quan trọng (phát hành một thao tác thu nhận
).
Q282. Một quy trình cảm biến ghi nhiệt độ hiện tại vào một biến t được lưu trữ trong DSM nhất quán với bản phát hành . Định
kỳ, một màn hình quá trình đọc t . Giải thích các cần vì đồng bộ hóa đến tuyên truyền các cập nhật đến t , mặc dù không cần
thiết ở cấp độ ứng dụng. Quá trình nào trong số này cần thực hiện các hoạt động đồng bộ hóa?
Ans.
Việc triển khai DSM nhất quán với bản phát hành là miễn phí, không bao giờ phổ biến bản cập nhật nếu không có đồng bộ hóa .
Để đảm bảo rằng quá trình theo dõi nhìn thấy các giá trị mới của biến t , phải sử dụng các hoạt động đồng bộ hóa . Sử dụng
định nghĩa về tính nhất quán của bản phát hành trên p. 660, chỉ có quy trình cảm biến cần thực hiện các hoạt động thu nhận và
giải phóng .

Q284. Việc triển khai DSM có thể thu được lợi ích gì từ việc biết mối liên hệ giữa các mục dữ liệu và các đối tượng đồng bộ
hóa? Bất lợi của việc làm cho hiệp hội rõ ràng là gì?
Ans.
Việc triển khai DSM có thể sử dụng liên kết để xác định các cập nhật/hủy hiệu lực của biến nào cần được phổ biến bằng khóa
(có thể có nhiều phần quan trọng, được sử dụng cho các nhóm biến khác nhau).
Nhược điểm của việc làm cho liên kết rõ ràng là công việc mà điều này đại diện cho lập trình viên (hơn nữa, người này có thể
tạo ra các liên kết không chính xác).

Chương 17 Giải bài tập


Q285 Túi nhiệm vụ là một đối tượng lưu trữ các cặp (khóa và giá trị). Khóa là một chuỗi và giá trị là một chuỗi byte.
Giao diện của nó cung cấp các phương thức từ xa sau:
pairOut : với hai tham số mà qua đó máy khách chỉ định một khóa và một giá trị sẽ được lưu trữ.
pairIn : có tham số đầu tiên cho phép máy khách chỉ định khóa của một cặp sẽ bị xóa khỏi Túi tác vụ. Giá trị trong cặp được
cung cấp cho máy khách thông qua tham số thứ hai. Nếu không có cặp nào phù hợp, một ngoại lệ sẽ được đưa ra.
readPair : giống như pairIn ngoại trừ việc cặp vẫn còn trong Túi nhiệm vụ.

Q286. Sử dụng CORBA IDL để xác định giao diện của Túi tác vụ. Xác định một ngoại lệ có thể được ném bất cứ khi nào một
của các hoạt động không thể thì là ở mang theo ngoài. Của bạn ngoại lệ Nên trở về một số nguyên chỉ ra các vấn đề số và một
sợi dây miêu tả các vấn đề. Các Nhiệm vụ Cái túi giao diện Nên định nghĩa một Độc thân thuộc tính cho số lượng nhiệm vụ
trong túi.
Ans.
Lưu ý rằng các chuỗi phải được xác định là typedefs . Khóa cũng là một typedef để thuận tiện.
khóa chuỗi typedef;
trình tự typedef<octet> Giá trị; giao diện TaskBag {
chỉ đọc long numberOfTasks ;

4
ngoại lệ TaskBagException { lâu không; lý do xâu chuỗi; };
void pairOut (trong Khóa chính , trong Giá trị giá trị) tăng ( TaskBagException ); void pairIn (trong Key key , out Value value)
tăng ( TaskBagException ); void readPair (trong Key key , out Value value) tăng ( TaskBagException );
};

Q287 Xác định một thay thế Chữ ký vì các phương pháp ghép đôi và readPair , của ai trở về giá trị cho biết khi không có cặp
phù hợp. Giá trị trả về phải được định nghĩa là kiểu liệt kê có giá trị có thể là ok và đợi . Thảo luận về giá trị tương đối của hai
cách tiếp cận thay thế. Bạn sẽ sử dụng phương pháp nào để chỉ ra một lỗi chẳng hạn như một khóa chứa bất hợp pháp nhân vật?
Ans.
trạng thái enum { ok , chờ đã};
trạng tháiIn (vào Khóa chính , ra Giá trị); trạng thái readPair (trong Khóa chính , ngoài Giá trị giá trị);
Nó thường phức tạp hơn đối với một lập trình viên để xử lý một ngoại lệ mà một lợi nhuận bình thường bởi vì các ngoại lệ phá
vỡ luồng kiểm soát thông thường. Trong ví dụ này, việc khách hàng gọi pairIn là điều khá bình thường. để thấy rằng máy chủ
chưa có một cặp phù hợp. Do đó , một ngoại lệ không phải là một giải pháp tốt.
Vì các Chìa khóa có chứa không hợp lệ nhân vật nó Là tốt hơn đến sử dụng một ngoại lệ: nó Là một lỗi (và có lẽ một sự cố bất
thường) và ngoài ra, ngoại lệ có thể cung cấp thông tin bổ sung về lỗi. Khách hàng phải được cung cấp đầy đủ thông tin để
nhận ra vấn đề.

Q288 Phương pháp nào trong giao diện Túi nhiệm vụ có thể đã được định nghĩa là phương pháp một chiều hoạt động? Cho một
chung qui định về các thông số và ngoại lệ của một chiều các phương pháp. Trong Gì đường ý nghĩa của một chiều từ khóa
khác với phần còn lại của IDL?
Ans.
một chiều hoạt động không thể có out hoặc inout tham số, cũng như không được đưa ra ngoại lệ vì không có thông báo trả lời.
Không có thông tin có thể được gửi lại cho khách hàng. Điều này loại trừ tất cả các hoạt động của Túi nhiệm vụ. các cặpOut
phương thức có thể được thực hiện theo một cách nếu ngoại lệ của nó là không cần thiết, ví dụ nếu máy chủ có thể đảm bảo lưu
trữ mọi cặp được gửi tới nó. Tuy nhiên, một chiều các hoạt động thường được thực hiện với ngữ nghĩa có thể , điều này không
thể chấp nhận được trong trường hợp này. Vì vậy , câu trả lời là không có .
Nguyên tắc chung. Giá trị trả về khoảng trống . Không có đầu ra hoặc đầu vào tham số, không có ngoại lệ do người dùng xác
định.
Các Lên đỉnh của IDL Là vì xác định các giao diện của một Xa xôi sự vật. Nhưng mà một chiều Là đã sử dụng đến chỉ định các
yêu cầu chất lượng giao hàng.

Q289 Loại kết hợp IDL có thể được sử dụng cho một tham số sẽ cần chuyển một trong số ít loại . Sử dụng nó đến định nghĩa
các loại hình của một tham số cái đó Là thỉnh thoảng trống rỗng và thỉnh thoảng có các gõ Giá trị .
Ans.
ValueOption của công đoàn ( boolean ){ trường hợp TRUE: Giá trị giá trị ;
};
Khi giá trị của thẻ là TRUE, Giá trị được chuyển. Khi nó là FALSE, chỉ có thẻ được thông qua.

Q290. Trong Hình 17.1, loại Tất cả được định nghĩa là một chuỗi có độ dài cố định. Xác định lại đây là một mảng các tương tự
chiều dài. Cho một số khuyến nghị như đến các sự lựa chọn giữa mảng và trình tự trong một giao diện IDL.
Ans.
typedef Hình dạng Tất cả [ 100];
khuyến nghị
•cấu trúc có độ dài cố định thì sử dụng mảng.
•cấu trúc chiều dài thay đổi thì sử dụng một chuỗi
•nếu bạn cần nhúng dữ liệu trong dữ liệu, thì hãy sử dụng một chuỗi vì một chuỗi có thể được nhúng vào một chuỗi khác
•nếu dữ liệu của bạn thưa thớt trên chỉ mục của nó, tốt hơn nên sử dụng một chuỗi các cặp <chỉ mục, giá trị>.

Q291. Túi Nhiệm vụ nhằm mục đích sử dụng bởi các khách hàng hợp tác, một số trong số đó thêm các cặp (mô tả nhiệm vụ) và
một số khác loại bỏ chúng (và thực hiện các nhiệm vụ được mô tả). Khi khách hàng được thông báo rằng không có cặp phù hợp
nào khả dụng, nó không thể tiếp tục công việc của mình cho đến khi có một cặp. Xác định giao diện gọi lại thích hợp để sử
dụng trong tình huống này.
5
Ans.
Cuộc gọi lại này có thể gửi giá trị theo yêu cầu của readPair hoặc cặpIn hoạt động. Phương pháp của nó không nên là một sớm
một chiều
vì khách hàng phụ thuộc vào việc nhận nó để tiếp tục công việc của mình.
giao diện TaskBagCallback { dữ liệu void (trong Giá trị giá trị);
}

Q292. Mô tả các sửa đổi cần thiết đối với giao diện Túi tác vụ để cho phép sử dụng lệnh gọi lại.
Ans.
Máy chủ phải cho phép mỗi khách hàng đăng ký sở thích nhận các cuộc gọi lại và cũng có thể hủy đăng ký. Các thao tác này có
thể được thêm vào giao diện TaskBag hoặc vào một giao diện riêng do máy chủ triển khai.
đăng ký int (trong gọi lại TaskBagCallback ); hủy đăng ký void (trong int callbackId );
Xem thảo luận về gọi lại trong Chương 5. ( trang 200)

Q293. Tham số nào của các phương thức trong giao diện TaskBag được truyền theo giá trị và tham số nào được truyền theo
tham chiếu?
Ans.
Trong giao diện ban đầu, tất cả các tham số được truyền theo giá trị.
Tham số của thanh ghi được truyền theo tham chiếu. ( và của hủy đăng ký theo giá trị)

Q294. Sử dụng trình biên dịch Java IDL để xử lý giao diện mà bạn đã xác định trong Bài tập 17.1. Kiểm tra định nghĩa của chữ
ký cho các phương thức pairIn và đọcPair trong Java được tạo tương đương với giao diện IDL. Cũng xem định nghĩa được tạo
của phương thức chủ cho đối số giá trị vì các phương pháp ghép đôi và readPair . Hiện nay cho một thí dụ hiển thị thế nào các
khách hàng sẽ gọi cặpIn giải thích cách nó sẽ nhận được giá trị được trả về thông qua đối số thứ hai .
Ans.
Giao diện Java là:
giao diện công cộng TaskBag mở rộng org.omg.CORBA.Object { void pairOut (trong Khóa p, trong Giá trị giá trị);
void pairIn ( trong Khóa p, ngoài giá trị ValueHolder ); void readPair (trong Khóa p, ngoài giá trị ValueHolder ); int
numberOfTasks ();
}
Lớp ValueHolder có một biến thể hiện
Giá trị giá trị công khai ;
và một nhà xây dựng
công khaiHolder ( Giá trị arg ) { giá trị = tranh luận ;
}
Trước tiên, máy khách phải lấy một đối tượng từ xa tham chiếu đến TaskBag (xem Hình 17.5). có lẽ thông qua dịch vụ đặt tên .
...
Túi nhiệm vụ taskBagRef = TaskBagHelper.narrow ( taskBagRef.resolve (đường dẫn)); Giá trị aGiá trị ;
taskbagRef.pairIn (“Một số khóa”, ValueHolder mới ( aValue ) );
Giá trị bắt buộc sẽ nằm trong biến aValue .

Q295. Cho một thí dụ đến buổi bieu diễn thế nào một Java khách hàng sẽ truy cập các thuộc tính cho các con số của nhiệm vụ
trong đối tượng Túi tác vụ. Ở những khía cạnh nào thì một thuộc tính khác với một biến thể hiện của một đối tượng?
Ans.
Giả sử thuộc tính IDL được gọi là numberOfTasks như trong câu trả lời cho Bài tập 17.1 . Sau đó, khách hàng sử dụng phương
thức numberOfTasks để truy cập thuộc tính này. ví dụ
taskbagRef.numberOfTasks ();
Thuộc tính biểu thị phương pháp cái đó một khách hàng có thể gọi Trong một CORBA sự vật. Họ làm không phải cho phép các
khách hàng đến đưa ra bất kỳ giả định nào về dung lượng lưu trữ được sử dụng trong đối tượng CORBA, trong khi một biến thể
hiện khai báo kiểu của một biến. Một thuộc tính có thể được cài đặt như một biến hoặc nó có thể là một phương thức tính toán

5
kết quả. Dù bằng cách nào, máy khách sẽ gọi một phương thức và máy chủ thực hiện nó.

Q296. Giải thích tại sao các giao diện cho các đối tượng từ xa nói chung và các đối tượng CORBA nói riêng không cung cấp
hàm tạo. Giải thích cách các đối tượng CORBA có thể được tạo ra khi không có các nhà xây dựng.
Ans.
Nếu các máy khách được phép yêu cầu máy chủ tạo các phiên bản của một giao diện nhất định, thì máy chủ sẽ cần cung cấp
việc triển khai giao diện đó. Sẽ hiệu quả hơn nếu máy chủ cung cấp triển khai và sau đó cung cấp giao diện của nó.
Các đối tượng CORBA có thể được tạo trong máy chủ:
1. máy chủ ( ví dụ: trong phương thức chính ) tạo một thể hiện của lớp triển khai và sau đó xuất một tham
chiếu đối tượng từ xa để truy cập các phương thức của nó.
2. Một nhà máy phương pháp (Trong nữa CORBA sự vật) tạo ra một ví dụ của các thực hiện lớp và sau đó
xuất một tham chiếu đối tượng từ xa để truy cập các phương thức của nó.
Q298. Thảo luận về các chức năng của kho triển khai theo quan điểm về khả năng mở rộng và khả năng chịu lỗi.
Ans.
Kho triển khai được các máy khách sử dụng để định vị các đối tượng và kích hoạt các triển khai. Một tham chiếu đối tượng từ
xa chứa địa chỉ của IR quản lý việc triển khai nó.
Một IR được chia sẻ bởi các máy khách và máy chủ trong một số miền vị trí.
Đến cải thiện khả năng mở rộng, một số IR có thể thì là ở triển khai, với các triển khai phân vùng giữa họ (các sự vật người
giới thiệu định vị các phù hợp IR). khách hàng có thể tránh xa không cần thiết yêu cầu đến một hồng ngoại nếu họ phân tích cú
pháp tham chiếu đối tượng từ xa để khám phá xem chúng có đang giải quyết một yêu cầu đối với việc triển khai đối tượng đã
được định vị hay không.
Từ quan điểm về khả năng chịu lỗi, IR là một điểm lỗi duy nhất. Thông tin trong các IR có thể được sao chép - lưu ý rằng một
tham chiếu đối tượng từ xa có thể chứa địa chỉ của một số IR. Khách hàng có thể thử chúng lần lượt nếu không thể lấy được.
Đề án tương tự có thể được sử dụng để cải thiện tính khả dụng.

Q299. Các đối tượng CORBA có thể được di chuyển từ máy chủ này sang máy chủ khác ở mức độ nào?
Ans.
Các IOR liên tục của CORBA chứa địa chỉ của IR được sử dụng bởi một nhóm máy chủ. IR đó có thể định vị và kích hoạt các
đối tượng CORBA trong bất kỳ máy chủ nào trong số đó. Do đó, nó vẫn có thể xử lý các đối tượng CORBA di chuyển từ máy
chủ này sang máy chủ khác trong nhóm. Nhưng tên bộ điều hợp đối tượng là chìa khóa để triển khai Trong các IR. Vì vậy tất cả
các của các các đối tượng Trong một người phục vụ phải di chuyển cùng với nhau đến nữa người phục vụ. Điều này có thể thì
là ở sửa đổi qua cho phép các nhóm của các đối tượng ở trong mỗi người phục vụ đến có tách rời sự vật bộ điều hợp và đến
được liệt kê dưới các tên bộ điều hợp đối tượng khác nhau trong IR.
Ngoài ra, các đối tượng CORBA không thể di chuyển đến máy chủ sử dụng IR khác. Các máy chủ có thể di chuyển và đăng ký
với một IR mới, nhưng sau đó có các vấn đề liên quan đến việc tìm nó từ miền vị trí cũ, điều này sẽ cần phải có thông tin
chuyển tiếp.

Q300. Thảo luận về những lợi ích và hạn chế của tên hai phần hoặc NameComponents trong dịch vụ đặt tên CORBA .
Ans.
Một TênThành phần chứa một Tên và một loại . Các Tên đồng ruộng Là các Tên qua cái mà các thành phần Là được gắn nhãn
(như thành phần tên trong tệp hoặc tên DNS).
Trường loại được dùng để mô tả tên. Nó không rõ ràng rằng điều này có bất kỳ chức năng hữu ích. Việc sử dụng hai phần cho
mỗi tên làm phức tạp giao diện lập trình. Không có nó, mỗi thành phần tên có thể là một chuỗi đơn giản.

Q301. Cho một thuật toán cái đó mô tả thế nào một nhiều phần Tên Là giải quyết Trong các CORBA đặt tên Dịch vụ. Một
chương trình máy khách cần phân giải tên nhiều phần với các thành phần “A”, “B” và “C”, liên quan đến ngữ cảnh đặt tên ban
đầu. Nó sẽ chỉ định các đối số cho thao tác giải quyết trong dịch vụ đặt tên như thế nào?
Ans.
Đặt tên nhiều phần, mn [ ] với các thành phần mn [0], mn [1], mn [2], ... mn [N], bắt đầu trong ngữ cảnh C. Lưu ý mn thuộc loại
Tên (một chuỗi NameComponents ).
Phương thức giải quyết trả về RemoteObjectRef của đối tượng (hoặc bối cảnh) trong bối cảnh phù hợp với tên,
mn [ ]. Có một số cách mà giải pháp có thể thất bại:
i) Nếu tên mn dài hơn đường dẫn trong biểu đồ đặt tên, sau đó khi mn [ i ] ( i < n ) được tra cứu, chúng tôi
nhận được một đối tượng và ném NameNotFound ngoại lệ với lý do NonContext . Giả sử rằng độ dài ( mn ) > 0 để bắt đầu.

5
ii) Nếu phần nm[ i ] không khớp với tên trong ngữ cảnh hiện tại, hãy ném NameNotFound ngoại lệ với lý do
thiếuTên .
iii) nếu một RemoteObjectRef lần lượt ngoài không phải đến tham khảo đến một sự vật hoặc định nghĩa
bài văn tại tất cả các ném một TênKhông Tìm Thấy
ngoại lệ với lý do không hợp lệRef .
Một câu trả lời phức tạp hơn có thể trả về phần còn lại của đường dẫn với ngoại lệ. Thuật toán có thể được định nghĩa như sau:
RemoteObjectRef giải quyết ( C, Tên mn []) { RemoteObjectRef ref = lookInContext (C, đầu tiên ( mn ));
if(ref==null) ném NameNotFoundException ( missName ); khác if(length( mn ) == 1) return ref;
khác nếu (loại (ref) == đối tượng) ném NameNotFoundException ( NonContext ) khác giải quyết ( C', đuôi ( mn ));
}
trong đó lookInContext ( C, name) tra cứu thành phần tên, tên trong ngữ cảnh C và trả về một
RemoteObjectRef của một đối tượng hoặc ngữ cảnh (hoặc null nếu không tìm thấy tên).
Họ tên ;

NamingContext C = resolve_initial_references (“ NameService ”); name[ 0] = new NameComponent (“A”,””);


name[ 1] = new NameComponent (“B”,””);
name[ 2] = new NameComponent (“C”,””); C. giải quyết (tên);

Q302. Một ảo xí nghiệp bao gồm của một thu thập của các công ty ai là hợp tác với một nữa mang theo ngoài một cụ thể dự án.
Mỗi Công ty mong muốn đến cung cấp các khác với truy cập đến chỉ có của _ nó là CORBA các đối tượng liên quan, thích hợp
đến các dự án. Mô tả một phù hợp đường vì các tập đoàn đến liên kết việc đặt tên CORBA của họ Dịch vụ .
Ans.
Giải pháp nên gợi ý rằng mỗi công ty quản lý biểu đồ đặt tên của riêng mình và quyết định phần nào của nó sẽ được cung cấp để
chia sẻ bởi các công ty khác trong doanh nghiệp ảo. Mỗi công ty cung cấp các khác với một Xa xôi sự vật tài liệu tham khảo đến
các chia sẻ phần của của chúng đặt tên đồ thị (một Xa xôi tham chiếu đối tượng có thể được chuyển đổi thành một chuỗi và được
chuyển cho những người khác, ví dụ: qua email). Mỗi công ty cung cấp các tên liên kết tham chiếu đối tượng từ xa với tập hợp
các đối tượng CORBA do các công ty khác nắm giữ thông qua biểu đồ đặt tên của nó. Các công ty có thể đồng ý về một kế
hoạch đặt tên chung.

Q303. Thảo luận cách sử dụng các nhà cung cấp và người tiêu dùng được kết nối trực tiếp của dịch vụ sự kiện CORBA trong
định nghĩa bài văn của các chia sẻ bảng trắng đăng kí. Các đẩy người tiêu dùng và ĐẩyNhà cung cấp giao diện được định nghĩa
trong IDL như sau:
giao diện PushConsumer {
void push( trong bất kỳ dữ liệu nào) tăng (Ngắt kết nối); vô hiệu ngắt_push_consumer ();
}
giao diện PushSupplier {
vô hiệu ngắt kết nối_push_ nhà cung cấp ( );
}
Nhà cung cấp hoặc người tiêu dùng có thể quyết định chấm dứt liên lạc sự kiện bằng cách gọi
Disconnect_push_ nhà cung cấp ( ) hoặc Disconnect_push_consumer () tương ứng.
Ans.
Ứng dụng bảng trắng dùng chung được mô tả ở trang 195-6.
Chọn sử dụng mô hình đẩy hoặc kéo . Chúng tôi sử dụng mô hình đẩy trong đó nhà cung cấp (đối tượng quan tâm) bắt đầu các
chuyển khoản của thông báo đến thuê bao (người tiêu dùng). Từ chúng tôi có chỉ có một loại hình của sự kiện trong ứng dụng
này (một GraphicalObject mới đã được thêm vào tại máy chủ), chúng tôi sử dụng chung sự kiện.
Trong mô hình đẩy, người tiêu dùng (máy khách bảng trắng) phải triển khai PushConsumer giao diện. Nó có thể thực hiện điều
này bằng cách cung cấp triển khai một công cụ với giao diện sau (bao gồm cả phương thức đẩy ).
giao diện WhiteboardConsumer : PushConsumer { đẩy (trong bất kỳ dữ liệu nào) tăng (Đã ngắt kết nối);
};
Các thực hiện sẽ làm đẩy làm sao cũng được Là cần thiết - đến lấy các muộn nhất đồ họa các đối tượng từ các người phục vụ.
Máy khách tạo một phiên bản của WhiteboardConsumer và thông báo cho máy chủ về nó.
Các nhà cung cấp (của chúng tôi người phục vụ) cung cấp một hoạt động cho phép khách hàng đến báo nó cái đó họ là người
tiêu dùng. Ví dụ:

5
ví dụ: addConsumer ( Người tiêu dùng WhiteboardConsumer )
// thêm người tiêu dùng này vào một vectơ của WhiteboardConsumer s
Bất cứ khi nào một Mới đồ họa sự vật Là tạo, các người phục vụ cuộc gọi các đẩy hoạt động Trong gọi món đến gửi một Sự kiện
đến máy khách, chuyển dữ liệu sự kiện (số phiên bản) làm đối số. Ví dụ ( Any là đại diện của Java cho CORBA any):
Bất kỳ một;
phiên bản int;
// gán phiên bản int cho Any a
// lặp lại cho tất cả người tiêu dùng trong vector
người tiêu dùng.push (a);

Q304. Mô tả cách xen kẽ Kênh sự kiện giữa nhà cung cấp và người tiêu dùng trong giải pháp của bạn cho 17.13. Kênh sự kiện
có giao diện IDL sau:
giao diện EventChannel { ConsumerAdmin for_consumers (); Nhà cung cấpQuản trị viên for_suppliers ();
};
nơi các giao diện SupplierAdmin và ConsumerAdmin , cho phép nhà cung cấp và người tiêu dùng nhận proxy được định nghĩa
trong IDL như sau:
giao diện Nhà cung cấpQuản trị viên { ProxyPushConsumer lấy_push_consumer ();
---
};
giao diện ConsumerAdmin { Nhà cung cấp ProxyPush get_push_supplier ();
---
};
Giao diện cho người tiêu dùng proxy và nhà cung cấp proxy được định nghĩa trong IDL như sau:
giao diện ProxyPushConsumer : PushConsumer {
void connect_push_supplier (trong nhà cung cấp PushSupplier ) tăng ( Đã kết nối );
};
giao diện ProxyPushSupplier : Nhà cung cấp đẩy {
void connect_push_consumer (trong người tiêu dùng PushConsumer ) tăng ( Đã kết nối );
};
Lợi thế nào đạt được khi sử dụng kênh sự kiện?
Ans.
Chúng ta cần giả định điều gì đó để tạo kênh sự kiện. ( Ví dụ: đặc điểm kỹ thuật của dịch vụ Sự kiện có một ví dụ trong Phụ lục
cho thấy việc tạo kênh sự kiện từ một nhà máy.
Sự kiệnChannelFactory ecf = ... ecf.create _eventchannel ();
Kênh sự kiện có thể được tạo bởi máy chủ bảng trắng và được đăng ký với Dịch vụ đặt tên để khách hàng có thể lấy một Xa xôi
tài liệu tham khảo đến nó. Hơn đơn giản, các khách hàng có thể lấy một Xa xôi tài liệu tham khảo đến các Sự kiện kênh bằng
phương pháp RMI trong giao diện máy chủ.
Kênh sự kiện sẽ thực hiện công việc gửi từng sự kiện đến tất cả người tiêu dùng.
Chúng tôi yêu cầu một người tiêu dùng đẩy proxy nhận tất cả thông báo từ máy chủ bảng trắng. Kênh sự kiện chuyển tiếp nó tới
tất cả các nhà cung cấp đẩy proxy - mỗi nhà cung cấp một cho khách hàng.
Máy chủ bảng trắng (như một phiên bản của PushSupplier ) nhận một người tiêu dùng proxy từ kênh sự kiện và kết nối với nó
bằng cách cung cấp tham chiếu đối tượng của chính nó.
Nhà cung cấpQuản trị viên sadmin = ec.for_ nhà cung cấp ( ); ProxyPushNgười tiêu dùng ppc = sadmin.obtain_push_consumer
();
Nó kết nối với người tiêu dùng proxy bằng cách cung cấp tham chiếu đối tượng của chính nó
ppc.connect _push_supplier (cái này)
Nhà cung cấp đẩy dữ liệu đến kênh sự kiện, kênh này sẽ đẩy dữ liệu đến người tiêu dùng. Nó có thể cung cấp các sự kiện cho
một hoặc nhiều người tiêu dùng.
Các hình mới phương pháp của shapeListServant (Nhân vật 17.3) sẽ sử dụng các đẩy hoạt động đến báo các kênh sự kiện, mỗi
khi một GraphicalObject mới được thêm vào. ví dụ
ppc.push (phiên bản);
Như trước đây, mỗi khách hàng triển khai đối tượng CORBA với PushConsumer giao diện. Sau đó, nó nhận một nhà cung cấp

5
proxy từ kênh sự kiện rồi kết nối với nó bằng cách cung cấp tham chiếu đối tượng của chính nó.
Quản trị viên người tiêu dùng cadmin = ec.for_ người tiêu dùng ( ); Nhà cung cấp ProxyPush pps = cadmin
.obtain_push_supplier ();
Nó sẽ kết nối với nhà cung cấp proxy bằng cách cung cấp tham chiếu đối tượng của chính nó
trang . connect_push_supplier (cái này);
Như trước đây, khách hàng nhận thông báo qua phương thức đẩy trong PushConsumer của nó giao diện.
Các thuận lợi của sử dụng một Sự kiện kênh truyền hình Là cái đó các bảng trắng người phục vụ làm không phải cần đến biết thế
nào nhiều các máy khách được kết nối cũng như không đảm bảo rằng các thông báo được gửi tới tất cả chúng, sử dụng các đặc
điểm độ tin cậy thích hợp.

Chương 18 Giải bài tập


Q305 Hạt nhân được thiết kế cho hoạt động của bộ xử lý khác với hạt nhân chỉ dành cho hoạt động trên máy tính có bộ xử lý
đơn như thế nào?
Ans.
Các vấn đề phát sinh do nhu cầu phối hợp và đồng bộ hóa quyền truy cập của các hạt nhân vào các cấu trúc dữ liệu được chia sẻ.
Nhân của máy tính một bộ xử lý đạt được sự loại trừ lẫn nhau giữa các luồng bằng cách thao tác với mặt nạ ngắt phần cứng.
Thay vào đó, các hạt nhân trên bộ đa xử lý phải sử dụng cơ chế dựa trên bộ nhớ dùng chung, chẳng hạn như spinlocks. Hơn thế
nữa, quan tâm phải thì là ở Lấy Trong thi hành bộ nhớ đệm giao thức vì thế như đến sản xuất một kỉ niệm người mẫu với sự đảm
bảo nhất quán cần thiết.

Q306. Xác định mô phỏng hệ điều hành (cấp độ nhị phân). Tại sao nó được mong muốn và, cho rằng nó được mong muốn, tại
sao nó không được thực hiện thường xuyên?
Ans.
Mô phỏng hệ điều hành cấp nhị phân thực thi các tệp nhị phân chạy trên hệ điều hành gốc mà không cần điều chỉnh và có cùng
kết quả (chức năng và hành vi lỗi ). Ngược lại, mô phỏng cấp nguồn yêu cầu biên dịch lại chương trình và có thể hoạt động khác
vì một số chức năng 'hệ thống' thực sự được mô phỏng trong thư viện.
Mô phỏng cấp độ nhị phân là mong muốn để người dùng có thể duy trì khoản đầu tư phần mềm của họ trong khi di chuyển sang
một hệ thống có chức năng vượt trội. Về mặt kỹ thuật, việc đạt được mô phỏng cấp độ nhị phân rất phức tạp. Các nhà sản xuất
hệ điều hành giả lập có thể thay đổi chức năng của hệ điều hành gốc đó, bỏ lại quá trình mô phỏng.

Q307. Giải thích tại sao nội dung của thông báo Mach được gõ.
Ans.
Nội dung của thông báo Mach được gắn thẻ loại vì:
a) Các nhà thiết kế muốn hỗ trợ sắp xếp các loại dữ liệu đơn giản như một dịch vụ hệ thống.
b) Nhân theo dõi chuyển động của quyền cổng, để giám sát kết nối truyền thông, để chuyển giao Hải cảng địa điểm gợi ý vì
gửi quyền và đến thực hiện Hải cảng di cư vì nhận quyền. Vì thế các quyền phải được gắn thẻ trong tin nhắn.
c) Các thông báo có thể chứa các con trỏ tới dữ liệu ngoài dòng mà hạt nhân phải biết.

Q308. Bàn luận cho dù các máy móc hạt nhân có khả năng đến màn hình các con số của gửi quyền vì một cụ thể Hải cảng Nên
được mở rộng vào mạng.
Ans.
Trên thực tế, máy chủ mạng Mach thực hiện giám sát số lượng quyền gửi tới một cổng qua mạng. Các máy khách không phải lúc
nào cũng kết thúc một cách dễ dàng và do đó, tính năng này hữu ích cho các máy chủ cần thu gom rác các cổng khi không có
máy khách nào có thể gửi cho chúng. Tuy nhiên, sự thuận tiện này đạt được bằng chi phí quản lý đáng kể. Có vẻ như tốt hơn là
có thể tắt tính năng này nếu không có nhu cầu mạnh mẽ – có lẽ trên cơ sở từng cổng.

Q 309. Tại sao Mach cung cấp các bộ cổng trong khi nó cũng cung cấp các luồng?
Ans.
Các luồng Mach cấp hạt nhân là một tài nguyên đắt tiền và hạn chế. Một số nhiệm vụ có được hàng ngàn cổng. Thay vì của sử
dụng một ngàn chủ đề, một nhỏ bé con số của chủ đề có thể đọc tin nhắn từ một Hải cảng bộ chứa tất cả các cổng và gửi đi quá

5
trình xử lý thông báo tùy theo cổng mà mỗi thông báo đến.

Q310. Tại sao Mach chỉ cung cấp một cuộc gọi hệ thống liên lạc duy nhất, mach_msg ? Nó được sử dụng bởi máy khách và máy
chủ như thế nào?
Ans.
Một cuộc gọi thay thế hai cuộc gọi hệ thống cho mỗi tương tác máy khách-máy chủ bằng một cuộc gọi (tiết kiệm hai lần chuyển
đổi miền ). Các khách hàng cuộc gọi gửi một thông điệp và nhận được một Đáp lại; các người phục vụ cuộc gọi gửi các Đáp lại
đến các yêu cầu trước đó và nhận yêu cầu tiếp theo.

Q311 Sự khác biệt giữa cổng mạng và cổng (cục bộ) là gì?
Ans.
'Cổng mạng' là sự trừu tượng hóa của một cổng toàn cầu - một cổng mà các luồng trên nhiều máy có thể gửi tin nhắn.
Cổng mạng được triển khai bởi một cổng cục bộ và mã định danh duy nhất trên toàn cầu, được duy trì bởi một máy chủ mạng tại
mỗi máy chuyển tiếp thông báo mạng đến cổng cục bộ và tham gia định vị cổng.
Một máy chủ trong Mach quản lý nhiều thingumajig tài nguyên.
(i) Thảo luận về những lợi thế và bất lợi của việc liên kết:
a) một cổng duy nhất với tất cả các thingumajigs;
b) một cổng duy nhất cho mỗi thứ;
c) một cổng cho mỗi khách hàng.
(ii) Một khách hàng quân nhu một điềuumajig định danh đến các người phục vụ, cái mà trả lời với một Hải cảng bên phải. Gì
loại hình của cổng phải Nên các người phục vụ gửi mặt sau đến các khách hàng? Giải thích tại sao các may chủ định danh vì các
Hải cảng bên phải và của khách hàng có thể khác nhau.
(iii) Một máy khách thingumajig cư trú tại một máy tính khác với máy chủ. Giải thích chi tiết cách máy khách sở hữu quyền
cổng cho phép nó giao tiếp với máy chủ, mặc dù nhân Mach chỉ có thể truyền quyền cổng giữa các tác vụ cục bộ.

Q312. Giải thích trình tự các sự kiện giao tiếp diễn ra trong Mach khi máy khách gửi thông báo yêu cầu thao tác trên thingumajig,
giả sử một lần nữa rằng máy khách và máy chủ cư trú trên các máy tính khác nhau.
Ans.
i) Việc liên kết một cổng với tất cả các thingumajigs sẽ giảm thiểu số lượng cổng. Nhưng nó gây khó khăn cho việc di chuyển
một số chứ không phải tất cả các thingumajigs với một máy chủ khác trong thời gian chạy. Di dời tài nguyên cá nhân có thể
được mong muốn vì lý do hiệu suất.
liên kết một Độc thân Hải cảng với mỗi điềuumajig đòi hỏi có tiềm năng lớn con số của cảng, nhưng nó cho phép bất kỳ tài
nguyên nào được di chuyển với một máy chủ khác trong thời gian chạy, độc lập với các máy chủ khác. Nó cũng giúp dễ dàng
thay đổi số lượng và mức độ ưu tiên của các luồng được liên kết với từng tài nguyên.
Việc liên kết một cổng với mỗi máy khách sẽ gây khó khăn cho việc di chuyển tài nguyên sang các máy chủ khác. Ưu điểm duy
nhất của sơ đồ này là một máy chủ có thể chấp nhận danh tính của hiệu trưởng liên quan khi nó xử lý các yêu cầu đến một cổng
cụ thể (giả sử rằng Mach đảm bảo tính toàn vẹn của cổng).
ii) Các người phục vụ Nên gửi một gửi bên phải vì các may chủ Hải cảng. Các định danh có thể khác nhau, tại vì mỗi sử dụng
tên cục bộ, được phân bổ từ không gian tên cục bộ của chính nó và không hợp lệ ngoài nó.
iii) Giả định cái đó các người phục vụ tại máy tính S gửi một gửi bên phải mặt sau đến một khách hàng tại máy tính C. _ Các tin
nhắn đầu tiên đến máy chủ mạng cục bộ tại S , máy chủ này sẽ kiểm tra tin nhắn và nhận thấy quyền gửi s bên trong nó. Nếu
máy chủ mạng chưa nhận được quyền này trước đó, thì nó sẽ tạo số cổng mạng n và thiết lập một mục nhập trong bảng liên quan
đến n đến s . Nó chuyển tiếp tin nhắn đến máy chủ mạng của C , kèm theo n và vị trí của mạng Hải cảng, cụ thể là S. _ Khi nào C
's mạng người phục vụ nhận được đây thông điệp, nó kiểm tra N và tìm thấy cái đó nó có cấm vào vì nó. Nó tạo ra một Hải cảng
với nhận quyền r và gửi quyền t , và tạo ra một bàn lối vào liên quan r đến N và
S. _ Nó chuyển tiếp tin nhắn đến máy khách cục bộ, kèm theo quyền gửi t .
iv) Khi máy chủ mạng tại C sau đó nhận được thông báo sử dụng r, nó sẽ biết chuyển tiếp thông báo trích dẫn cổng mạng n tới
máy chủ mạng tại S . Ngược lại, máy chủ mạng tại S biết rằng các thư được gửi đến n nên được chuyển tiếp bằng cách sử dụng
quyền gửi được lưu trữ của nó s , đề cập đến quyền của máy chủ Hải cảng.

Q313. Một máy móc nhiệm vụ trên cỗ máy Một gửi một thông điệp đến một nhiệm vụ trên một khác nhau cỗ máy B. _ Làm sao
5
nhiều miền quá trình chuyển đổi xảy ra và nội dung thư được sao chép bao nhiêu lần nếu thư được căn chỉnh theo trang?
Ans.
Chuyển đổi tên miền là: tác vụ A  hạt nhân A Máy chủ mạng A, Máy chủ mạng B hạt nhân B vụ B (4).
Sử dụng tính năng sao chép khi ghi không có lỗi trang ( tức là nếu tác vụ gửi không ghi vào thư trước khi quá trình truyền hoàn
tất), thư được sao chép bốn lần: một lần từ không gian địa chỉ của máy chủ Mạng đến bộ đệm nhân, một lần từ bộ đệm nhân đến
giao diện mạng và ngược lại ở đầu nhận.

Q314. Thiết kế một giao thức để đạt được sự minh bạch trong quá trình di chuyển khi các cổng được di chuyển.
Ans.
Trang 712 phác thảo một số thành phần của một giao thức như vậy. Các cơ chế có sẵn cho chúng tôi là (a) chuyển tiếp gợi ý tại
điểm giao từ cái mà các Hải cảng có di cư; (b) phát đa hướng, đã sử dụng đến định vị một Hải cảng sử dụng nó là định danh duy
nhất . Các giao thức phụ là:
(1) một giao thức định vị cổng và gửi lại người gửi hoạt động khi người gửi cố gắng gửi đến một cổng đã được di chuyển; giao
thức này phải bao gồm việc cung cấp các gợi ý chuyển tiếp thu gom rác và nó phải đối phó với các gợi ý và gợi ý không chính
xác chỉ ra các máy bị lỗi;
(2) một giao thức di chuyển hàng đợi tin nhắn trước khi các tin nhắn khác được thêm vào trang web mới.
chúng tôi rời bỏ các thông tin chi tiết đến các người đọc. Ghi chú cái đó một thực hiện của như là một giao thức dựa trên trên
TCP/UDP ổ cắm thay vì cổng Mach có thể được sử dụng trong triển khai di chuyển đối tượng.

Q315.Làm thế nào một trình điều khiển thiết bị như trình điều khiển mạng có thể hoạt động ở cấp độ người dùng?
Ans.
Nếu các thiết bị đăng ký là ánh xạ bộ nhớ, các quá trình phải thì là ở cho phép đến bản đồ các đăng ký vào trong nó là địa chỉ
cấp người dùng không gian. Nếu các đăng ký là có thể truy cập chỉ có qua đặc biệt hướng dẫn, sau đó các quá trình nhu cầu đến
thì là ở được phép chạy với bộ xử lý ở chế độ giám sát.

Q316.Giải thích hai kiểu chia sẻ vùng mà Mach sử dụng khi mô phỏng lệnh gọi hệ thống rẽ nhánh ( ) của UNIX, giả sử rằng các
đứa trẻ thực hiện tại các tương tự máy tính. Một đứa trẻ quá trình có thể lại cuộc gọi ngã ba ( ). Giải thích thế nào đây cho nảy
sinh một vấn đề về triển khai và đề xuất cách giải quyết vấn đề đó.
Ans.
Hai các loại của vùng đất chia sẻ cái đó máy móc sử dụng khi nào thi đua các UNIX ngã ba ( ) hệ thống cuộc gọi: (1) Vật lý chia
sẻ của trang Trong chỉ đọc chia sẻ vùng, ví dụ chương trình chữ, thư viện. (2) Sao chép trên ghi chia sẻ của sao chép vùng,
ví dụ: ngăn xếp và đống.
Nếu các đứa trẻ lại cuộc gọi ngã ba ( ), sau đó nó là sao chép trên ghi trang bàn mục cần đến tham khảo đến các Chính xác trang:
cái đó của nó cha mẹ hoặc nó là ông bà? Nếu các ông bà sửa đổi một chia sẻ trang, sau đó cả hai cha mẹ và những đứa trẻ trang
mục bảng nên được cập nhật. Việc theo dõi các thành phần phụ thuộc mặc dù các lệnh gọi đệ quy tùy ý tới fork ( ) là một vấn đề
về triển khai.

Q319. Một tệp được mở và ánh xạ cùng lúc bởi hai tác vụ nằm trên các máy không có bộ nhớ vật lý dùng chung. Thảo luận về
vấn đề nhất quán mà vấn đề này đặt ra. Thiết kế một giao thức sử dụng các thông báo máy nhắn tin bên ngoài Mach để đảm bảo
tính nhất quán tuần tự cho nội dung tệp (xem Chương 16).
Ans.
Giả sử rằng một số tác vụ nằm ở các máy khác nhau ánh xạ một tệp chung. Nếu tệp được ánh xạ ở chế độ chỉ đọc ở mọi vùng
được sử dụng để truy cập tệp thì không có vấn đề về tính nhất quán và các yêu cầu đối với các trang tệp có thể được đáp ứng
ngay lập tức. Tuy nhiên, nếu ít nhất một tác vụ ánh xạ tệp để ghi, thì máy nhắn tin bên ngoài (nghĩa là máy chủ tệp) phải triển
khai một giao thức để đảm bảo rằng các tác vụ không đọc các phiên bản không nhất quán của cùng một trang. Nếu không có
hành động đặc biệt nào được thực hiện, một trang có thể được sửa đổi tại một máy tính trong khi các phiên bản cũ của trang tồn
tại trong các đối tượng bộ nhớ cache tại các máy tính khác. Lưu ý rằng không có vấn đề nhất quán phát sinh giữa các nhiệm vụ
tại một hạt nhân chia sẻ một đối tượng bộ nhớ được ánh xạ. Nhân chỉ giữ một đối tượng bộ nhớ cache trong trường hợp này và
các khung liên quan được chia sẻ vật lý giữa các tác vụ.
Để duy trì tính nhất quán giữa một số đối tượng bộ nhớ cache (được quản lý bởi các nhân khác nhau), máy nhắn tin bên ngoài
kiểm soát, đối với mỗi trang của tệp được chia sẻ, cho dù trang đó có hiện diện thực tế tại máy khách hay không máy móc, và
nếu nó Là hiện nay, cho dù nhiệm vụ ở đó có chỉ đọc hoặc đọc viết truy cập đến các trang. Nó sử dụng lược đồ chia sẻ một
người ghi/nhiều người đọc được mô tả trong Chương 16. Để kiểm soát quyền truy cập, memory_object_lock_request thông báo
có thể được sử dụng để đặt quyền (cũng như hoặc thay vì chỉ đạo kernel ghi dữ liệu đã sửa đổi). memory_object_data_cung cấp
5
thông báo chứa tham số để chỉ định quyền chỉ đọc hoặc đọc-ghi.
Cho phép truy cập vào một trang . Một tác vụ gặp lỗi trang khi a) trang không thường trú được yêu cầu hoặc b) trang Là cư dân
nhưng chỉ đọc, và một nâng cấp đến viết truy cập Là yêu cầu. Đến xử lý các Lỗi trang, các hạt nhân tương ứng gửi đến các bên
ngoài máy nhắn tin (tập tin người phục vụ) một trong hai một memory_object_data_request thông điệp đến yêu cầu một trang
không thường trú hoặc memory_object_data_unlock thông báo yêu cầu nâng cấp để ghi quyền truy cập. Để đáp ứng các lời yêu
cầu, các bên ngoài máy nhắn tin có thể Đầu tiên hạ cấp khác nhân' truy cập đến các trang như mô tả Trong đoạn tiếp theo. Máy
nhắn tin bên ngoài phản hồi máy lỗi bằng memory_object_data_provided thông báo cung cấp dữ liệu trang và đặt quyền truy cập
vào nó hoặc memory_object_lock_request thông báo nâng cấp quyền truy cập trên trang để ghi quyền truy cập, nếu thích hợp.
Hạ cấp quyền truy cập vào một trang . Máy nhắn tin bên ngoài có thể đưa ra thông báo memory_object_lock_request tin nhắn
phù hợp thông số đến tìm về một trang từ một nhân nếu nó có đã sửa đổi, và tại các tương tự thời gian đến hạ cấp quyền truy cập
của nó xuống chỉ đọc hoặc không có. Quyền truy cập trở thành chỉ đọc nếu một trang được yêu cầu ở nơi khác để đọc; nó trở
thành null nếu trang được yêu cầu ở nơi khác để viết.

You might also like