Danh mục

Giáo trình Hệ điều hành phân tán: Phần 2

Số trang: 149      Loại file: pdf      Dung lượng: 1.73 MB      Lượt xem: 20      Lượt tải: 0    
Thư viện của tui

Xem trước 10 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nối tiếp phần 1 cuốn "Giáo trình Hệ điều hành phân tán" mời các bạn cùng tìm hiểu phần 2 để nắm bắt một số nội dung cơ bản về: Lập trình phân tán và lập trình trên mạng; truyền thông CTĐ; mô hình đối tượng các phục vụ tài nguyên và ngôn ngữ lập trình đồng thời; truyền thông hỏi-đáp;...
Nội dung trích xuất từ tài liệu:
Giáo trình Hệ điều hành phân tán: Phần 2 Lập trình phân tán và lập trình trên mạng Occam, RS và Linda được mô tả như những ngôn ngữ đồng thời hoặc những mô hình cho hệ thống chặt chẽ. Chúng không đáp ứng được cho hệ thống không chặt chẽ hoặc là mạng máy tính, nơi những vấn đề về khả năng trong suốt và khả năng tương tác các toán tử là cần được suy nghĩ. Trong hệ thống lỏng, sự thực hiện các hệ chương trình đồng thời cần được cung cấp sự truyền thông tin cậy, đối tượng riêng biệt, nhân bản dữ liệu và một hệ thống hỗn tạp. Hai ngôn ngữ lập trình ORCA và JAVA là ví dụ liên quan đến lập trình hệ phân tán và mạng. ORCA Orca là ngôn ngữ lập trình động thời dựa trên 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 hiện song song của QT trên các máy khác nhau nhờ truy nhập đồng thời đối tượng dữ liệu chia xẻ. Đối tượng dữ liệu chia xẻ là các thể hiện của kiểu dữ liệu trừu tượng được người dùng định nghĩa. Chúng có thể được phân tán vật lý hoặc được nhân bản để truy nhập cục bộ hiệu quả và thuận tiện nhưng chúng hoàn toàn “trong suốt“ đối với chương trình ứng dụng nhờ thi hành của Orca. QT Orca mỗi khi được khởi tạo, truyền thông xuyên qua các đối tượng chia xẻ khi dùng các phép toán người dùng định nghĩa trên các đối tượng đó. Ưu điểm của việc sử dụng biến chia xẻ cho TTLQT thì tương phản với CTĐ là hoàn toàn rành mạch. Truyền thông liên bộ xử lý là hoàn toàn “trong suốt” và các thông tin toàn cục có thể được chia xẻ trực tiếp. Viết một chương trình đồng thời là gần gũi với kiểu lập trình thông thường. Thêm nữa, nếu thể hiện cấu trúc dữ liệu phức tạp của đối tượng được phân tán vật lý, việc sử dụng CTĐ tường minh để truy cập vào từng phần của cấu trúc dữ liệu sẽ trở nên khó khăn nếu không quá dài dòng. Khái niệm cốt lõi được dùng trong hệ thống Orca là đối tượng chia xẻ lôgic và kiểu dữ liệu trừu tượng. Khái niệm đối tượng chia xẻ lôgic (hoặc cấu trúc dữ liệu) đã từng biết trong Linda còn khái niệm kiểu dữ liệu trừu tượng có trong SR. Trong Linda đối tượng chai xẻ (bao gồm dữ liệu và QT) là các bộ trong không gian bộ. Phương thức truy nhập là phù hợp (địa chỉ hóa nội dung) nhưng ở mức thấp (nguyên thủy in, out, rd). Mặc dù về ngữ nghĩa thì khá đơn giản và đẹp đẽ, nhưng viết một chương trình với cấu trúc dữ liệu phức tạp trong Linda là không trực giác (nhúng trong những ngôn ngữ lập trình). Dùng kiểu dữ liệu trừu tượng trong Orca thì cho phép sự chặt chẽ kiểm tra kiểu và độ mềm dẻo của các phép toán trên đối tượng. SR là ngôn ngữ định kiểu mạnh và có tính trừu tượng kiểu dữ liệu giống như Orca. Tuy nhiên, do không có khái niệm đối tượng chia xẻ logic nên SR phải dựa vào một tập hợp lớn nguyên thủy đồng bộ và truyền thông (cuộc hẹn, CALL, SEND, năng lực và những đồng bộ biến chia xẻ khác). Mặt dù ngôn ngữ 101/249 này khá dồi dào cho lập trình đồng thời, nhưng đồng bộ và truyền thông QT lại không trong suốt. Orca được xem như ngôn ngữ thoả hiệp tốt giữa Linda và RS. QT đồng thời trong Orca được kích hoạt bằng cách tạo ra một QT mới trên một máy hoàn toàn xác định bởi lệnh fork: fork Tên_QT ( các tham số) { on [ số Bộ XL]} Tham số được truyền từ QT cha xuống QT con có thể là giá trị, đối tượng thường hoặc đối tượng chia xẻ. Giá trị và đối tượng thường là những dữ liệu cục bộ của QT. Đối tượng chia xẻ là toàn cục. Chúng được nhân bản tại mỗi bộ xử lý và cần một giao thức cập nhật nguyên tử để duy trì nhất quán của các bản sao của đối tượng chia xẻ. Hai kiểu đồng bộ trên đối tượng được Orca cung cấp là loại trừ ràng buộc và cộng tác có điều kiện. Orca cho rằng tất cả các phép toán đều hoàn toàn cô lập trên đối tượng. Mỗi đối tượng được gắn một khóa để loại trừ ràng buộc. Khoá chỉ có hiệu lực tại mức đối tượng và được giới hạn với đối tượng đơn. Khoá chia xẻ được cung cấp để cho phép cùng một lúc có nhiều phép toán đọc đối tượng. Để cộng tác có điều kiện, Orca sử dụng lệnh an toàn (Guarded) tương tự như trong CSP: Operation Op(parameters) //operation Tên_toán_tử(các_tham_số) Guarded condition do statements; //Guarded điều_kiện do các_câu_lệnh; Guarded condition do statements; // Guarded điều_kiện do các_câu_lệnh; Lệnh trong toán tử chỉ được thực hiện khi điều_kiện trong Guarded là đúng. Nếu không thì QT đó bị chặn lại. Nếu có hơn một điều kiện đúng, thì chỉ một lệnh điều kiện được chọn động để cung cấp cách thức thực hiện không xác định. Một toán tử đối tượng trong một chương trình ứng dụng trên Orca được 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 được bẫy tới hệ thống thời gian thực hiện Orca (Orca RTS: Orca Run Time System). RTS kiểm tra xem đối tượng có phải là chỉ đọc. Nếu đúng, RTS đặt khoá chia xẻ cho bản sao địa phương, thực hiện QT đọc, sau đó lại mở khóa đối tượng. Nếu không, RTS khởi tạo một TĐ quảng bá đến tất cả các vị trí của đối tượng chia xẻ, bao gồm chính nó, để cập nhật đối tượng và kết khối QT. Khi nhận TĐ quảng bá để ghi lên đối tượng, RTS đặt một khoá ghi lên đối tượng, thực hiện toán tử ghi và mở khoá đối tượng. Nếu thông điệp quảng bá hình thành cục bộ, nó sẽ kết khối QT. RTS giả thiết truyền thông là tin cậy. Nó hỗ trợ tầng quảng bá tin cậy ngay dưới hệ thống thời gian chạy. Tầng quảng bá tin cậy đó có thể thi hành nhiều giao thức quảng 102/249 bá theo những đòi hỏi ngữ nghĩa khác nhau. Giao thức quảng bá kỳ vọng đảm bảo rằng mọi phía đối tượng nhận được toàn bộ các TĐ quảng bá và tất cả các TĐ được phân phát theo đúng một thứ tự (tức là quảng bá được xem như là một nguyên tử). Thi hành giao thức quảng bá nguyên tử được trình bày ở chương sau, tuy vậy ở đây giới thiệu khái quát cách tiếp cận đơn giản trong Orca để thực hiện quảng bá nguyên tử. Khi quảng bá được RTS yêu cầu, nhân của RTS gửi một TĐ điểm-điểm đến lời gọi nhân đặc biệt sequencer. Sequencer gắn một số hiệu dã ...

Tài liệu được xem nhiều: