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

báo cáo tiểu luận môn lập trình mạng nâng cao lập trình bài toán người sản xuất - người tiêu thụ

17 596 2

Đ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

Định dạng
Số trang 17
Dung lượng 634,64 KB

Nội dung

NỘI DUNG TRÌNH BÀYBài toán Người sản xuất - Người tiêu thụ 1 Liên hệ bài toán với các đặc điểm hệ phân tán 2 Tìm hiểu về ngôn ngữ lập trình Java và kỹ thuật lập trình phân tán RMI 3 Dem

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

BÀI TIỂU LUẬN

Đề tài:

Lập trình bài toán Người sản xuất - Người tiêu thụ

• Giáo viên hướng dẫn: PGS.TS LÊ VĂN SƠN

• Học viên thực hiện : TRƯƠNG THỊ MINH HẬU

• Lớp : KHMT K24 (T9/2011)

ĐÀ NẴNG, THÁNG 05/2012

Trang 2

NỘI DUNG TRÌNH BÀY

Bài toán Người sản xuất - Người tiêu thụ

1

Liên hệ bài toán với các đặc điểm hệ phân tán

2

Tìm hiểu về ngôn ngữ lập trình Java

và kỹ thuật lập trình phân tán RMI

3

Demo chương trình

4

1

Trang 3

BÀI TOÁN NGƯỜI SẢN XUẤT - NGƯỜI TIÊU THỤ

Phát biểu bài toán:

- Trong mô hình người sản xuất - người tiêu thụ, số lượng hàng hoá sản xuất ra hạn chế bởi khả năng tiêu thụ, không

vượt quá số lượng tiêu thụ một giá trị N

- Người sản xuất P và người tiêu thụ C là hai người nằm trên hai trạm cách xa nhau

- Giả sử NP: thể hiện số lượng sản xuất ra và NC : số lượng tiêu thụ tại thời điểm khởi tạo

- C chỉ tiêu thụ sản phẩm, nếu sản phẩm sản xuất diễn ra khi

NP-NC>0

- Tương tự, P chỉ sản xuất sản phẩm, khi NP-NC<N

Trang 4

Trong hệ thống tin học phân tán, có thể vận dụng hợp lực theo kiểu sau:

Trên trạm P:

ảnh của NC mà P gia tăng mỗi lần nhận thông điệp từ C báo tiêu thụ mới đã diễn ra.

(nghĩa NC’ là số lượng tiêu thụ mà sản xuất đã biết)

Trên trạm C:

Đưa biến NC : thể hiện số lượng chính xác tiêu thụ đã có và biến

NP’ ảnh của NP mà C gia tăng mỗi lần nhận thông điệp từ P báo sản xuất mới đã diễn ra.

(nghĩa NP’ là số lượng sản xuất mà tiêu thụ đã biết)

Vậy trên trạm C, điều kiện để tiêu thụ xảy ra là: NP’-NC >0

Vậy trên trạm P, điều kiện để sản xuất xảy ra là: NP-NC’<N

BÀI TOÁN NGƯỜI SẢN XUẤT - NGƯỜI TIÊU THỤ

Trang 5

Thực tế, có thể biểu diễn

NP=NP’+np, với np >=0, np là lượng sản phẩm đã sản xuất

bởi P mà C không biết

NC=NC’+nc, với nc >=0, nc là lượng sản phẩm đã tiêu thụ bởi

C mà P không biết

Ta có thể khái quát phương pháp này theo kiểu đồng bộ hoá bằng công thức:

i

i

i X K

i

Trong đó Ci và K là các hằng số

Tức là đã sử dụng các biến trạng thái nguyên không lùi cho phép sử dụng các bản sao gần đúng của các biến loại này

Cơ chế đồng bộ gọi là các công tơ sự kiện thích hợp của các

vấn đề đặt ra

BÀI TOÁN NGƯỜI SẢN XUẤT - NGƯỜI TIÊU THỤ

Trang 6

Mỗi công tơ sự kiện được kết hợp với một nhóm đặc biệt các sự kiện E, xác định ba hàm nguyên thuỷ sau:

sự kiện nhóm E đến

 Truy_van(E): Cung cấp giá trị hiện hành của công tơ phối hợp với E

 Cho(E,n): treo tiến trình gọi chừng nào giá trị công tơ còn nhỏ hơn n

Với bài toán người sản xuất - người tiêu thụ, cần định nghĩa:

 Hai công tơ sự kiện NP’ và NC’, được khởi tạo = 0

 Biến nguyên i, khởi sự là 0, là cục bộ đối với tiến trình người sản xuất P và người tiêu thụ C

BÀI TOÁN NGƯỜI SẢN XUẤT - NGƯỜI TIÊU THỤ

Trang 7

SƠ ĐỒ THUẬT TOÁN

True

Server

NC’ < (NP-N+1)

NP=0 NC’=0

Start

san_xuat

tang(NP’)

Stop

Client

NP’ < NC+1)

NC=0 NP’=0

Start

Tieu_thu

tang(NC’)

Stop

False

True

False

Trang 8

LIÊN HỆ CÁC ĐẶC ĐIỂM PHÂN TÁN

ĐỐI VỚI BÀI TOÁN

Các đối tượng sản xuất (P) và đối tượng tiêu thụ (C) được phân tán trên các trạm máy tính khác nhau Việc quản lý các hoạt động được mô tả bởi 2 tiến trình mà các tiến trình được mô phỏng ở đây là người sản xuất

và người tiêu thụ

Người sản xuất sản xuất ra sản phẩm gởi người tiêu thụ, ngược lại người tiêu thụ phải nhận sản phẩm sản xuất từ người sản xuất Nếu người sản xuất mà chưa sản xuất thì người tiêu thụ phải chờ Nếu người sản

xuất sản xuất ra nhiều sản phẩm mà người tiêu thụ

chưa tiêu thụ chưa hết sản phẩm thì người sản xuất

phải dừng lại và chờ người tiêu thụ tiêu thụ hết sản

phẩm rồi mới thực hiện sản xuất sản phẩm thứ N+1

Trang 9

LIÊN HỆ CÁC ĐẶC ĐIỂM PHÂN TÁN

ĐỐI VỚI BÀI TOÁN

Trong bài toán ứng dụng này, người tiêu thụ

sẽ lấy hàng trong bộ nhớ đệm mà người sản xuất đã sản xuất ra ở bộ đệm Nếu trong bộ đệm rỗng thì người sản xuất tiếp tục sản xuất ra sản phẩm để bỏ trong bộ đệm.

Trang 10

TÌM HIỂU VỀ NGÔN NGỮ LẬP TRÌNH

Java được thiết kế cho mục đích đa nền, mã của chương trình Java (tập tin java) sau khi biên dịch là một file nhị phân gọi là byte-code (tập

tin class) và được triệu gọi thực thi trong máy ảo Java (JVM – Java Virtual Machine) Việc dịch

chương trình Java sang bytecode có thể làm cho chương trình chạy được trên nhiều môi trường

hơn vì chỉ cần có mỗi trình thông dịch JVM cho mỗi môi trường

Trang 11

TÌM HIỂU VỀ NGÔN NGỮ LẬP TRÌNH

Hình 3.1: Sơ đồ hoạt động của các trình Java

Trình soạn

thảo Các tập tin

Trình

dịch

Tập tin nguồn Java là một tập tin văn bản thuần (text file), tuân theo hệ thống cú pháp chặt chẽ của Java, gồm các chú thích, khai báo lớp, biến, phương thức

Java là một ngôn ngữ thiên về lập trình mạng và Internet, tích hợp khả năng đa luồng trong ngôn ngữ, và có thể dùng để viết các chương trình ứng dụng không thua gì các ngôn ngữ lập trình khác.

Trang 12

KHÁI NIỆM LẬP TRÌNH PHÂN TÁN

A1

B1

B1-Stub

B1-Skel Máy tính 1: Máy khách Máy tính 2: Máy chủ

Khái niệm lập trình phân tán RMI

(REMOTE METHOD INVOCATION)

Lập trình phân tán là kỹ thuật lập trình sử dụng nguồn tài nguyên phân tán trên mạng

Kỹ thuật RMI của Java cho phép cài đặt, sử dụng các đối tượng phân tán trên mạng RMI là cách thức giao tiếp giữa các đối tượng Java có mã lệnh (phương thức, thuộc tính)

nằm trên các máy khác nhau có thể triệu gọi lẫn nhau Hệ thống Java RMI cho phép một đối tượng chạy trên máy ảo Java gọi phương thức của một đối tượng đang chạy trên

máy ảo Java khác

Trang 13

- Trên máy tính 1, các đối tượng A1, A2 gọi phương thức của nhau, đó là gọi phương thức cục bộ của lập trình hướng đối

tượng Đối tượng A1 gọi phương thức từ xa của đối tượng B1 trong lập trình phân tán

- Ứng dụng RMI gồm hai chương trình phân biệt liên lạc với

nhau: -Chương trình Server tạo các đối tượng từ xa, và đợi

Client gọi đến

- Chương trình Client gọi các hàm của đối tượng từ xa đó

Để các đối tượng trên 2 máy khác nhau gọi hàm của nhau thì phải thông qua lớp trung gian ở 2 phía khách và chủ

- Ở máy khách: Lớp trung gian gọi là Stub(lớp móc), có nhiệm

vụ đóng gói tham đối, chuyển tham đối qua mạng đến máy chủ -Ở máy chủ: Lớp trung gian gọi là Skeletion (lớp nối), nhận

tham đối và gọi hàm tương ứng Kết quả hàm trả về nếu có,

được Skeletion trả về Stub

KHÁI NIỆM LẬP TRÌNH PHÂN TÁN

Trang 14

KỸ THUẬT LẬP TRÌNH PHÂN TÁN RMI

I Xây dựng chương trình nguồn (code)

 Đối với Server:

1 Tạo RMI Server: RMI Server bao gồm giao diện (Interface) đưa ra định nghĩa các phương thức cho phép Client gọi và các lớp thực hiện giao diện cần thiết

2 Tạo chương trình ứng dụng Server

 Đối với Client:

Tạo chương trình ứng dụng Client

Trang 15

II Dịch chương trình (dùng lệnh Javac)

- Dịch Interface

- Dịch Server

- Tạo File.jar có chứa File.class cần cho ứng dụng

- Sử dụng trình rmic.exe trong thư mục Jdk\Bin để tạo 2

lớp

trung gian Stub.class và Skel.class

- Thiết lập biến môi trường Classpath chỉ đến thư mục chứa class cần cho ứng dụng

III Chạy chương trình

1 Khởi động bộ quản lý RMI

2 Chạy ứng dụng Server

3 Chạy ứng dụng Client

KỸ THUẬT LẬP TRÌNH PHÂN TÁN RMI

Trang 16

DEMO CHƯƠNG TRÌNH

Kết quả của bbProcducer

Kết quả của bbconsumer

Trang 17

Chân thành cảm ơn!

Ngày đăng: 31/01/2015, 23:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w