Giáo trình Hệ điều hành phân tán: Phần 2 - Trường Đại Học Quốc Tế Hồng Bàng

20 13 0
Giáo trình Hệ điều hành phân tán: Phần 2 - Trường Đại Học Quốc Tế Hồng Bàng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Được hai QT TT sử dụng, phục vụ ống dẫn như một kết nối TT không định hướng mà một QT có thể ghi dữ liệu vào đuôi của ống dẫn và một QT khác có thể đọc từ đầu của nó.. ống dẫn được khởi [r]

(1)

Lập trình phân tán lập trình mạng Occam, RS Linda mô tả ngơn ngữ đồng thời mơ hình cho hệ thống chặt chẽ Chúng không đáp ứng cho hệ thống khơng chặt chẽ mạng máy tính, nơi vấn đề khả suốt khả tương tác toán tử cần suy nghĩ Trong hệ thống lỏng, thực hệ chương trình đồng thời cần cung cấp truyền thông tin cậy, đối tượng riêng biệt, nhân liệu hệ thống hỗn tạp Hai ngôn ngữ lập trình ORCA JAVA ví dụ liên quan đến lập trình hệ phân tán mạng

ORCA

Orca ngơn ngữ lập trình động thời dựa mơ hình đối tượng chia sẻ logic cho hệ thống phân tán lỏng Nó hỗ trợ việc thực song song QT máy khác nhờ truy nhập đồng thời đối tượng liệu chia xẻ Đối tượng liệu chia xẻ thể kiểu liệu trừu tượng người dùng định nghĩa Chúng phân tán vật lý nhân để truy nhập cục hiệu thuận tiện chúng hoàn toàn “trong suốt“ chương trình ứng dụng nhờ thi hành Orca

QT Orca khởi tạo, truyền thông xuyên qua đối tượng chia xẻ dùng phép toán người dùng định nghĩa đối tượng Ưu điểm việc sử dụng biến chia xẻ cho TTLQT tương phản với CTĐ hồn tồn rành mạch Truyền thơng liên xử lý hồn tồn “trong suốt” thơng tin tồn cục chia xẻ trực tiếp Viết chương trình đồng thời gần gũi với kiểu lập trình thông thường Thêm nữa, thể cấu trúc liệu phức tạp đối tượng phân tán vật lý, việc sử dụng CTĐ tường minh để truy cập vào phần cấu trúc liệu trở nên khó khăn khơng q dài dịng

(2)

này dồi cho lập trình đồng thời, đồng truyền thông QT lại không suốt Orca xem ngôn ngữ thoả hiệp tốt Linda RS

QT đồng thời Orca kích hoạt cách tạo QT máy hoàn toàn xác định lệnh fork:

fork Tên_QT ( tham số) { on [ số Bộ XL]}

Tham số truyền từ QT cha xuống QT giá trị, đối tượng thường đối tượng chia xẻ Giá trị đối tượng thường liệu cục QT Đối tượng chia xẻ toàn cục Chúng nhân xử lý cần giao thức cập nhật nguyên tử để trì quán đối tượng chia xẻ

Hai kiểu đồng đối tượng Orca cung cấp loại trừ ràng buộc cộng tác có điều kiện Orca cho tất phép tốn hồn tồn lập đối tượng Mỗi đối tượng gắn khóa để loại trừ ràng buộc Khố có hiệu lực mức đối tượng giới hạn với đối tượng đơn Khoá chia xẻ cung cấp phép lúc có nhiều phép tốn đọc đối tượng Để cộng tác có điều kiện, Orca sử dụng lệnh an tồn (Guarded)tương tự CSP:

Operation Op(parameters) //operationTên_toán_tử(các_tham_số)

Guarded condition statements; //Guardedđiều_kiệndocác_câu_lệnh;

Guarded condition statements; // Guardedđiều_kiệndocác_câu_lệnh;

Lệnh toán tử thực điều_kiện trongGuardedlà Nếu khơng QT bị chặn lại Nếu có điều kiện đúng, lệnh điều kiện chọn động để cung cấp cách thức thực không xác định Một tốn tử đối tượng chương trình ứng dụng Orca biên dịch thành nguyên thủy invoke (yêu cầu)

invoke(object, operation, parameters)

Các nguyên thủy invoke bẫy tới hệ thống thời gian thực Orca (Orca RTS:

(3)

bá theo đòi hỏi ngữ nghĩa khác Giao thức quảng bá kỳ vọng đảm bảo phía đối tượng nhận toàn TĐ quảng bá tất TĐ phân phát theo thứ tự (tức quảng bá xem nguyên tử) Thi hành giao thức quảng bá nguyên tử trình bày chương sau, giới thiệu khái quát cách tiếp cận đơn giản Orca để thực quảng bá nguyên tử Khi quảng bá RTS yêu cầu, nhân RTS gửi TĐ điểm-điểm đến lời gọi nhân đặc biệt

sequencer.Sequencergắn số hiệu dãy tới yêu cầu quảng bá TĐ bao gồm số hiệu dãy tới phía đối tượng nhân Chi số dãy nhân dùng để xác định thứ tự phân phát TĐ, kiểm tra TĐ bội, yêu cầusequencerchuyển lại TĐ TĐ bị

Đối tượng đơn vị liệu tảng Orca Đối tượng trình bày cấu trúc liệu chẳng hạn danh sách, đồ thị, thường dùng trỏ ngơn ngữ lập trình quy ước Con trỏ (pointer) địa máy Truyền địa máy ngữ nghĩa dẫn đến xung đột an ninh CTĐ HPT Cơ chế cho phép thi hành truyền cấu trúc liệu phức tạp có sẵn để tạo mơ hình đối tượng chia xẻ hữu dụng Orca giải vấn đề cách thay trỏ tên Với đối tượng RTS quản lý, mảng logic liệu có cấu trúc trì cho đối tượng Ví dụ, nhị phân đơn giảnt với nút {A, B, C} liên kết trái phải, trình bày sau:

t[1] = 6,A,8

t[6] = 0,B,0

t[8] = 0,C,0

Mỗi nút cấu trúc liệu tạo động nguyên thủy RTSaddnode(t), trả lại tên n cho nút Tên n dùng số hiệu cấu trúc mảng để đặt tên cho nút để liên kết tới nút khác Tương tự có nguyên thuỷ xóa nút làdeletenote(t,n) Chỉ dẫn tới nút bị xóa gặp lỗi thực Mảng đối tượng mang tính lơgic: định vị giải phóng lưu giữ chúng RTS quản lý động Dùng nút đặt tên để thi hành cấu trúc liệu đạt hiệu lực tới trỏ mà không cần địa máy Truyền cấu trúc liệu phức tạp trở thành chấp nhận với việc trả thêm tổng phí hệ thống thời gian chạy

Java

(4)

được phân tán cách vật lý hệ mạng diện rộng hỗn tạp Mỗi môdun phần mềm thi hành trì cá thể khác nút mạng Để thực ứng dụng mạng phải tập hợp số modun tới nút mạng đơn Khả liên thao tác để mở ứng dụng mạng cần hỗ trợ ba hệ thông sở:

1 Các giao diện chuẩn định nghĩa tốt để tích hợp môđun phần mềm, Năng lực thực mơđun phần mềm máy tính bất kỳ,

3 Hạ tầng cho cộng tác vận chuyển modun phần mềm

Để thuận tiện tích hợp phần mềm, Java thơng qua mơ hình hướng đối tượng, kiểu lập trình dùng rộng rãi phát triển phần mềm lớn Ngôn ngữ Java tương tự ngôn ngữ hướng đối tượng C++ Với chấp nhận với kiểu liệu, số logic, thực thể phần mềm mơ hình hóa đối tượng Java Một đối tượng tóm lược liệu thủ tục (hoặc phương pháp) liên quan đối tượng Đối tượng tạo việc thuyết minh lớp qua ví dụ Lớp mẫu xác định biến phương pháp chung cho tất đối tượng kiểu (lớp) Lớp thường chứa đựng lớp khác (thừa kế) Chúng sở để xây dựng khối chương trình Java Các file lớp thường dùng phân loại xếp thư viện lớp gọi gói gói nạp cục hay từ xa để khởi tạo đối tượng Phát triển phần mềm mạng trở thành dễ điều khiển thư viện lớp chia xẻ

Tiếp cận đặt với Java cho phép chạy modul phần mềm nơi theo ngữ nghĩa khái niệm máy ảo Hệ thống Java với trình biên dịch trình phiên dịch Đầu tiên, chương trình Java biên dịch thành file lớp chứa mã trung gian gọi applet (tiểu dụng) Tiểu dụng chương trình độc lập máy thơng dịch máy tính có trình thơng dịch Java Thơng dịch mã trung gian hiệu so với chạy mã máy biên dịch Tuy nhiên, ưu điểm lớn cách thức mã trung gian chuyển TĐ tới môi trường chạy trực tiếp không cần dịch lại Một ứng dụng mạng mang file mã byte đường truyền để thực Do file mã không cần lưu cục bộ, tốn trì tính qn cập nhật phiên phát triển phần mềm cộng tác loại bỏ

(5)

trợ dịch vụ tên Nó cung cấp suốt truy nhập, suốt định vị an toàn bổ sung

Hạ tầng để chuyển vận tiểu dụng Java sáng tỏ tốt nhờ việc tích hợp Java với hệ thống duyệt WWW Theo nhiều khía cạnh, triết lý Java giống với duyệt Web sử dụng giao thức giao vận giao thức chuyển siêu văn HTTP để chuyển modun HTML dọc theo nút mạng hỗn tạp HTML ngôn ngữ đánh dấu độc lập máy để mô tả liệu siêu văn Giống file lớp Java, file HTML đối tượng chứa file HTML khác định vị liên kết dùng định vị tài nguyên tổng thể toàn mạng URL Tiểu dụng Java hợp file HTML thơng dịch trình thơng dịch Java dựng nội trình duyệt Theo cách đó, trình duyệt vừa hiển thị nội dung liệu siêu văn tĩnh vừa chạy linh hoạt tiểu dụng Java Trình ứng dụng vơ kể Với trình duyệt đa luồng Java đa luồng, trình duyệt hiển thị đồng thời văn hình ảnh động trở thành tương tác khách phục vụ ứng dụng Một cách hiệu quả, trang Web trình bày file HTML trở thành lối vào tiểu dụng Java Khái niệm thực thông dịch trực tuyến Java Ví dụ, Postscript liệu đồ họa GIF thơng dịch hệ thống trình duyệt Tuy nhiên, Java ngôn ngữ đa suy nghĩ cẩn thận cho lập trình mạng

Lưu ý cuối vấn đề an toàn thiết kế Java An tồn vấn đề khó tính lập trình mạng hệ thống mở Thêm nữa, để định nghĩa ngơn ngữ chặt chẽ nhằm đề phịng lạm dụng ngôn ngữ, Java ngôn ngữ định kiểu mạnh giống Orca Mọi đối tượng Java phải định kiểu tường minh Trình biên dịch làm hiệu lực kiểm tra kiểu tĩnh Do máy thấy tiểu dụng từ bên theo mã trung gian, cần phải xác minh mã trung gian bị làm giả hay biến dạng Kiểu thông tin điều khiển khác tích hợp với tiểu dụng Trước thực tiểu dụng, mã buộc phải kiểm tra chặt chẽ kiểm tra Java (Java Virifier) xem vi phạm truyền tham số, chuyển đổi kiểu bất hợp pháp, khả tràn (vượt trần) hụt (xuống đáy) stack, vi phạm truy nhập sinh mã trung gian giả trình biên dịch đáng ngờ Việc kiểm tra lỗi thời gian chạy mức tối thiểu nhằm có thực hiệu

(6)

hạt khác truy nhập chúng khai báo công cộng Quy tắc tải lớp tuân theo Bộ tải lớp Java (the Java Class Loader) người lập trình Java định nghĩa

Câu hỏi tập

3.1 Khái niệm QT luồng, ý nghĩa khái niệm luồng Đặc điểm mơ hình Client/Server hệ phân tán

3.2 Vai trò dịch vụ thời gian hệ phân tán Giải pháp đồng hồ vật lý đồng hồ lôgic hệ phân tán

(7)

Truyền thông CTĐ

Các QT cộng tác hệ thống máy tính tương tác lẫn theo mơ hình TTLQT nhằm phối hợp thực TTLQT cộng tác QT phân tán chủ đề chương Chương ba nhấn mạnh tầm quan trọng mơ hình clien/server truyền thông quan hệ gắn kết TTLQT đồng TTLQT đóng vai trị đáng kể hệ phân tán cóphương pháp trao đổi liệu QT CTĐ Vì mơ hình truyền thông liên QT mức cao xây dựng CTĐ Mọi cộng tác QT phân tán dựa vào truyền thông liên QT CTĐ

TTLQT phụ thuộc vào lực định vị thực thể truyền thông Đây vai trị

dịch vụ têntrong hệ phân tán Chương trình bày ba mơ hình truyền thơng CTĐ sở mơ hình dịch vụ tên Tiếp theo minh hoạ cộng tác QT phân tán sử dụng hai toán kinh điển TTCTĐ: loại trừ ràng buộc phân tán chọn thủ lĩnh

TTLQT xem xét mức trừu tượng khác Bảng 4.1 cho năm mức từ mạng tới hệ giao vận tới QT ứng dụng Theo phương diện HĐH phân tán, quan tâm tới ba mức chuyển vận TĐ QT phân tán Chúng CTĐ, mơ hình truyền thơng định hướng dịch vụ mức cao sử dụng truyền thông hỏi/đáp truyền thơng giao dịch dựa mơ hình hỏi/đáp CTĐ

Bảng 4.1 cho thấy CTĐ mức thấp TT QT TT TT hỏi/đáp dựa khái niệm client/server Khi thi hành lời gọi thủ tục chương trình phân tán, mơ hình TT quy tới lời gọi thủ tục từ xa (RPC) Một cách tự nhiên, hỏi/đáp RPC dựa phương tiện CTĐ sở

Giao dịch dãy TT hỏi/đáp đòi hỏi TT nguyên tử Giao dịch biểu diễn đơn vị sở TT ứng dụng mức cao, chẳng hạn hệ CSDL Thực đồng thời giao dịch cần đồng để trì tính qn hệ thống Ngoài ra, khái niệm nhớ chia xẻ lôgic đối tượng liệu phương pháp TT khác biệt đáng kể so với ba mơ hình CTĐ Trong hệ thống với nhớ vật lý phân tán, nhớ chia xẻ mô CTĐ Lợi nhớ chia xẻ lôgic dễ dàng lập trình, TT suốt Giao dịch nhớ chia xẻ phân tán trình bày chương

Bảng 4.1 Các mức khác TT TTLQT

Giao dịch

(8)

CTĐ

HĐH mạng Kết nối giao vận Mạng truyền thơng Chuyển gói

TĐ tập đối tượng liệu, mà cấu trúc giải thich chúng xác định QT ngang hàng với Đối tượng liệu TĐ thường định kiểu nhằm dễ dàng chuyển đổi đối tượng liệu hệ thống hỗn tạp TĐ bao gồm đầu TĐ (chứa thông tin điều khiển phụ thuộc hệ thống) thân TĐ với kích thước cố định biến thiên Trong hệ thống CTĐ, QT TT chuyển TĐ đóng gói tớidịch vụ giao vận hệ thốngcung cấp kết nối truyền TĐ mạng Giao diện tới dịch vụ giao vận dịch vụ nguyên thủy hiển, chẳng hạn gửi nhận, biến thể hai Ngữ nghĩa dịch vụ nguyên thủy TT cần xác định hoàn toàn Các tốn đưa đoạn sau bao gồm TT trực tiếp hay gián tiếp, kết khối hay không kết khối, tin cậy hay không tin cậy, dùng vùng đệm hay không

Dịch vụ TT nguyên thủy sở

Hai dịch vụ TT nguyên thủy sở ví dụ để gửi nhận TĐ Sẽ hiệu QT ứng dụng rõ thực thể TT TĐ truyền:

send (đích, TĐ) receive (nguồn, TĐ)

trong nguồn đích = (tên QT, liên kết, hộp thư cổng)

Một câu hỏi nảy sinh trực tiếp từ dịch vụ nguyên thủy làm để địa hóa thực thể TT, nguồn đích? Dưới bàn luận bốn lựa chọn trên: tên QT, kết nối, hộp thư, cổng

(9)

Sơ đồ giả thiết tồn đường TT trực tiếp cặp hai QT Thực tế, đường TT suốt hồn tồn khơng ý tới kết nối giao vận TĐ Về quan niệm đơn giản để hợp lý có đường TT định hướng kép cặp hai QT TT Để cho phép đường truyền liệu phức QT TT trực tiếp, bắt buộc định danh đường dịch vụ TT nguyên thuỷ Đòi hỏi đưa đến khái niệmkết nối hayliên kết, tương tự với khái niệm chu trình ảo mạng TT TĐ gửi theo chu trình ảo khác Như vậy, điểm TT phức QT cần phải đinh danh việc sử dụng kết nối khác nhau, kết nối ánh xạ tới đường TT thực Giống chu trình ảo, kết nối tạo loại bỏ theo yêu cầu Chúng nhân hệ thống quản lý cục kênh TT không định hướng TĐ gửi qua kết nối hướng vào đường TT mạng phân phối tới máy chủ xa Máy chủ từ xa ánh xạ TĐ tới kết nối đầu vào QT nhận Hình 4.1.c tính hợp lý việc trì hai kết nối QT dùng hai số hiệu kết nối khác QT đọc cần ý kết nối tương tự với tên điểm vào thủ tục hẹn (đoạn 3.5.3) với lý chúng cung cấp điểm TT phức QT Tuy nhiên, giao vận liệu truyền tham số hẹn định hướng kép

Dùng tên QT số hiệu kết nối để định vị điểm TT cung cấp chếTT trực tiếp

(10)

Về quan niệm, hộp thư cấu trúc liệu toàn cục chia xẻ QT sản xuất (gửi) QT khách hàng (nhận) Dùng hộp thư đòi hỏi đồng xác dọc theo mạng mà tốn khó Do hộp thư dùng cho TT, gắn với cấu trúc chuyển vận yếu thi hành chúng cách dùng vùng đệm liên kết TT Cổng ví dụ tốt cho hộp thư Cổng khái niệm trừu tượng dịng xếp hàng có kích thước cố định hoạt động theo FIFO nhân trì TĐ gắn vào loại bỏ từ dòng đợi thao tác gửi nhận xuyên qua đường TT Như vậy, cổng tương tự danh sách ngoại trừ chúng định hướng kép có vùng đệm Các QT TT qua cổng gián tiếp Cổng tạo QT người dùng nhờ lời gọi hệ thống đặc biệt phù hợp với QT chủ đủ lực Chúng dẫn số hiệu cổng, mà bị nhầm lẫn với địa cổng giao vận giao vận gói (địa cổng giao vận cổng mạng suốt với QT người dùng) Khi thi hành, cổng QT ánh xạ tới cổng giao vận ngược lại Cổng hộp thư hình dung phục vụ TT đồng bộ, biện luận đoạn 3.6 Thuật ngữ cổng hộp thư thường tráo đổi (thay nhau) vài tài liệu Tương tự socket cổng HĐH UNIX Socket giao diện mức cao sử dụng khái niệm cổng Cổng có chủ nhân QT riêng biệt Cổng cung cấp TT nhiều-một (n-1) Hộp thư đối tượng chia xẻ cho phép truyền thông nhiều-nhiều (n-n)

Đồng hóa TĐ vùng đệm

(11)

Dịch vụ nguyên thủy gửi nhận coi kết khối QT gọi cần kết khối để phân phối hay nhận TĐ tương ứng Hầu hết hệ thống cho phép chọn dịch vụ nguyên thủy gửi/ nhận kết khối không kết khối Hầu hết ngầm định gửi không kết khối nhận kết khối Lý để thuận tiện, giả thiết phân phối TĐ đáng tin cậy QT gửi tiếp tục công việc cách hiệu sau TĐ dàn xếp nhân tới nhân gửi Mặt khác, QT nhận cần chờ TĐ xuất để thực công việc Tuy nhiên, khơng phải trường Chẳng hạn, QT gửi mong muốn đồng với QT nhận QT nhận mong muốn TĐ từ QT gửi phức không đủ chỗ cho thao tác nhận riêng biệt Tại phía nhận, kết khối hồn tồn rõ ràng; cần kết khối theo xuất TĐ Về phía QT gửi, rắc rối đôi chút QT gửi nên chờ việc nhận TĐ nhân nguồn, nhân đích, QT đích chí hồn thiện số thao tác QT nhận? Danh sách dẫn năm chức khác dịch vụ nguyên thủy gửi theo sơ đồ hình 4.3: 1.Gửi khơng kết khối, 1+8: QT gửi loại bỏ sau TĐ dàn xếp tới nhân nguồn

2.Gửi kết khối, 1+2+7+8: QT gửi loại bỏ sau TĐ truyền tới mạng 3.Gửi kết khối tin cậy, 1+2+3+6+7+8: QT gửi bị loại bỏ sau TĐ nhân đích nhận xong

4.Gửi kết khối tường minh, 1+2+3+4+5+6+7+8: QT gửi bị loại bỏ sau TĐ QT nhận xong

5.Hỏi đáp, 1-4, dịch vụ, 5-8: QT gửi bị loại bỏ sau TĐ xử lý QT nhận lời đáp trở lại QT gửi

(12)

muốn dịch vụ nguyên thủy cần cho mã quay cho biết kết thành công hay thất bại thao tác để qua phân tích mã quay để gửi TĐ xử lý lỗi

Trong sơ đồ hình 4.3, ngầm định tồn vùng đệm nhân gửi, nhân nhận mạng TT Vùng đệm nhân hệ thống cho phép TĐ gửi đến chí TĐ trước chưa phân phối Do QT gửi nhận chạy dị bộ, chúng tạo xử lý TĐ theo mức độ (tốc độ) khác Do có vùng đệm, không đồng trở nên êm ả Thêm nữa, khả QT gửi bị kết khối rút gọn thông lượng truyền tổng thể TĐ tăng lên Vùng đệm dùng để điều khiển lưu lượng mạng TT Trong HĐH, thông thường vùng đệm chia xẻ TT gửi nhận đa phần Quản lý vùng đệm hiệu trở thành tốn quan trọng Quản lý vùng đệm khơng quy trở thành nguyên nhân bế tắc TT

Về lơgic, kết hợp vùng đệm nhân gửi, nhân nhận, mạng thành vùng đệm lớn QT gửi tạo TĐ chèn chúng vào vùng đệm cịn QT nhận xóa khỏi vùng đệm sử dụng chúng Nếu vùng đệm không giới hạn, QT gửi dị không kết khối Một trường hợp đặc biệt khác thành phần vắng vùng đệm (zero-buffer) Trong trường hợp này, QT gửi QT nhận bắt buộc phải đồng (trách nhiệm đồng hóa dành cho người viết chương trình QT này) để đủ lực truyền TĐ (bất TĐ xuất trước hết phải đợi TĐ trước đó) Điều tương tự khái niệm hẹn kiểu gửi/nhận kết khối tường minh

API ống dẫn Socket

Như nói trên, tồn lượng lớn đa dạng dịch vụ nguyên thủy TT CTĐ với khái niệm giả thiết khác Khi TT thực nhờ tập hoàn toàn xác định giao diện chương trình ứng dụng chuẩn (API) tạo thuận lợi cho người dùng hiệu cho hệ thống TT QT người dùng sử dụng API độc lập với môi trường TT hạ tầng ống dẫn (pipe) socket hai API TTLQT sử dụng rộng rãi hai môi trường UNIX Windows

(13)

để ống dẫn hai QT QT phải khởi tạo ống dẫn, fork QT khác, gắn QT cha vào đầu đọc ống dẫn gắn đầu ghi ống dẫn tới QT Như dòng liệu chiều trở thành chuyển dịch QT cha sử dụng thao tác ghi đọc bình thường Đặc tả ống dẫn QT TT chia xẻ Điều ngụ ý ống dẫn sử dụng với QT có quan hệ với (tức là, QT khởi tạo thông qua thao tác fork) Trong điều kiện thông thường, QT đọc ghi giả thiết chạy đồng thời ống dẫn tạo ống dẫn tồn khoảng thời gian hai QT đọc ghi hoạt động Thao tác ghi ống dẫn không kèm thao tác đọc tương ứng vô nghĩa ống dẫn ngừng tồn QT ghi kết thúc

Dữ liệu ống dẫn dòng byte liên tục Tiếp cận chọn nhằm khớp với giả thiết chung cấu trúc file hướng byte UNIX Đơi mong muốn dịng liệu cấu trúc, chẳng hạn TĐ độ dài biến đổi kênh khái niệm ống dẫn mở rộng để bao gói TĐ Kiểu kênh TT hiểu dòng xếp hàng TĐ Dòng xếp hàng TĐ thi hành không gian nhớ nhân Nhiều hệ thống cung cấp dòng xếp hàng TĐ IPC API

Với QT không quan hệ (fork), cần định danh ống dẫn đặc tả ống dẫn chia xẻ Một giải pháp thay cấu trúc liệu ống dẫn nhân file FIFO đặc biệt File FIFO đặc biệt định danh tên đườngtương tự file thông thường ống dẫn với tên đường gọi làống dẫn có tên Với tên nhất, ống dẫn có tên chia xẻ QT rời rạc xuyên qua máy tính khác với hệ thống file chung Do ống dẫn có tên file QT TT khơng cần đồng thời tồn QT ghi ghi xong liệu tới ống dẫn có tên kết thúc trước thao tác đọc file xuất ống dẫn có tên dùng ngữ nghĩa file thông thường Chúng khởi tạo câu lệnhopentrước tạo truy nhập tới file FIFO

ống dẫn ống dẫn có tên thi hành tốn IPC giữanhà sản xuấtkhách hàng Trong toán nhà sản xuất khách hàng, QT sản xuất (gửi) QT khách (nhận) tương tác thơng qua vùng đệm chung để hồn thành TTLQT Vấn đề đồng loại trừ ràng buộc truy nhập vùng đệm cộng tác có điều kiện vùng đệm đầy rỗng Truy nhập vùng đệm ý khoảng tới hạn mà cần giám sát Điều kiện tràn rỗng vùng đệm tương tự kết khối gửi (sản xuất) nhận (khách hàng) với vùng đệm cố định Thi hành ống dẫn ống dẫn có tên đơn bảo đảm tính nguyên tử vùng đệm nhân chia xẻ file FIFO đặc biệt việc kết khối thao tác ghi đọc vùng lưu trữ chia xẻ đầy rỗng Các byte ghi từ QT phức tới ống dẫn đảm bảo không chen lẫn Cẩn thận đặc biệt ghi liệu riêng tới ống dẫn trước trở nên đầy Hoặc tồn byte TĐ ghi vào ống dẫn không

(14)

được chia xẻ, cần có IPC API chạy đỉnh dịch vụ giao vận Hai API TT liên QT liên miền dùng rộng rãi socket Berkeley Giao diện mức giao vận hệ thống (TLI) Socket Berkerley ví dụ minh họa API TT

Việc đặt tên kênh TT qua miền hỗn tạp không khả thi Tuy nhiên, kênh TT hình dung cặp gồm hai đầu mút TT Socket mút TT kết nối TT quản lý dịch vụ giao vận Tương tự việc sử dụng ống dẫn cho phép file I/O có ngữ nghĩa việcđọc từghi tớiống dẫn, mơ hình I/O mạng socket dựa I/O File quy ước Trừu tượng hóa I/O mạng I/O file làm tăng tính suốt truy nhập hệ thống Socket tạo nhờ lời gọi hệ thống socket cho đặc tả socket phục vụ thao tác I/O mạng tiếp sau, bao gồm đọc/ghi hướng file gửi/nhận đặc trưng TT Lời gọi hệ thống socket sử dụng nhiều giao thức mạng TCP, UDP IP TCP giao thức giao vận dòng thực hướng kết nối UDP giao thức giao vận sơ đồ không kết nối Chúng hai giao thức giao vận IP dùng để truyền dịng gói liệu giao thức tầng mạng không kết nối giao thức Internet Đặc tả socket nút TT logic (LCE: Logic Communication EndPoint) cục QT; bắt buộc phải phù hợp với nút TT vật lý (PCE: Physic CE) để truyền liệu Nút TT vật lý đặc tả địa máy chủ mạng cặp cổng giao vận Địa máy chủ mạng toàn cục, số hiệu giao vận sinh cục dịch vụ giao vận Việc phù hợp LCE với PCE thi hành lời gọi hệ thốngbind Hình 4.4 ví dụ TT ngang hàng không kết nối dùng lời gọi hệ thốngsocket, bindsendto/recvfrom Do TT không kết nối nên lời gọisendto/ recvfrombắt buộc chứa đặc tả socket cục PCE từ xa

Trong TT socket không kết nối QT ngang hàng bắt buộc phải biết PCE từ xa Có thể loại bỏ việc gọi tên hiển PCE từ xa lời gọi gửi/nhận lời gọi

(15)

TT Client/Server hướng kết nối Đối với TT Client/Server, dịch vụ cần có PCE rõ ràng Một phục vụ cần TT với khách phức có PCE chưa biết Khách đưa lời gọi connect tới phục vụ để hẹn (cuộc hẹn), với yêu cầu khách nhờ accept thiết lập có kết kết nối tới khách Về khái niệm, điều tương đương với thi hành hẹn Ada TT liên miền Hình 4.5 minh họa TT socket Client/Server hướng kết nối Trong thi hành UNIX, lời gọi socketlistenđược dùng để phục vụ chấp nhận kết nối đặc tả độ dài dòng xếp hàng (bao nhiêu lời hỏi xảy xếp hàng) Lời gọiaccept hẹn với lời gọi connectđược tích lũy lại dịng xếp hànglisten Một lời gọiacceptsẽ kết khối chưa có mộtconnectgiải Nếu có, xố bỏ u cầu connecttừ dịng đợi đưa đặc tả socket dùng để TT với khách kết nối Đặc tả socket cũ lại dịch vụ cho yêu cầu khách khác Trong thi hành phục vụ đồng thời, QT (luồng) phân nhánh kết nối sử dụng đặc tả socket

Socket an tồn

(16)

cung cấp tính suốt giao vận hoàn hảo sử dụng giao diện cung cấp dịch vụ (SPI: Service Provider Interface) trừu tượng làm dễ dàng tương thíchplug-incho hầu hết giao thức giao vận Phiên gần chứa tầng socket an tồn (SSL: Secure Socket Layer)

Địi hỏi an toàn TT Internet thúc đẩy IETF (Internet Engineering Task Force) phát triển SSL Mục tiêu SSL cung cấp:

- Bảo mật TT socket dùng mã đối xứng để mã hoá liệu - Tồn vẹn liệu socket kiểm tra tính toàn vẹn TĐ

- Xác thực phục vụ khách dùng mã hóa khóa cơng khai bất đối xứng

Điểm chủ yếu SSL chứa hai mức giao thức: giao thức Handshake giao thức Record Layer Giao thức Handshake tương ứng thiết lập khóa ghi

(khóa phiên TT để bí mật liệu) MAC (Message Authentication Check để toàn vẹn liệu) bí mật xác nhận tính xác thực phục vụ khách Giao thức Record Layer thích hợp để phân đoạn, nén/giãn nén mã hóa/giải mã ghi TĐ Kết cuối giao thức Handshake cấu trúc liệu chia xẻ (được gọi mastersecret) khách phục vụ biết được, mà biến đổi thànhwrite key

và mộtMACsecretđể TT an toàn Record Layer

Hình 4.6 trình bày kịch đơn giản giao thức Handshake SSL Khách muốn liên lạc với phục vụ cách gửi TĐClientHellotới phục vụ Thành phần TĐ chứa số ngẫu nhiên (randomC) tập thuật toán mật mã (CipherSuites) Số ngẫu nhiên dùng để tính tốn mastersecretquyết định CipherSuites danh sách lựa chọn mã hóa phục vụ đàm phán chọn Phục vụ trả lại cho khách TĐ phục vụHellochứa số ngẫu nhiênrandomS, thuật toán mã hóaCipherSuite

được chọn định danh phiên cho kết nối

(17)

hóa trình bày giao thức Handshake SSL hình 4.6 bỏ qua việc xác nhận tính hợp lệ giấy chứng nhận

Không cần giấy chứng nhận, phục vụ nặc danh gửi khố cơng khai TĐ phục vụKeyExchange tới Khách Khóa cơng khai khơng cần phải khóa ghi nhận Phục vụ sinh tạm thời khóa cơng khai để sử dụng theo lần yêu cầu khách Khách đáp lại TĐClientKeyExchangemang pre-mastersecret mã hóa theo khóa cơng khai tạm thời phục vụ Chỉ có phục vụ với khóa bí mật tương ứng giải mã pre-mastersecret Lúc đó, khách phục vụ chia xẻ pre-mastersecret hai số ngẫu nhiên Cả hai QT độc lập áp dụng hàm băm chiều tới thông tin chia xẻ để chuyển pre-mastersecret định chứa khóa ghi (write key) MAC bí mật Các khóa MAC bí mật dùng để liên kết với mật mã vừa đàm phán Chúng ChangeCipherSpec tạo hiệu nhằm thay mật mã cũ Các TĐfinishedchấm dứt việc bắt tay Chúng dùng để xác minh việc trao đổi khóa xác thực có thành cơng hay khơng Việc kiểm tra thông qua xác nhận TĐfinishedchứa kết băm mastersecret móc nối với TĐ bắt tay

(18)

và bền vững Khái niệm giao thức socket an toàn tiếp tục tiến hóa cải tiến

Truyền thơng nhóm phân phát bội (multicast)

Mơ hình TT CTĐ trình bày dùng cho TT điểm-điểm Mục mô tả nhu cầu thi hành TT nhóm đa điểm Cần lưu ý nhóm chất để phát triển phần mềm cộng tác hệ phân tán hay tự trị Quản trị nhóm QT đối tượng cần có chế TT phân phát bội để gửi TĐ tới thành viên nhóm Tồn hai kịch ứng dụng TT phân phát bội Đầu tiên khách mong muốn cố níu kéo dịch vụ từ phục vụ miễn có khả đáp ứng dịch vụ Thứ hai khách đòi hỏi dịch vụ từ tất thành viên nhóm phục vụ

Trong trường hợp đầu tiên, không cần phải tất phục vụ đáp ứng lại mà cần phục vụ Phân phát bội thực sởcố gắng nhất(best-effort) lặp lại cần thiết Hệ thống cần đảm bảo phân phát bội TĐ tới QT không bị mắc lỗi đạt Cách gọi phân phát bộicố gắng nhất

Trong trường hợp sau, cần đảm bảo phục vụ nhận yêu cầu tính bền vững phục vụ trì TĐ phân phát bội cần đáp ứng cho tất phục vụ nhận khơng phục vụ (tức tồn không nào); cách thường gọi làphân phát bội tin cậy Địi hỏi tồn khơng có nghĩa TĐ phân phát bội nhận cần đưa vào vùng đệm trước phân phối cho QT ứng dụng Chú ý phân phát bội tin cậy đồng ảo, TĐ phân phối trước nhận (Đồng ảo thảo luận phần sau)

Ihi hành phân phát bội phức tạp gặp nhiều thiếu thốn chưa có phân phát bội nguyên tử Lỗi QT nhận kết nối truyền thơng QT khởi tạo TĐ phát sử dụng chế hạn xác nhận QT khởi tạo sau tiếp tục phân phát bội cách loại bỏ thành viên lỗi nhóm Lỗi khởi tạo chiều (haft-way) phân phát bội giải cách giả định Rất khó khăn để xác định khởi tạo có lỗi hay khơng Để xác định từ lỗi toàn phận phân phát bội hoàn thiện, QT nhận bắt buộc chọn khởi tạo Kỹ thuật thông thường đòi hỏi QT nhận phải đưa vào đệm phân phát bội TĐ trở nên an tồn cho phân phối Lỗi kiểm sốt nhờ hệ thống ảo Phân phát bội bỏ qua đồng ảo không thực tin cậy; chúng làcố-gắng-nhất

(19)

Hình 4.7 cho số ví dụ TT nhóm u cầu thứ tự TĐ: G s tương ứng biểu diễn nhóm nguồn TĐ QT s đứng ngồi nhóm thành viên nhóm Giả thiết TĐ phân phát bội cần nhận phân phối lập lức theo thứ tự chúng gửi Nếu giả thiết cơng việc lập trình nhóm đơn giản nhiều Tuy nhiên điều đáng tiếc giả thiết khơng có thực thiếu ý nghĩa hệ phân tán khơng có thời gian tồn cục giao vận TĐ mạng gặp độ trễ TT đáng kể không ổn định Về ngữ nghĩa, phân phát bội xác định cho TĐ nhận theo thứ tự khác nút khác xếp lại phân phối tới QT ứng dụng theo quy tắc chặt chẽ nhỏ Thứ tự phân phát bội xếp theo độ tăng tính chặt chẽ:

+ Thứ tự FIFO: TĐ phân phát bội từ nguồn đơn phân phối theo thứ tự chúng gửi

+ Thứ tự nhân quả: TĐ quan hệ nhân từ nguồn phức phân phối theo thứ tự nhân chúng

(20)

Thi hành theo thứ tự FIFO (hình 4.7a) dễ dàng Do có TĐ gửi từ QT khởi tạo, TĐ gán số hiệu TĐ Điều khiển TT làm trễ TĐ loại bỏ TĐ lặp sử dụng dãy số hiệu Dãy số hiệu TĐ cục nguồn TĐ khơng thể kết hợp TĐ từ nguồn khác (xem hình 4.7 b) Thứ tự nhân thứ tự tổng TĐ phân phát bội từ nguồn khác công phu

Ngày đăng: 01/04/2021, 14:42

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan