Tải bản đầy đủ (.pptx) (15 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (283.31 KB, 15 trang )



 !"#$%
&'(%)'
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
*+
,)%-./
1
,01##$2
2
"'+345
3
".+3'
4
,6%-./

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

(789:'

%(;

!"(<
,6%-./

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

=$>9?(
@A% = B
; =$CD'EF45GH'
,6%-./

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.

I#)7 ;DJ:E'K!"'E'$7LK
'#$EM%
,6%-./

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ó
,6%-./
Đ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
1##$NO)2
1##$NO)2
RMI Registry
RMI Client
RMI Server
"'+345

+
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;
}
"'+345

N$>
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]="";
}
"'+345

68'#$$>
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;
}

}
"'+345

ND'7P#$Q
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("==============================");

".I3'
=RS*=TU"V2W6
Thank You !

×