25
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Viện Điện Tử Viễn Thông BÀI TẬP LỚN Đề tài :Mạng hàng đợi Giảng viên hướng dẫn: TS.Trần Thị Ngọc Lan Nhóm : 08 Sinh viên thực hiện: Họ và tên MSSV Lớp

Bao cao cs tsl

Embed Size (px)

DESCRIPTION

báo cáo

Citation preview

TRNG I HC BCH KHOA H NI

Vin in T Vin Thng

BI TP LN ti :Mng hng i

Ging vin hng dn:TS.Trn Th Ngc Lan Nhm : 08 Sinh vin thc hin: H v tn MSSV LpL Minh H 20111458 TTT-05-K56Nguyn Vn Lm 20111744 TTT-02-K56Phm V Trung Kin 20111727 TTT-02-K56Giang Quang t 20111371 TTT-05-K56Giang Quc Vit 20112499 TTT-09-K56

H ni, thng 12 nm 2014Mc lcTrangChng I : Nghin cu s b1.Gii thiu 2.Tm hiu Omnet++.2.1. Omnet++ l g ? 2.2. Cc thnh phn chnh ca OMNET++ 2.3. ng dng2.4. M hnh trong OMNET++2.5. Cu trc lin kt ca mt chng trnh m phng

3.K hoch lm vic.Chng II : Phn tch h thngChng III : Thit k h thng1. M phng2. Mt s hnh nh m phng3. X l kt qu m phng4. Tnh s lng gi i c n ch5. La chn tc phc v nh nht s gi truyn c n ch l ln nhtChng IV: Kt lunTi Liu Tham Kho

Chng I : Nghin cu s b1.Gii thiuTrong mn C s truyn s liu , chng em c lm quen vi phng php nh gi hot ng ca mt h thng thng tin bng phng php phn tch ton hc, c bit l cc m hnh lin quan n h thng hng i n, mng hng i. Trong phn bi tp ln ny, chng em c lm quen vi mt phng php khc nh gi hiu nng , l phng php m phng . Cng c m phng c s dng y l : cng c m phng OMNET++ - cng c m phng mng thng dng nht hin nay. 2. Tm hiu v OMNET++2.1. OMNET++ l g ?OMNeT++ l vit tt ca cm t Objective Modular Network Testbed in C++.OMNeT++ l mt ng dng cung cp cho ngi s dng mi trng tin hnh m phng hot ng ca mng. Mc ch chnh ca ng dng l m phng hot ng mng thng tin, tuy nhin do tnh ph cp v linh hot ca n, OMNeT++ cn c s dng trong nhiu lnh vc khc nh m phng cc h thng thng tin phc tp, cc mng kiu hng i (queueing networks) hay cc kin trc phn cng...OMNeT++ cung cp sn cc thnh phn tng ng vi cc m hnh thc t. Ccthnh phn ny (cn c gi l cc module) c lp trnh theo ngn ng C++, sau c tp hp li thnh nhng thnh phn hay nhng m hnh ln hn bng mt ngn ng bc cao (NED). OMNeT++ h tr giao din ho, tng ng vi cc m hnh cu trc ca n ng thi phn nhn m phng (simulation kernel) v cc module ca OMNeT++ cng rt d dng nhng vo trong cc ng dng khc.

2.2 Cc thnh phn chnh ca OMNET++ Th vin phn nhn m phng (simulation kernel) Trnh bin dch cho ngn ng m t hnh trng (topology description language) - NED (nedc) Trnh bin tp ho (graphical network editor) cho cc file NED (GNED) Giao din ho thc hin m phng, cc lin kt bn trong cc file thc hinm phng (Tkenv) Giao din dng lnh thc hin m phng (Cmdenv) Cng c (giao din ho) v th kt qu vector u ra (Plove) Cng c (giao din ho) m t kt qu v hng u ra (Scalars) Cng c ti liu ho cc m hnh Cc tin ch khc Cc ti liu hng dn, cc v d m phng...2.3. ng dngOMNeT++ l mt cng c m phng cc hot ng mng bng cc module c thit k hng i tng. OMNeT++ thng c s dng trong cc ng dng ch yu nh: M hnh hot ng ca cc mng thng tin M hnh giao thc M hnh ho cc mng kiu hng i M hnh ho cc h thng a b vi x l (multiprocesser) hoc cc h thngphn cng theo m hnh phn tn khc (distributed hardware systems) nh gi kin trc phn cng nh gi hiu qu hot ng ca cc h thng phc tp...2.4. M hnh trong OMNET++Mt m hnh trong OMNeT++ bao gm cc module lng nhau c cu trc phn cp. su ca ca cc module lng nhau l khng gii hn, iu ny cho php ngi s dng c th biu din cc cu trc logic ca cc h thng trong thc t bng cc cu trc m hnh. Cc module trao i thng tin vi nhau thng qua vic gi cc message (message). Cc message ny c th c cu trc phc tp tu . Cc module c th gi cc message ny theo hai cch, mt l gi trc tip ti a ch nhn, hai l gi i theo mt ng dn c nh sn, thng qua cc cng v cc kt ni.Cc module c th c cc tham s ca ring n. Cc tham s ny c th c s dng chnh sa cc thuc tnh ca module v biu din cho topology ca m hnh.Cc module mc thp nht trong cu trc phn cp ng gi cc thuc tnh. Ccmodule ny c coi l cc module n gin, v chng c lp trnh trong ngn ngC++ bng cch s dng cc th vin m phng.

2.5. Cu trc lin kt ca mt chng trnh m phng

3. K hoch lm vicSau khi nh gi s b v thc trng, yu cu ra, kh nng nhm pht trin cng nh qu trnh vn hnh d n c th c pht trin theo trnh t:

Chng II : Phn tch h thngH thng gm :

Mng hng i bao gm 2 hng i Q1 1= 80 (gi/s) v Q2 2= 50 (gi/s). Ngun pht tun theo phn b Poisson vi tham s =30 (gi/s).Yu cu :1. Hy chy kch bn m phng trn cho khong thi gian 5s v 200s. Tnh ton slng gi TB, Tr trung bnh trong mng hng i. So snh vi kt qu m phng .2. Gi s hng i 1 c chiu di hng i K =2 cc hng i khc vn c di bng v cng. Cc thng s khc gi nguyn. Hy tnh ton cc tham s ca hng i nh: N, T v Nq, Tq ca tng hng i. v tc gi n ch. So snh vi kt qum phng trong thi gian 200s .3. Gi s hng i 2 c chiu di hng i K =0 cc hng i khc vn c di bng v cng. Cc thng s khc gi nguyn. Hy tnh ton cc tham s ca hng i nh: N, T v Nq, Tq ca tng hng i. v tc gi n Q1 v Q2. So snh vi kt qu m phng trong thi gian 200s .

Chng III : Thit k h thng

1. M phng :Cc bc tin hnh :B1 : Chy chng trnh Omnet++ . To new omnet++ project , t tn cho project mi va to.B2 : Add th vin queueinglib vo project va to bng cch: chut phi vo project properties project references queueinglib ok .B3 : To file .NED ( file ny dng m t mng ). B4 : Design Trn giao din ca file .NED va to Creat network type. Sau thit k mng hng i theo yu cu bi : 2 hng i (Q1, Q2). y ta cn thm ngun (source)v ch (sink) v delay(delay) trong m phng, sau kt ni chng li vi nhau.B5 : To file omnetpp.ini (file cu hnh - cc tham s c gn gi tr t file ny). Chn network tng ng bc ny. B6 : Trong file omnetpp.ini va to chn mc Parameters add cc tham s thi gian nh thi gian phc v , thi gian n, s gi cng vic. Ci t thi gian chy m phng th vo General simulation time limit. B7 : Vo Run run configurations new_configurationB8: To file .anf . Sau vo Results ko th 2 file ( .sca v .vec ). Xem cc thng s thu c.B9 : Chy m phng.

2. Mt s hnh nh m phng :

2.1.To file .ned m t cu trc mng hng i:

Code :[General]network = manghangdoisim-time-limit = 200s**.source.interArrivalTime = exponential(1s/20)**.source.stopTime = 200s*.delay.delay = 1s/1000000*.source.startTime = 0s*.Q2.serviceTime = exponential(1s/50)*.Q2.tyle = 1/2*.Q1.serviceTime = exponential(1s/80)*.Q1.tyle = 1/4Code hng i thay i ://// This file is part of an OMNeT++/OMNEST simulation example.//// Copyright (C) 2006-2008 OpenSim Ltd.//// This file is distributed WITHOUT ANY WARRANTY. See the file// `license' for details on this and other legal matters.//

#include "Queue.h"#include "Job.h"

namespace queueing {

Define_Module(Queue);

Queue::Queue(){ jobServiced = NULL; endServiceMsg = NULL;}

Queue::~Queue(){ delete jobServiced; cancelAndDelete(endServiceMsg);}

void Queue::initialize(){ droppedSignal = registerSignal("dropped"); queueingTimeSignal = registerSignal("queueingTime"); queueLengthSignal = registerSignal("queueLength"); emit(queueLengthSignal, 0); busySignal = registerSignal("busy"); emit(busySignal, 0);

endServiceMsg = new cMessage("end-service"); fifo = par("fifo"); capacity = par("capacity"); queue.setName("queue");}

void Queue::handleMessage(cMessage *msg){ if (msg==endServiceMsg) { endService( jobServiced ); if (queue.empty()) { jobServiced = NULL; emit(busySignal, 0); } else { jobServiced = getFromQueue(); emit(queueLengthSignal, length()); simtime_t serviceTime = startService( jobServiced ); scheduleAt( simTime()+serviceTime, endServiceMsg ); } } else { Job *job = check_and_cast(msg); arrival(job);

if (!jobServiced) { // processor was idle jobServiced = job; emit(busySignal, 1); simtime_t serviceTime = startService( jobServiced ); scheduleAt( simTime()+serviceTime, endServiceMsg ); } else { // check for container capacity if (capacity >=0 && queue.length() >= capacity) { EV setQueueCount(job->getQueueCount() + 1); } }

if (ev.isGUI()) getDisplayString().setTagArg("i",1, !jobServiced ? "" : "cyan3");}

Job *Queue::getFromQueue(){ Job *job; if (fifo) { job = (Job *)queue.pop(); } else { job = (Job *)queue.back(); // FIXME this may have bad performance as remove uses linear search queue.remove(job); } return job;}

int Queue::length(){ return queue.length();}

void Queue::arrival(Job *job){ job->setTimestamp();}

simtime_t Queue::startService(Job *job){ // gather queueing time statistics simtime_t d = simTime() - job->getTimestamp(); emit(queueingTimeSignal, d); job->setTotalQueueingTime(job->getTotalQueueingTime() + d); EV getTotalServiceTime() + d); double tl=par("tyle"); int test = bernoulli (tl,0); if (test) send(jobServiced, "out",0); else send(jobServiced, "out",1);}

void Queue::finish(){}

}; //namespace

2.2. Thit lp cc thng s v la chn cu hnh :

Ci t cc thng s m phng :

2.3. Mt s hnh nh chy m phng :

2.4. File .elog

3. X l kt qu m phng: 3.1.L thuyt lin quan: 3.1.1. L thuyt mng hng i :Mt mng hng i c nh ngha bng k nt mng, mi nt mng i l mt h thng hng i n bao gm 1 hng i v ci server. Cc yu cu i vo hng i ti mt s nt xc nh v i ra t mt s nt khc.iu khin lung v kim sot tc nghn trong mng Sau khi c phc v xong mt nt mng yu cu c th: - Ri khi nt mng - i vo nt k tip - Quay tr li nt n i qua trc

Gi thit dng lu lng i vo nt i tun theo phn b Poisson vi tham s 1Tc phc v ca server ti nt mng j tun theo phn b Poisson vi tham s j Xc sut 1 yu cu sau khi ri nt i c gi ti nt j l rij( gi l xc sut nh tuyn), xc sut n ri khi mng l ri0.3.1.2 . Hng i M/M/1Lc trng thi:

Chui Markov ca hng i M/M/1.

. Tin trnh n v tin trnh phc v c thuc tnh Markov (tin trnh khng nh, tc trng thi tip theo ch ph thuc trng thi hin ti, nhng c lp vi vic n c c nh th no). - Thi gian gia hai ln n v thi gian phc v tun theo phn b m. - H thng c 1 server, dung lng m l v hn. - Tc gi n l (gi/s). - Tc phc v l (gi/s). - Mt lu lung: = - S lng gi trung bnh trong h thng: N=

- S lung gi trung bnh trong server: Ns =P(N1)= 1-P(N=0) = 1- (1- ) =

-S lng gi trung bnh trong hng i: Nq = N - Ns =

-Thi gian trung bnh lu trong h thng ca mi gi: T = =

Thi gian i trung bnh ca mi gi : Tq =T-Ts =

3.1.3 . Hng i M/M/1/K Lc trng thi:

Chui Markov ca hng i M/M/1/k

Vi s khch hng l kPn=.Po; 0