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

báo cáo tiểu luận lập trình mạng mô phỏng quá trình hoạt động của 3 loại thông điệp cơ bản req rel và acq

15 667 0

Đ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 15
Dung lượng 229,2 KB

Nội dung

Nội dungGiải thuật Loại trừ tương hỗ 1 Giới thiệu Java và RMI 2 Các modules thực hiện 3 Chương trình demo 4... GT Loại trừ tương hỗ• Trạm i của mạng có thể gửi thông điệp cho các trạm k

Trang 1

Mô phỏng quá trình hoạt động

của 3 loại thông điệp

cơ bản REQ, ACQ và REL

Bộ môn: Lập trình mạng

Báo cáo

Giảng viên : PGS.TS LÊ VĂN SƠN Học viên : VÕ VĂN THIÊN

Lớp : Khoa học Máy tính K24

Trang 2

Nội dung

Giải thuật Loại trừ tương hỗ

1

Giới thiệu Java và RMI

2

Các modules thực hiện

3

Chương trình demo

4

Trang 3

GT Loại trừ tương hỗ

• Trạm i của mạng có thể gửi thông điệp

cho các trạm khác thông điệp có dạng (T,

Hi, i), trong đó Hi là dấu của thông điệp

có nghĩa là đồng hồ logic của nó và T có

thể nhận một trong 3 giá trị REQ, REL, ACQ

• REQ: thông điệp yêu cầu đến các trạm

• REL : thông điệp giải phóng

• ACQ: thông điệp phản hồi

Trang 4

GT Loại trừ tương hỗ

• Mỗi trạm quản lý một hàng đợi các thông

điệp được sắp xếp theo quan hệ <thời gian, số> của từng thông điệp

• Hàng đợi ban đầu chứa thông điệp:

Mi = (REL, Hinit, i) trong đó, Hinit là thời điểm khởi sự giống nhau cho tất cả các trạm

Trang 5

GT Loại trừ tương hỗ

• Khi nhận thông điệp dạng (REQ, Hi, i) hay

(REL, Hi, i), thông điệp này thay thế thông điệp Mi bất chấp nó là gì.

• Khi nhận thông điệp loại (ACQ, Hi, i), thông

điệp này thay thế Mi ngoại trừ Mi là một yêu cầu mà trong trường hợp đó ACQ bị bỏ qua

• Do vậy, ta có thể tiết kiệm gửi thông điệp ACQ cho trạm i khi trạm này đã gửi một thông điệp REQ và không còn thông điệp REL

Trang 6

GT Loại trừ tương hỗ

• Trạm i được quyền vào đoạn găng khi thông

điệp REQ của nó đến trước theo nghĩa của quan hệ <thời gian, số> của tất cả các thông điệp khác trong hàng đợi của nó

Trang 7

GT Loại trừ tương hỗ

Đoạn găng của trạm 2

Đoạn găng

của trạm 1

ACQ,6,3

REL,10,1 ACQ,9,1

ACQ,6,2

ACQ,4,3 REQ,2,1

REQ,2,2 REQ,2,1 REQ,2,2

1

2

3

7

8

9

10

Trạm1

H 1

1 2 3

7 8 9 10 Trạm 2

H 2

1 2 3

7 8 9 10 Trạm3

H 3

REL,10,1

Trang 8

Java và Kỹ thuật RMI

x86/Win32

x86/Linux

Source

Code Java

(*.java)

Bytecode

*.class

x86/Win32

SPARC/Solaris x86/Linux

x86/Win32

x86/Linux

Source

Code Java

(*.java)

Bytecode

*.class

x86/Win32

SPARC/Solaris x86/Linux

x86/Win32

x86/Linux

Source

Code Java

(*.java)

Bytecode

*.class

x86/Win32

SPARC/Solaris x86/Linux

Trang 9

Java và Kỹ thuật RMI

RMI Registry

RMI Client

RMI Server

Trang 10

Các modules thực hiện

• Mô tả giao diện

public interface Server1 extends java.rmi.Remote

{

public abstract void printQueue()

throws java.rmi.RemoteException;

public abstract void sendMess()

throws java.rmi.RemoteException;

public abstract void receiveMess(String R, int H, int I) throws java.rmi.RemoteException;

public abstract void setStart(boolean start)

throws java.rmi.RemoteException;

}

Trang 11

Các modules thực hiện

• Khai báo hàng đợi public class Queue

{

private boolean start;

int max=0;

private String Q[];

public boolean change=false;

private boolean ready=true;

public Queue() {

start = false;

max=40;

Q=new String [max];

for (int i=0;i<max;i++) Q[i]=""; }

Trang 12

Các modules thực hiện

• Thêm vào hàng đợi

public void setQueue(String R, int H, int I)

{

deleteQueue(R, I);

int i=0;

while (i<max-4 && Q[i].compareToIgnoreCase("")!=0 && H

>Integer.parseInt(Q[i+1])) i+=4;

if (i<max-4) {

for(int j=max-1; j>=i+4; j ) Q[j]=Q[j-4];

Q[i]=R;

Q[i+1]=H +"";

Q[i+2]=I +"";

Q[i+3]=0 +"";

change=true;

} }

Trang 13

Các modules thực hiện

• Kiểm tra quyền vào đoạn găng

public int checkAccess(int idx)

{

try

{

int i=0;

while (i<max-4 && Q[i] !="") {

if (Q[i].compareToIgnoreCase("REQ")==0) {

if (Q[i+2].compareToIgnoreCase(idx +"")==0)

{ System.out.println("==============================");

System.out.println("=============================="); System.out.println("======= ACCESSING =======");

System.out.println("==============================");

System.out.println("==============================");

Trang 14

Chương trình Demo

Trang 15

HUỲNH ĐỨC VIỆT

Thank You !

Ngày đăng: 31/01/2015, 22:59

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w