1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập các kỹ thuật hiện đại trong CNTT

15 261 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 15
Dung lượng 258,82 KB

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

Nội dung

Bài 1 : 1.1 :Sau khi chạy chương trình và ta có được kết quả chạy trên các máy trạm như hình vẽ 1.2: Chương trình sử dụng 2 loại Event là: Arrival và Departure, tương ứng với 3 loại nhi

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐÀO TẠO SAU ĐẠI HỌC

──────── * ────────

Bài Tập :

CÁC KỸ THUẬT HIỆN ĐẠI TRONG CNNT

Giảng Viên : GVC-TS Phạm Đăng Hải

Học Viên thực hiện : Nguyễn Văn Vơn – CB160546

Lớp : CNTT-2016B

Hà Nội 09/2017

Trang 2

Mục Lục

Bài 1 : 3 Bài 2 : 8 Bài 3 : 10 Bài 4 : 11

Trang 3

Bài 1 :

1.1 :Sau khi chạy chương trình và ta có được kết quả chạy trên

các máy trạm như hình vẽ

1.2:

Chương trình sử dụng 2 loại Event là: Arrival và Departure, tương ứng với 3 loại nhiệm vụ: A, B, C

Sử dụng lớp Event với các thuộc tính sau:

Tên lớp: Event

Thuộc tính:

TaskType task_type: loại nhiệm vụ (A/B/C) EventType event_type: loại sự kiện (Arrival/Departure) int time: thời gian sự kiện

public class Event implements Comparator<Event>{

@Override

Trang 4

public int compare(Event o1, Event o2) {

return o1.time - o2.time;

public static enum TaskType {

A, B, C

public static enum EventType{

Arrival, Departure

private TaskType task_type;

private int time;

private EventType event_type;

Project Ex1_CNTT là một chương trình java bao gồm 3 lớp:

- Agent: Các trạm 1, 2, 3 , 4

- Event: Các sự kiện Arrival/Departure cần xử lý với loại nhiệm vụ A/B/C và

thời gian tương ứng

- Main: Chương trình chính, mô phỏng quá trình hoạt động.

Do chiều của các sự kiện không tạo thành chu trình nên trong bài tập này, em đã giải quyết bằng cách lần lượt xử lý tất cả các sự kiện trên từng trạm theo thứ tự

2, 3, 4, xử lý xong trạm này mới chuyển sang trạm tiếp theo Dưới đây là hàm

xử lý các sự kiện trên một trạm

Agent.java

public void process(){

System.out.println("[Agent "+name+"]: Inital tasks");

System.out.println();

for (Iterator<Event> iterator = initial_queue.iterator();

iterator.hasNext();) {

Event next = iterator.next();

Trang 5

System.out.print("\t<"+next.getTime()+", "+next.getTask_type() +">");

}

//take first event from intial queue

Event firstEvent = initial_queue.poll();

if(firstEvent != null){

time = firstEvent.getTime();

this.insertToProcessingQueue(firstEvent);

while(true){

System.out.println("\n -");

//process event from processing_queue

Event pE = processing_queue.poll();

if(pE != null){

//if it is arrival event, check busy status then forward it to waiting queue or create departure event

//take next event from initial event

if(pE.isArrivalEvent()){

time = pE.getTime();

//check busy status

if(this.takeWorker()){

//Dispatch a departure event

Event dE = new Event(pE.getTask_type(),

time+this.service_time,Event.EventType.Departure);

this.insertToProcessingQueue(dE);

}

else{//busy

this.insertToWaitingQueue(pE);

}

//take a new event from iniatial events

Event nE = initial_queue.poll();

if(nE != null)

Trang 6

this.insertToProcessingQueue(nE);

}

else{//Departure event

//if it is departure event, forward it to forwarding queue, //if waiting queue is not empty, create departure event for first task of waiting queue

time = pE.getTime();

Event aE = new Event(pE.getTask_type(), time,

Event.EventType.Arrival);

this.forwarding_queue.add(aE);

this.releaseWorker();

this.trace_cpu += "\n[Agent "+name+"]: job

"+aE.getTask_type().toString()+": start: "+(time-service_time)+", finish:

"+time;

Event waitingEvent =

this.popElementFromWaitingQueue();

if(waitingEvent !=null){

this.takeWorker();

Event dE = new

Event(waitingEvent.getTask_type(),time+this.service_time,Event.EventTy pe.Departure);

this.insertToProcessingQueue(dE); }

}

this.trace();

}

else{

break;

}

}

Trang 7

}

}

1

3: Xác định danh sách các thông điệp gửi qua lại giữa các

tiến trình logic tương ứng:

- Các thông điệp gửi từ trạm 1 sang trạm 2:

<1,A> <4,B> <7,B> <9,B> <13,A> <16,B>

<20,B>

- Các thông điệp gửi từ trạm 1 sang trạm 3:

<2,C> <8,C> <17,C>

- Các thông điệp gửi từ trạm 2 sang trạm 3:

<6,A> <26,A>

- Các thông điệp gửi từ trạm 2 sang trạm 4:

<11,B> <16,B> <21,B> <31,B> <36,B>

- Các thông điệp gửi từ trạm 3 sang trạm 4:

<10,C> <14,A> <18,C> <25,C> <34,A>

Trang 8

Bài 2 :

2.1: số cuối mã số học viên là 6

6 Xn+1 = 314159269 Xn + 453806245 MOD 231 Với a: 314159269, b: 453806245, seed: 120, df: 100

10 số ngẫu nhiên đầu tiên là:

x: 1645696509

x: 1292494006

x: 590352883

x: 1677339204

x: 1534887545

x: 1580426402

x: 1148044559

x: 589159248

x: 1625416501

x: 1143302606

2.2 : Mã nguốn : ex2_prg-vonnv.py

2.3 : kết quả khi bậc tự do là 100 , seed là 120

Trang 9

[ 89 100 113 101 119 85 109 105 94 103 99 86 108 88 101 97 87 124

99 108 111 87 97 102 88 100 99 105 119 98 93 86 108 88 91 96

92 84 94 82 105 88 103 112 104 95 119 91 109 89 100 101 107 97

103 87 79 89 94 111 96 101 90 111 103 115 98 102 81 89 106 110

105 97 80 121 101 120 119 99 105 92 106 103 106 108 89 87 91 96

113 102 91 82 101 90 90 96 95 89 106]

Chisquare resutl: Power_divergenceResult(statistic=106.24180000000001, pvalue=0.31581910878717373)

Trong đó 106.24180000000001 là chisquare test > 91,88

0.31581910878717373 là độ tin cậy

Trang 10

LPA

Ts=18

29,38

Bài 3 : Null Message

Từ hình vẽ :

- LPA gửi cho LPB một Null Message có nhãn thời gian là: 20+2 = 22

- LPB gửi cho LPC một Null Message có nhãn thời gian là: 22+4 = 26

- LPC gửi cho LPA một Null Message có nhãn thời gian là: 26+3 = 29

- LPA gửi cho LPB một Null Message có nhãn thời gian là: 29+2 = 31

- LPB gửi cho LPC một Null Message có nhãn thời gian là: 31+4 = 35

- LPC gửi cho LPA một Null Message có nhãn thời gian là: 35+3 = 38

Kết luận: Nhãn thời gian null message phải được gửi đi cho tới khi tiến trình LPA xử lý được thông điệp có nhãn thời gian 32 là: 22, 26, 29, 31, 35, 38

Trang 12

antiMsgQueue

Tw=0

OutputQueue

-6 OutputQueue

-3

Tw=1

Bài 4: Thuật toán TimeWarp

Sự thay đổi trạng thái của các tiến trình trong 7s được thể hiện như sau :

Trạng thái đầu, khi các tiến trình bắt đầu xử lý các thông điệp đứng đầu hàng đợi vào, Thời gian mô phỏng của các tiến trình đều bằng 0, hàng đợi cho các anti-message là rỗng Trạng thái của hệ thống tại thời điểm Tw được cho bên dưới

− Các LP tăng Ts của mình tới nhãn thời gian của thông điệp đứng đầu inputQueue và bắt đầu xử lý (trong 1.0 giây) Sau 1 giây (Tw=1), sau khi các tiến trình xử lý xong thông điệp đầu tiên, tiến trình 1 có thời gian mô

phỏng là, gửi tới LP2 thông điệp có nhãn thời gian là 3 (và lưu lại trong

outputQueue anti-message có nhãn thời gian 3) Tiến trình 2 có Ts=2 và

gửi thông điệp có nhãn thời gian 6 tới LP1 (và lưu lại trong outputQueue

until message có nhãn thời gian 6) Do thời gian gửi thông điệp = 0, nên

các thông điệp đã nằm trong hàng đợi của các tiến trình đích tương ứng Trạng thái hệ thống ở giây thứ 1 (tw=1) được cho bên dưới

− Các tiến trình tăng thời gian lên thông điệp đứng đầu hàng đợi và tiếp tục xử lý thông điệp này trong 1 giây Sau 1 giây (tw=2), tiến trình LP1 có thời gian mô phỏng là 3, gửi một thông điệp có nhãn thời gian là 5 đến LP2.Tiến trình 2 tăng thời gian mô phỏng lên và gửi thô,ng điệp có nhãn thời gian 10 đến LP1 Do thời gian gửi thông điệp bằng 0,

Trang 13

-6 -10 OutputQueue

-3 -5

Tw=2

OutputQueue

-6 OutputQueue

-3 -5

Tw=2

antiMsgQueue

-6 -7 antiMsgQueue

-3 -5 -11

Tw=3

nên các thông điệp đều đã tới đích Trạng thái tại thời điểm Tw=2 được cho bên dưới

− Tại thời điểm Tw=2, khi bắt đầu xử lý sự kiện tiếp theo, tiến trình LP2 phát hiện ra một strangler massage (thông

điểm trước nhãn thời gian của strangler message Đó là khi thời gian mô phỏng của LP2 = 2 LP2 khôi phục trạng thái tại thời điểm có nhãn thời gian 2 (trước khi xử lý sự kiện 6) và gửi anti-message có nhãn thời gian là -10 Do thời gian cho việc quay lui, hủy bỏ thông điệp là 0, nên sau khi quay lui hệ thống vẫn tại thời điểm tw=2 Trạng thái hệ thống tại tw=2 sau khi quay lui cho bên dưới

Trang 14

-6 -7 antiMsgQueue

-3 -5

Tw=3

antiMsgQueue

-6 -7 -9 antiMsgQueue

-3 -5 -8

Tw=4

antiMsgQueue

-6 -7 -9 -10 antiMsgQueue

-3 -5 -8 -9

Tw=5

InputQueue Ts=9 InputQueue Ts=8 Tw=6

Tw = 6  antiMsgQueue LP1 : -3, -5, -8, -9, -11

 antiMsgQueue LP2 : -6, -7, -9, -10, -12

Trang 15

13 12 10 LP1 11 11 LP2

InputQueue Ts=9 InputQueue Ts=9 Tw=7

Tw = 7  antiMsgQueue LP1 : -3, -5, -8, -9, -11, -11

 antiMsgQueue LP2 : -6, -7, -9, -10, -12, -13

Ngày đăng: 25/09/2017, 15:05

HÌNH ẢNH LIÊN QUAN

Từ hình vẽ : - Bài tập các kỹ thuật hiện đại trong CNTT
h ình vẽ : (Trang 10)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w