1. Trang chủ
  2. » Luận Văn - Báo Cáo

slide các ngôn ngữ lập trình phân tán

27 564 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Các Ngôn Ngữ Lập Trình Phân Tán
Tác giả Mai Văn Tùng
Người hướng dẫn PGS. TS. Lê Văn Sơn
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Hệ Tin Học Phân Tán
Thể loại Tiểu luận
Định dạng
Số trang 27
Dung lượng 134,11 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lê Văn Sơn Học viên: Mai Văn TùngTIỂU LUẬN HỆ TIN HỌC PHÂN TÁN Các ngôn ngữ lập trình phân tán... Hệ phân tán Distributed System:“Hệ tin học phân tán hay nói ngắn gọn là hệ phân ta

Trang 1

GVHD: PGS TS Lê Văn Sơn Học viên: Mai Văn Tùng

TIỂU LUẬN

HỆ TIN HỌC PHÂN TÁN

Các ngôn ngữ lập trình phân tán

Trang 2

LỜI MỞ ĐẦU

Khi hệ thống phân tán đầu tiên xuất hiện thì trên hệ thống được lập trình bằng các ngôn ngữ truyền thống tuần tự, thường làm việc bổ sung thêm vài thủ tục, thư viện cho việc gửi và nhận thông tin.

nhà thiết kế trên toàn thế giới đã bắt đầu thiết kế các ngôn ngữ lập trình mới cụ thể cho việc thực hiện các ứng dụng phân tán.

Trang 3

I Hệ phân tán (Distributed System):

“Hệ tin học phân tán hay nói ngắn gọn là hệ phân

tán (Distributed System) là hệ thống xử lý thông tin

bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm các tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.”

Chương I TỔNG QUAN VỀ HỆ PHÂN TÁN

Trang 4

Chương I TỔNG QUAN VỀ HỆ PHÂN TÁN

II Các mô hình hệ phân tán

1 Các lớp dịch vụ phần mềm và phần cứng:

Kiến trúc phần mềm: cấu trúc của phần mềm như là các lớp và các module trong các thuật ngữ của các dịch vụ đưa ra và yêu cầu giữa các tiến trình trên cùng hoặc trên các máy tính khác nhau

Platform (hệ nền): phần cứng mức thấp nhất và các lớp phần mềm (hệ điều hành)

Middleware: một lớp của phần mềm mà mục đích của nó là đánh dấu heterogeneity và để cung cấp một mô hình lập trình cho các ứng dụng, như: CORBA, RMI (Remote Method Invocation), DCOM (Distributed Component Object Model),

Trang 5

Chương I TỔNG QUAN VỀ HỆ PHÂN TÁN

II Các mô hình hệ phân tán

2 Kiến trúc hệ thống phân tán:

Mô hình Client/Server:

Trang 6

Chương I TỔNG QUAN VỀ HỆ PHÂN TÁN

II Các mô hình hệ phân tán

2 Kiến trúc hệ thống phân tán:

Mô hình tương tác trong hệ phân tán:

 Thực hiện truyền thông:

Sự tiềm ẩn (Latency):

 Sự trì hoãn lan truyền: thời gian cần thiết để một bit đầu tiên của một

thông điệp truyền đến được đích.

 Sự trì hoãn truyền: là khoảng thời gian giữa sự truyền bit đầu tiên và

bit sau cùng của một thông điệp.

 Sự trì hoãn xử lý: là thời gian cần để hệ điều hành xử lý/gữi/nhận

thông điệp.

 Sự trì hoãn xếp hàng: thời gian cần để một thông điệp xếp hàng ở

cuối máy chủ hoặc ở các node trung gian đợi để truyền đi.

Băng thông (bandwidth): Tổng số thông tin có thể được truyền đi trong một thời

gian đã cho.

Sự biến động tạp (Jitter): thời gian khác nhau giữa các sự trì hoãn ảnh hưởng bởi

các thông điệp khác nhau.

Trang 7

Chương I TỔNG QUAN VỀ HỆ PHÂN TÁN

II Các mô hình hệ phân tán

2 Kiến trúc hệ thống phân tán:

 Đồng hồ và thứ tự các sự kiện:

 Không có khái niệm toàn cục của thời gian.

 Nhịp độ đồng hồ trôi: nhịp độ tương đối ở một đồng hồ máy tính trôi dạt ra khỏi từ một đồng hồ tham chiếu hoàn hảo.

 Đồng bộ hóa đồng hồ:

 Hệ thống định vị toàn cầu (GPS): một ít máy tính có thể sử dụng máy thu radio để nhận thời gian đọc từ GPS với độ chính xác là 1 micro- giây Chúng có thể gửi các thông điệp thời gian đến các máy tính khác trong mạng tương ứng của chúng.

 Các đồng hồ logic: mỗi thông điệp là thời gian đóng dấu lên với một số nối tiếp mà phản chiếu thứ tự lôgic của chúng.

Trang 8

I Giới thiệu

Hiện nay có nhiều ngôn ngữ khác nhau cho phép lập trình phân tán như: CSP, Occam, NIL, Ada, Java, “Concurrent” C, SR, Emerald, Argus,

PARLOG, Linda, Orca, …

Tiểu luận này sẽ đi vào giới thiệu 2 ngôn ngữ lập trình là ADA và CSP.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 9

II Ngôn ngữ ADA

1 Giới thiệu ngôn ngữ ADA

Ada xuất phát từ  Pascal, nhưng kiểm tra kiểu mạnh hơn Mở rộng kiểu (type extension), kế thừa (inheritance) và đa kế thừa giao diện (multiple interface inheritance) hỗ trợ lập trình định hướng đối tượng Ngoài các kết cấu điều khiển thông thường như rẽ nhánh, lặp, xử lý ngoại lệ (exception), và kết cấu đơn vị thông thường như thủ tục (procedure), hàm (function), Ada còn có kết cấu gói (package) hỗ trợ lập trình theo thành phần (modular), kết cấu mẫu (generic) hỗ trợ lập trình mẫu, kết cấu tác vụ (task) và kiểu có bảo vệ (protected type) hỗ trợ lập trình song song và tương tranh.

Trên thế giới, tỉ lệ lập trình viên sử dụng ngôn ngữ Ada chiếm khoảng 5%. 

Ada có bộ biên dịch miễn phí GNAT và môi trường phát triển miễn phí GPS, sinh mã đích cho rất nhiều platform khác nhau.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 10

II Ngôn ngữ ADA

2 Cú pháp

Ada có cú pháp tương tự như ngôn ngữ lập trình Pascal, thể hiện rõ nhất ở

kí hiệu := dùng trong lệnh gán và begin   end bao quanh mỗi khối lệnh.

Trong một file chương trình Ada, cần có một thủ tục (procedure) có tên trùng với tên chương trình, nó sẽ được kích hoạt khi chạy chương trình:

dòng chữ bắt đầu bằng hai dấu gạch ngang là dòng chú thích

ví dụ file chương trình có tên là hello.adb

with text_io; use text_io; sử dụng thư viện nhập - xuất chuỗi kí tự

Trang 11

II Ngôn ngữ ADA

2 Cú pháp

Một số đặc điểm cú pháp khác như sau:

vòng lặp thoát bởi exit:

i : integer; khai báo i là biến số nguyên

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Một vòng lặp viết theo dạng for:

for i in 1 10 loop

put_line("Hello World");

end loop;

Trang 12

II Ngôn ngữ ADA

3 Hoạt động

Khi mô tả một hoạt động trong ngôn ngữ Ada cần phải xác định các điểm:

Các dữ liệu cục bộ

Các thủ tục cho phép truy cập vào dữ liệu cục bộ

Một chương trình tuần tự hay thân của hoạt động

được thực hiện cùng lệnh khởi sự ban đầu.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 13

II Ngôn ngữ ADA

Thân của hoạt động T1

Quá trình trao đổi từ xa được bắt đầu

bằng tiến trình T1

Các đường chấm chỉ quá trình thực hiện

lệnh từ xa.

Dữ liệu D Thủ tục P

Trang 14

II Ngôn ngữ ADA

3 Hoạt động

Điểm vào:

Trong quá trình thực hiện, hai hoạt động có thể trao đổi thông tin với nhau hay vào theo kiểu cạnh tranh để truy cập dữ liệu Trong ví dụ trên, khi T 1 thực hiện P, nó có thể vào và xung đột với T 2 để truy cập dữ liệu D Thực tế T2 hành động như là

kiem_tra để kiểm tra các truy cập vào D Tất cả các hành động trên D có thể thực

hiện song song được xác định như là thủ tục Ngược lại các hành động theo kiểu loại

trừ tương hỗ được thực hiện trực tiếp bởi T 2; chứng được xác định như là một điểm vào

 Trong hoạt động, khai báo vào cũng giống như phần đầu của khai báo thủ tục Như

thế, trong T 2, ta có phần khai báo như sau:

Có nghĩa là E (thực thể) là một vào với hai tham số kiểu nguyên; tham số thứ hai có

thể thay đổi.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Thực thể E(X: nguyên ; Y: out nguyên)

Trang 15

II Ngôn ngữ ADA

3 Hoạt động

Điểm vào:

Ta có thể tìm thấy hoạt động khác ví dụ như T 1 một lời gọi

có dạng T 2 E(4,Z) Quan sát từ bên ngoài, ta có nhận xét rằng để cho T 1 , việc gọi này chính là gọi thủ tục; khi T 2, chuyển sang lệnh tiếp theo, việc xử lý tương ứng với E, bằng cách sử dụng Z, đã được thực hiện Giá trị Z là tham số ra có thể đã thay đổi Thực tế, việc xử lý này được thực

hiện bởi T 2 bằng một lệng đặc biệt chap_nhan(accept)

Lệnh này được thực hiện như sau:

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Chấp nhận E(X: in nguyên ; Y: out nguyên) do Y:=X+1

Chấm dứt

Trang 16

II Ngôn ngữ ADA

3 Hoạt động

Điểm vào:

 Chừng nào một lệnh gọi vào đã không được thực hiện, lệnh

chap_nhan sẽ là một lệnh treo Ngược lại phải gọi vào treo hoạt

động thực hiện nó cho đến khi hoạt động mà ở đó vào đã kết

thức việc thực hiện một lệnh chap_ nhan tương ứng với vào đó đã được khai báo có nghĩa là thực hiện các lệnh giữa do và

end phối hợp cùng với chap_nhan.

Để cùng một vào, ta có thể tìm thấy nhiều lệnh chap_nhan; điều

đó cho phép kết hợp nhiều xử lý khác nhau.

Cuối cùng, việc xử lý có thể bị bỏ sót do thiếu do…end chẳng

hạn Điều đó tương ứng với việc chỉ thực hiện "cuộc gặp gỡ".

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 17

II Ngôn ngữ ADA

Nếu C 1 nhận giá trị false, thì chờ một lời gọi từ X.

Nếu C 1 nhận giá trị true, thì chờ một lời gọi từ X hay từ Y.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Lựa chọn Chấp nhận X(…) thực hiện T1 kết thúc

TL1hoặc chừng nào C1 accept Y(…) thực hiện

Trang 18

II Ngôn ngữ ADA

3 Hoạt động

Chờ bội:

được tiến hành thì hoạt động thực hiện lệnh lua chon bị treo; nó phải

chấp nhận lời gọi đầu tiên trong số hai "chờ" nêu trên Mỗi khi việc chọn lựa là có thể thì nó là bấp bênh.

ket thuc T i và TL i ; trong tiến trình T i , hoạt động gọi đang trong trạng thái chờ và trong TLi, nó có thể thực hiện công việc của mình theo kiểu song song.

Cần lưu ý rằng các xử lý T i và TL i là các dãy phát biểu nào đó và có thể

chứa các lựa chọn và các chấp nhận.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 19

II Ngôn ngữ ADA

4 Ứng dụng

Ngoài các ứng dụng truyền thống trong vũ khí, khí tài và các hệ thống liên lạc, tham mưu, chỉ huy, tác chiến, sau hơn 2 thập kỷ ngày nay Ada còn được dùng trong các ứng dụng của ngành thám hiểm không gian, hàng không, giao thông sắt & bộ, năng lượng hạt nhân, viễn thông, và tài chính – ngân hàng.

Chương trình viết bằng ngôn ngữ giả định Ada

Task TraCuu is

Procedure truy_van1(Ten : in identifier ; Diem : out interger);

Entry cap_nhat1(Ten : in identifier ; Diem : in integer);

Task body TraCuu is

Trang 20

II Ngôn ngữ ADA

4 Ứng dụng

Chương trình viết bằng ngôn ngữ giả định Ada

Procedure truy_van1(Ten : in identifier ; Diem:out integer) is

Trang 21

II Ngôn ngữ ADA

or when (lec=0) =>Accept cap_nhat1(Ten : in identifier ; Diem : in integer) do

<cập nhật Table>

Trang 22

III Ngôn ngữ CSP (Communicating Sequential Processes)

CSP được thiết kế bởi Hoare, cho phép thực hiện có hiệu quả trên một loạt các kiến trúc CSP cung cấp một câu lệnh đơn giản song song để tạo ra một số cố định của các tiến trình song song CSP cho phép lập trình ứng dụng dưới dạng một số lượng tiến trình cố định Các tiến trình này có thể phối hợp với nhau nhờ phép toán liên lạc kiểu "kiểu gặp gỡ" Tất cả thông tin liên lạc trong tiến trình được thực hiện bằng cách sử dụng đồng bộ việc tiếp nhận và gửi

CSP cho phép một tiến trình tiếp nhận có chọn lọc, dựa trên sự sẵn có của đầu vào và các lĩnh vực tên của các thông tin liên lạc đến

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 23

III Ngôn ngữ CSP (Communicating Sequential Processes)

Một chương trình bao gồm tập hợp các tiến trình có thể thể hiện dưới dạng sau đây:

Trong đó, <Tiến trình > dựa vào liên hợp một tên với mã chương trình nguồn của tiến trình:

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

[<Tiến trình 1>]||[<Tiến trình 2>]||…||[<Tiến trình n>]

Name::<text>

Trang 24

III Ngôn ngữ CSP (Communicating Sequential Processes)

Ở đây, các biến toàn cục bị cấm áp dụng.

Các tiến trình cần có hai hàm nguyên thuỷ để trao

đổi Đó là gửi (phép ra) và nhận (phép vào) một

thông điệp Mỗi tiến trình cần phải định danh tường minh người đối thoại (đối tác) của mình và các thông điệp phải đúng kiểu Các vào ra kinh điển được đảm bảo bằng các tiến trình đựoc định nghĩa trước khi phối hợp các ngoại vi mắc nối.

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 25

III Ngôn ngữ CSP (Communicating Sequential Processes)

Ví dụ: [writer :: x: real; || reader(i: 1 2) :: ] tạo ra ba tiến trình, được gọi là "writer", "reader (l)" và

"reader(2),"writer” có một biến cục bộ x Các biến chỉ số có thể được sử dụng trong thân của tiến trình reader

Một tiến trình thực hiện, hoặc gửi hoặc nhận bị chặn lại cho đến khi đối tác của nó đã thực hiện báo cáo bổ sung Hãy xem xét ví dụ sau đây:

[X :: Y! 3||Y :: n: số nguyên; X? n]

Trong một tuyên bố của tiến trình X, giá trị 3 được gửi đến

Y Trong một tuyên bố của tiến trình Y, đầu vào được đọc từ tiến trình X và được lưu trữ trong các biến cục bộ n Khi cả hai X và Y đã thực hiện báo cáo, các thông tin liên lạc một chiều xảy ra Kết quả được phân công 3 đến n

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 26

III Ngôn ngữ CSP (Communicating Sequential Processes) Ứng dụng:

CSP cơ bản là một thiết kế giấy, nhưng nó đã ảnh hưởng đến thiết kế của một số ngôn ngữ, đáng chú ý nhất là ngôn ngữ Occam

Occam được mô phỏng trên CSP Hoare và được thiết kế cho các lập trình Inmos của transputer Inmos Ltd năm 1984 Occam cơ bản là ngôn ngữ lắp ráp của phần mềm trung gian Ngôn ngữ thiếu tính năng mà đã trở thành tiêu chuẩn trong các ngôn ngữ lập trình hiện đại nhất, chẳng hạn như thủ tục đệ quy, các mô-đun,

Chương II

NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Trang 27

KẾT LUẬN

Một ứng dụng phân tán thông thường rất phức tạp và phải được chia thành nhiều mức khác nhau Tại mỗi mức, có nhiều vấn đề đặt ra cần phải giải quyết Một trong những vấn đề quan trọng ta cần phải lựa chọn là ngôn ngữ nào trong tiến trình lập trình với sự phụ thuộc

ít nhất vào cấu trúc vật lý của việc phân tán

Trong tất cả các trường hợp, người lập chương trình phân tán cần phải xem xét số lượng các tiến trình song song và phối hợp chúng lại với nhau như thế nào là hợp

lý nhất Để triển khai các tiến trình này, đầu tiên, cần phỉa có khả năng cho thực hiện trên một trạm rồi liên thông giữa các trạm lại với nhau

Ngày đăng: 07/01/2014, 10:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w