Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
|
|
|
- Dustin Clarke
- 10 years ago
- Views:
Transcription
1 Event Driven Simulation in NS2 Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
2 Outline Recap: Discrete Event v.s. Time Driven Events and Handlers The Scheduler The Simulator Summary Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
3 Event-Driven v.s.. Time-Driven Q: Time Driven = ( Move from one time slot to another ) Q: Event Driven = ( Move from one event to another ) Time Driven or Discrete Time Simulation Example: Packet arrivals and departures Arrivals Departures Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
4 Time-Driven Simulation Observe the buffer for every FIXED period (e.g., 1 second) No. of Packets in the Buffer Time (s) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
5 Time-Driven Simulation Simulation event for every time slot (fixed interval) Example Psudo Codes: For t = 1 to sim_time { if (arrival) buffer = buffer + 1; if (departure) buffer = buffer -1; print(buffer); } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
6 Event-Driven Simulation Go from one event to another Same Example No. of Packets in the Buffer Time (s) () Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
7 Event-Driven Di Simulation i Use a Scheduler Maintain a set of events Example CreateEvent(); Run (); Psudo Codes CreateEvent(){ Pkt1.arr(0.8) Pkt2.arr(1.5) } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
8 Event-Driven Simulation CreateEvent(); Event ID Type Arrival Arrival Arrival Arrival Arrival Arrival Time Run(); Create departure Create departure Create departure Event ID Type Departure Departure Departure Time Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
9 NS2 Simulation Concept Event-Driven Simulation Recap: Simulation Main Steps Design Simulation Network Configuration i Phase CreateEvent() Simulation Phase Run() Result Compilation Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
10 Simulation Network Configuration Phase Create topology Schedule event (e.g., CreateEvent()) t()) Simulation Phase Simulator::run() (e.g., Run()) ) Execute the scheduled events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
11 Outline Recap: Discrete Event v.s. Time Driven Events and Handlers The Scheduler The Simulator Summary Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
12 Event and Handler: Outline Overview C++ Classes Event and Handler Two Main Types of Events AtEvent Packet Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
13 Concepts of Events and Handlers Event-driven simulation Put events on the simulation timeline Move forward in time When finding an event, take associated actions (i.e., execute the event) Main components Events C++ class Event Actions C++ class Handler Q: Give examples of events. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
14 Event and Handler Examples of Events Packet Arrivals/Departures Start/Stop Application Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
15 Event and Handler: C++ Classes Class Event: Define events (e.g., packet arrival) Class Handler: Define (default) actions associated with an event (tell the node to receive the packet) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
16 C++ Class Event //~/ns/common/scheduler.h class Event { public: }; Event* next_; /* event list */ Event* prev_; Handler* handler _; /* handler to call when event ready */ double time_; /* time at which event is ready */ scheduler_uid_t uid_; /* unique ID */ Event() : time _(0), uid _(0) {} Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
17 Class Event Main variables: next_: Next event - uid_: Unique ID time_: Time - handler_: Handler handler handle(){ handle(){ <actions> <actions> } } handler handler_ next_ handler_ next_ event uid_ time_ uid_ time_ event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
18 Declaration Class Handler handler What is this? What is the purpose? handle(){ <actions> } Define Default Actions C++ function handle(event*) Associated with an Event handler_ uid_ next_ time_ event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
19 Handlers: Example Class NsObject (derived from class Handler) ) As we shall see, all network objects (e.g., Connector, TcpAgent) derived from class NsObject. Default action of all network objects is to receive (using function recv( )) a packet (cast from an event e) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
20 Events and Handlers: Example $ftp start $cbr start Simulation time handle(){ } send FTP packets handle(){ } send CBR packets handler handler handler_ next_ handler_ next_ event uid_ time_ uid_ time_ event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
21 Events and Handlers: Example When hitting an event e, a Scheduler 1. Extract the handler_ associated with the event e 2. Execute handler_->handle(e) (i.e., tell the handler_ to take the default action) handler handle(){ <actions> } The default action is defined in in the handler, NOT in the event handler_ uid_ next_ time_ Simulation time event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
22 Question What is the main purpose of events? What happen if NS2 does not define classes Event, Handler, and Scheduler? Some events have not occurred; Every event occurs at the same time. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
23 Event and Handler: Outline Overview C++ Classes Event and Handler Two Main Types of Events AtEvent Packet (Discussed Later) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
24 Two Types of Events 1. At Event: (Derives from Class Event) Action: Execute an OTcl command Examples: C++ Class AtEvent Placed on the simulation timeline by instproc at with syntax $ns at <time> <Tcl command> Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
25 C++ Class AtEvent class AtEvent : public Event { public: AtEvent() : proc_(0) {} char* proc_; }; time_ uid_ next _ handler_ handle(event *e){ AtEvent* at = (AtEvent*)e; puts this is test Tcl::instance().eval(at->proc_); delete at; proc_ } AtEvent AtHandler Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
26 C++ Class AtEvent OTcl command: $ns at <time> <Tcl command> Implementation: Scheduler::command(int argc, const char*const* argv) { Tcl& tcl = Tcl::instance(); if (argc == 4) { Q: argv[0] =? ( cmd ) if (strcmp(argv[1], "at") == 0) { double delay, t = atof(argv[2]); const char* proc = argv[3]; AtEvent* e = new AtEvent;int n = strlen(proc); e->proc_ = new char[n + 1]; strcpy(e->proc_, proc); delay = t - clock(); schedule(&at_handler, e, delay); return (TCL_OK); } } return (TclObject::command(argc, argv)); } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
27 Two Types of Events 2. Packet: (Derives from Class Event) Action: Receive a packet C++ Class Packet (will be discussed later) NsObject?? handle(){ <actions>?? } Type casting: Packet is a derived class of class Event handler_ uid_ next_ time_ Event Packet Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
28 Questions Q: How do we put an AtEvent on the $ns at <time> <Tcl command> simulation timeline? ( ) Q: Is it possible to put a Packet on the simulation timeline? Why or why not? ( Yes; Packet derives from class Event ) How do we put events on the simulation timeline? Use THE SCHEDULER Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
29 Outline Recap: Discrete Event v.s. Time Driven Events and Handlers The Scheduler The Simulator Summary Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
30 The Scheduler: Outline Overview C++ Class Scheduler Unique ID and Its Mechanism Scheduling and Dispatching Mechansim Null Events and Dummy Events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
31 Event Handling: Recap 1. Put events on the simulation timeline 2. Take the default action assoc. with (i.e., handle) event Handler - Also called fire or dispatch - function handle() of class Handler 3. Move to the next event Scheduler - Through the pointer next_ _ of an Event object How do we PUT, TAKE, and MOVE? Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
32 Recap Event e = An indication of future event Handler defines the default action (i.e., how to execute the event e; handler(e)) NS2 moves forwards in time and tell the relevant handler to execute default actions. Execute = Fire = Dispatch What s more? How to put an event on the simulation timeline? Who should execute the actions assoc. with the event? THE SCHEDULER Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
33 The Scheduler 1. Put events on the simulation timeline function schedule( ) 2. Take the default action function dispatch( ) 3. Move forward in time function run( ) event handler_ uid_ time_ handler handle(){ } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
34 C++ Class Scheduler Current virtual time?? ( uniqueness ) Unique ID: incremented for every new event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
35 Task 1: Put Event on the Simulation Timeline Use function n schedule(h,e,delay), Associate Event e with a handler h Indicate the dispatching time handler Assign unique ID Put the Event e on the simulation time with delay delay handle(){ <actions> } handler_ next_ uid_ time_ event Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
36 Functions schedule(.) () < Checking for Error > New unique ID Bind e and h Update time Put e on the time line Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
37 Function schedule(.) () 4 Possible errors 1. Null handler (i.e., h = 0) if (!h) { /* error: Do not feed in NULL handler */ }; We will talk about this error later 2. uid_ of the event > 0 Something wrong if (e->uid_ > 0) { } printf("scheduler: Event UID not valid!\n\n"); abort(); This is a very common error message!! Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
38 Function schedule(.) () 4 Possible errors 3. delay < 0 Go back in time if (delay < 0) { /* error: negative delay */ }; 4. uid_ < 0 Use up the uid_ if (uid_ < 0) { fprintf(stderr, "Scheduler: UID space exhausted!\n") abort(); } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
39 Task 2: Take Default Actions NS2 dispatches a relevant handler to take default actions. event handler_ handler *e uid_ time_ *h Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer Why put negative? We will discuss about the sign of uid_ later. 39
40 Task 3: Move from One Event to the Next Function run() starts the simulation Take the next event from the queue of events Simulation time Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
41 The Scheduler: Outline Overview C++ Class Scheduler Unique ID and Its Mechanism Scheduling and Dispatching Mechanism Null Events and Dummy Events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
42 Two types of Unique ID (UID) 1. Scheduler: Global UID Track the number of created UID 2. Event: Individual UID Event ID Assigned by the Scheduler Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
43 Global l UID A member variable of class Scheduler Always Positive Incremented for every new event (fn schedule(.)) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
44 Individual id UID Unique to each event Set by the Scheduler Assigned by the Scheduler within fn schedule(.) Negated by the invocation n of fn dispatch(.) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
45 Individual id UID Unique to each event Positive: assigned by fn schedule(.) Negative: dispatched fn dispatch(.) Dynamics: uid_ is switching between +/- values schedule(.) If negative ( Event UID not valid )? dispatch(.) Negative uid_ Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
46 Positive UID Individual id UID The event is on the simulation time line. It is waiting to be executed. Rescheduling the (undispatched) event here would result in an error uid_ of the event > 0 Something wrong: if (e->uid_ > 0) { printf("scheduler: Event UID not valid!\n\n"); abort(); } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
47 Positive UID Individual id UID The event is on the simulation time line. It is waiting to be executed. Rescheduling the (undispatched) event here would result in an error Negative UID The event has been executed. It is ready to be rescheduled. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
48 The Scheduler: Outline Overview C++ Class Scheduler Unique ID and Its Mechanism Scheduling and Dispatching Mechanism Null Events and Dummy Events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
49 The Scheduler: Outline Overview C++ Class Scheduler Unique ID and Its Mechanism Scheduling and Dispatching Mechanism Null Events and Dummy Events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
50 Scheduling-Dispatching Mechanism Example: set ns [new Simulator] $ns at 10 [puts "An event is dispatched"] $ns run AtEvent AtHandler time_ uid_ next_ handler_ puts An even is dispatched proc_ handle(){ AtEvent* at = (AtEvent*)e; Tcl::instance().eval(at->proc_); delete at; } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
51 Scheduling-Dispatching Mechanism Scheduler::command(int argc, const char*const* argv) { } Tcl& tcl = Tcl::instance(); if (argc == 4) { if (strcmp(argv[1], "at") == 0) { } double delay, t = atof(argv[2]); const char* proc = argv[3]; AtEvent* e = new AtEvent; int n = strlen(proc); e->proc_ = new char[n + 1]; strcpy(e->proc_, proc); delay = t - clock(); schedule(&at_handler, handler e, delay); return (TCL_OK); } return (TclObject::command(argc, argv)); Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
52 Scheduling-Dispatching Mechanism command (argv = [ x, at, time, str] ) AtEvent e dispatch( p, t ) clock_=t p->uid_ = -p->uid_ p->handler_->handle(p) e->proc_ = str schedule( &at_handler, e, delay ) AtHandler at_handler handle(e) schedule( h, e, delay ) uid_++ invoke OTcl command stored in e->proc_ Event uid_ handler_ time_ Clock_+( ) insert(e) Scheduling Dispatching Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
53 The Scheduler: Outline Overview C++ Class Scheduler Unique ID and Its Mechanism Scheduling and Dispatching Mechanism Null Events and Dummy Events Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
54 Null and Dummy Events Scheduling In general, we feed the event into the Scheduler. The event contains Time where the event occurs, and Ref. to an action taker (i.e., the handler) Example Event = Packet Time = Time where the packet is received Default action = Receive a packet Action taker = NsObject In some case, we the default action involves no event. E.g., Print a string after a certain delay What event would we feed to the function Scheduler::schedule(handler, event,delay)? Q: delay =?; handler =?; event =? Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
55 Null and Dummy Events Scheduling Null Event: set event = 0 Scheduler::schedule(handler,0,delay) Dummy Event: A member variable whose type is Event It does nothing but being placed in function schedule(handler,dummy_event,delay) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
56 Null and Dummy Events Scheduling Dummy event example: class LinkDelay //~ns/link/delay.h class LinkDelay : public Connector { };... Event intr_; //~ns/link/delay.cc void LinkDelay::recv(Packet* p, Handler* h) {... } s.schedule(h, &intr_, txt); Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
57 Null and Dummy Events Scheduling Which one should we use? Null or Dummy? Null events Simple, but no mechanism to preserve uid_ conformance You lose the scheduling-dispatching protection mechanism. Suitable for simple cases Dummy events Require a declaration in a class. A bit more complicated, but will conform with NS2 scheduling-dispatching dispatching mechanism Suitable for more complicated cases Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
58 Outline Recap: Discrete Event v.s. Time Driven Events and Handlers The Scheduler The Simulator Summary Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
59 The Simulator Maintain assets which are shared among simulation objects The schedulers Event scheduling The null agent Packet destruction Node reference All nodes Link reference All links Ref.to the routing component Routing It does not do the above functionalities. It only yprovide the ref. to the obj which does the above functionalities Q:What is an advantage of putting the ref. to the Simulator? A: For convenient; The Simulator will provide single point of access to these objects. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
60 The Simulator OTcl and C++ Classes Simulator OTcl Instvar scheduler_: The schduler nullagent_: The packet destruction object Node_(<nodeid>): stores node objects link_(sid:did): id did) stores link objects connecting two nodes routingtable_: stores the routing component sid did Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
61 C++ Class Simulator //~ns/common/simulator.h class Simulator : public TclObject { public: static Simulator& instance() { return (*instance_); } Simulator() : nodelist _(NULL), rtobject_(null), nn_(0), size_(0) {}... private: ParentNode **nodelist_;; RouteLogic *rtobject_; int nn_; int size_; static Simulator* instance_; }; Function instance(): Retrieve the static Simulator instance_. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
62 Retrieving the Simulator Instance Instproc instance{} //~ns/tcl/lib/ns-lib.tcl Simulator proc instance {} { set ns [Simulator info instances] if { $ns!= "" } { return $ns } }... Retrieve all instantiated instances of a given class Q: What does info instances do? Q: Can it return more than one Simulator instance? Why? If so, which one do we choose? No!, the simulator is declared as static static Simulator* instance_; Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
63 Running Simulation Creating a Simulator object set $ns [new Simulator] ] OTcl constructor: //~ns/tcl/lib/ns-lib.tcl Simulator instproc init args { $self create_packetformat $self use-scheduler Calendar $self set nullagent_ [new Agent/Null] $self set-address-format def eval $self next $args } $ns is now a Simulator instance Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
64 Running Simulation Main instproc run{}: Start simulation //~/ns/tcl/lib/ns-lib.tcl Simulator instproc run { [$self get-routelogic] configure $self instvar scheduler_ Node_ link_ started_ set started_ 1 foreach nn [array names Node_] { $Node_($nn) reset foreach qn [array names link_] { set q [$link_($qn) queue] $q reset } return [$scheduler_ run] } Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
65 Running Simulation Scheduler::run{} Keep executing events until no more event or the simulation is halted Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
66 Instprocs of Class Simulator Instproc Meaning now{} Retrieve the current simulation time. nullagent{} Retrieve the shared null agent. use-scheduler{type} Set the type of the Scheduler to be <type>. at{time stm} Execute the statement <stm> at <time> second. run{} Start the simulation. halt{} Terminate the simulation. cancel{e} Cancel the scheduled event <e>. Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
67 Outline Recap: Discrete Event v.s. Time Driven Events and Handlers The Scheduler The Simulator Summary Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
68 Summary NS2 Simulator is Event Driven Event Unique ID + Time + Handler Two derived classes: ( AtEvent and Packet ) Handlers ( default actions ) ( function handle(e) ) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
69 Summary Scheduler schedule(.): ( Put an event in the list ) dispatch(.): () ( Executes an event ) run(): ( Start simulation ) Event UID Dynamics schedule() +, dispatch() - Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
70 Summary Null event and Dummy Event Purpose: ( Delay actions requiring no event) Differences: Null Event = ( 0 ) Dummy Event = ( member m variable of a class ) Simulator Maintain all common objects: Scheduler, null agent, nodes, links, and routing table Start the simulation (e.g., $ns run ) Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer
Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 1
A Review of the OOP Polymorphism Concept Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 1 Outline Overview Type Casting and Function Ambiguity Virtual Functions,
Network Simulator: ns-2
Network Simulator: ns-2 Antonio Cianfrani Dipartimento DIET Università Sapienza di Roma E-mail: [email protected] Introduction Network simulator provides a powerful support to research in networking
Help on the Embedded Software Block
Help on the Embedded Software Block Powersim Inc. 1. Introduction The Embedded Software Block is a block that allows users to model embedded devices such as microcontrollers, DSP, or other devices. It
CS170 Lab 11 Abstract Data Types & Objects
CS170 Lab 11 Abstract Data Types & Objects Introduction: Abstract Data Type (ADT) An abstract data type is commonly known as a class of objects An abstract data type in a program is used to represent (the
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
ns-2 Tutorial Exercise
ns-2 Tutorial Exercise Multimedia Networking Group, The Department of Computer Science, UVA Jianping Wang Partly adopted from Nicolas s slides On to the Tutorial Work in group of two. At least one people
Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
Implementing Rexx Handlers in NetRexx/Java/Rexx
Institut für Betriebswirtschaftslehre und Wirtschaftsinformatik Implementing Rexx Handlers in NetRexx/Java/Rexx The 2012 International Rexx Symposium Rony G. Flatscher Wirtschaftsuniversität Wien Augasse
SQLITE C/C++ TUTORIAL
http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm SQLITE C/C++ TUTORIAL Copyright tutorialspoint.com Installation Before we start using SQLite in our C/C++ programs, we need to make sure that we have
5 Arrays and Pointers
5 Arrays and Pointers 5.1 One-dimensional arrays Arrays offer a convenient way to store and access blocks of data. Think of arrays as a sequential list that offers indexed access. For example, a list of
Variable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
How To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes
Content Introduction and History File I/O The File System Shell Programming Standard Unix Files and Configuration Processes Programs are instruction sets stored on a permanent medium (e.g. harddisc). Processes
Phys4051: C Lecture 2 & 3. Comment Statements. C Data Types. Functions (Review) Comment Statements Variables & Operators Branching Instructions
Phys4051: C Lecture 2 & 3 Functions (Review) Comment Statements Variables & Operators Branching Instructions Comment Statements! Method 1: /* */! Method 2: // /* Single Line */ //Single Line /* This comment
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
MUSIC Multi-Simulation Coordinator. Users Manual. Örjan Ekeberg and Mikael Djurfeldt
MUSIC Multi-Simulation Coordinator Users Manual Örjan Ekeberg and Mikael Djurfeldt March 3, 2009 Abstract MUSIC is an API allowing large scale neuron simulators using MPI internally to exchange data during
An API for Reading the MySQL Binary Log
An API for Reading the MySQL Binary Log Mats Kindahl Lead Software Engineer, MySQL Replication & Utilities Lars Thalmann Development Director, MySQL Replication, Backup & Connectors
Network Programming. Writing network and internet applications.
Network Programming Writing network and internet applications. Overview > Network programming basics > Sockets > The TCP Server Framework > The Reactor Framework > High Level Protocols: HTTP, FTP and E-Mail
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
Exercises on ns-2. Chadi BARAKAT. INRIA, PLANETE research group 2004, route des Lucioles 06902 Sophia Antipolis, France
Exercises on ns-2 Chadi BARAKAT INRIA, PLANETE research group 2004, route des Lucioles 06902 Sophia Antipolis, France Email: [email protected] November 21, 2003 The code provided between the
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Polymorphism. Problems with switch statement. Solution - use virtual functions (polymorphism) Polymorphism
Polymorphism Problems with switch statement Programmer may forget to test all possible cases in a switch. Tracking this down can be time consuming and error prone Solution - use virtual functions (polymorphism)
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
IVI Configuration Store
Agilent Developer Network White Paper Stephen J. Greer Agilent Technologies, Inc. The holds information about IVI drivers installed on the computer and configuration information for an instrument system.
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
Tutorial. Reference http://www.openflowswitch.org/foswiki/bin/view/openflow/mininetgettingstarted for more thorough Mininet walkthrough if desired
Setup Tutorial Reference http://www.openflowswitch.org/foswiki/bin/view/openflow/mininetgettingstarted for more thorough Mininet walkthrough if desired Necessary Downloads 1. Download VM at http://www.cs.princeton.edu/courses/archive/fall10/cos561/assignments/cos561tutorial.zip
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes
Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent
Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third
Software Engineering Concepts: Testing. Pointers & Dynamic Allocation. CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009
Software Engineering Concepts: Testing Simple Class Example continued Pointers & Dynamic Allocation CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009 Glenn G. Chappell Department
Design Patterns in C++
Design Patterns in C++ Concurrency Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 4, 2011 G. Lipari (Scuola Superiore Sant Anna) Concurrency Patterns May 4,
MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.
Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java
Facebook Twitter YouTube Google Plus Website Email
PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute
Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman
Daniele Messina, Ilenia Tinnirello
!"! #$ %& ' %& traffic source agent node link n0 ftp tcp sink 2mbps 10 ms n2 1.7mbps, 20 ms n3 cbr udp n1 2mbps 10 ms null pktsize 1KB, rate 1mbps #Create a simulator object set ns [new Simulator] $ $
CISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
Introduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins [email protected] CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]
Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference. www.hilscher.com.
Operating System Manual Realtime Communication System for netx Kernel API Function Reference Language: English www.hilscher.com rcx - Kernel API Function Reference 2 Copyright Information Copyright 2005-2007
# Constructors $smtp = Net::SMTP->new('mailhost'); $smtp = Net::SMTP->new('mailhost', Timeout => 60);
NAME Net::SMTP - Simple Mail Transfer Protocol Client SYNOPSIS DESCRIPTION EXAMPLES # Constructors $smtp = Net::SMTP->new('mailhost', Timeout => 60); This module implements a client interface to the SMTP
Netscape Internet Service Broker for C++ Programmer's Guide. Contents
Netscape Internet Service Broker for C++ Programmer's Guide Page 1 of 5 [Next] Netscape Internet Service Broker for C++ Programmer's Guide Nescape ISB for C++ - Provides information on how to develop and
Chapter 13 Storage classes
Chapter 13 Storage classes 1. Storage classes 2. Storage Class auto 3. Storage Class extern 4. Storage Class static 5. Storage Class register 6. Global and Local Variables 7. Nested Blocks with the Same
IMPLEMENTATION OF A SECURITY PROTOCOL FOR BLUETOOTH AND WI-FI
IMPLEMENTATION OF A SECURITY PROTOCOL FOR BLUETOOTH AND WI-FI U. Pavan Kumar Dept. of Telecommunication Systems Engineering, AITTM, Amity University, Noida, India. ABSTRACT [email protected] This paper
Basic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C
Basic Java Constructs and Data Types Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C 1 Contents Hello World Program Statements Explained Java Program Structure in
JavaScript. JavaScript: fundamentals, concepts, object model. Document Object Model. The Web Page. The window object (1/2) The document object
JavaScript: fundamentals, concepts, object model Prof. Ing. Andrea Omicini II Facoltà di Ingegneria, Cesena Alma Mater Studiorum, Università di Bologna [email protected] JavaScript A scripting language:
New Implementations into Simulation Software NS-2 for Routing in Wireless Ad-Hoc Networks
New Implementations into Simulation Software NS-2 for Routing in Wireless Ad-Hoc Networks Matthias Rosenschon 1, Markus Heurung 1, Joachim Habermann (SM IEEE) 1 ABSTRACT 1 Fachhochschule Giessen-Friedberg,
It has a parameter list Account(String n, double b) in the creation of an instance of this class.
Lecture 10 Private Variables Let us start with some code for a class: String name; double balance; // end Account // end class Account The class we are building here will be a template for an account at
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Object Oriented Software Design II
Object Oriented Software Design II C++ intro Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 26, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February 26,
WASv6_Scheduler.ppt Page 1 of 18
This presentation will discuss the Scheduler Service available in IBM WebSphere Application Server V6. This service allows you to schedule time-dependent actions. WASv6_Scheduler.ppt Page 1 of 18 The goals
StreamServe Persuasion SP4 Service Broker
StreamServe Persuasion SP4 Service Broker User Guide Rev A StreamServe Persuasion SP4 Service Broker User Guide Rev A 2001-2009 STREAMSERVE, INC. ALL RIGHTS RESERVED United States patent #7,127,520 No
Operator Overloading. Lecture 8. Operator Overloading. Running Example: Complex Numbers. Syntax. What can be overloaded. Syntax -- First Example
Operator Overloading Lecture 8 Operator Overloading C++ feature that allows implementer-defined classes to specify class-specific function for operators Benefits allows classes to provide natural semantics
PostgreSQL Functions By Example
Postgre [email protected] credativ Group January 20, 2012 What are Functions? Introduction Uses Varieties Languages Full fledged SQL objects Many other database objects are implemented with them
Specific Simple Network Management Tools
Specific Simple Network Management Tools Jürgen Schönwälder University of Osnabrück Albrechtstr. 28 49069 Osnabrück, Germany Tel.: +49 541 969 2483 Email: Web:
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Chapter 2 Quality of Service (QoS)
Chapter 2 Quality of Service (QoS) Software release 06.6.X provides the following enhancements to QoS on the HP 9304M, HP 9308M, and HP 6208M-SX routing switches. You can choose between a strict queuing
CIA405.lib. Contents. WAGO-I/O-PRO 32 Library
Appendix A Additional Libraries WAGO-I/O-PRO 32 Library CIA405.lib Contents CIA405_GET_KERNEL_STATUS...3 CIA405_GET_LOCAL_NODE_ID...4 CIA405_RECV_EMY...5 CIA405_RECV_EMY_DEV...6 CIA405_GET_STATE...7 CIA405_SDO_READ21...8
µtasker Document FTP Client
Embedding it better... µtasker Document FTP Client utaskerftp_client.doc/1.01 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. FTP Log-In...4 3. FTP Operation Modes...4 4.
Part I. Multiple Choice Questions (2 points each):
Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
Illustration 1: Diagram of program function and data flow
The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline
Web development... the server side (of the force)
Web development... the server side (of the force) Fabien POULARD Document under license Creative Commons Attribution Share Alike 2.5 http://www.creativecommons.org/learnmore Web development... the server
Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0
Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0 Third edition (May 2012). Copyright International Business Machines Corporation 2012. US Government Users Restricted
Getting off the ground when creating an RVM test-bench
Getting off the ground when creating an RVM test-bench Rich Musacchio, Ning Guo Paradigm Works [email protected],[email protected] ABSTRACT RVM compliant environments provide
CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing
CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects
An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform)
An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform) I'm late I'm late For a very important date. No time to say "Hello, Goodbye". I'm late, I'm late, I'm late. (White Rabbit in
El Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.
HPCC - Hrothgar Getting Started User Guide MPI Programming
HPCC - Hrothgar Getting Started User Guide MPI Programming High Performance Computing Center Texas Tech University HPCC - Hrothgar 2 Table of Contents 1. Introduction... 3 2. Setting up the environment...
STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009
STORM Simulation TOol for Real-time Multiprocessor scheduling Designer Guide V3.3.1 September 2009 Richard Urunuela, Anne-Marie Déplanche, Yvon Trinquet This work is part of the project PHERMA supported
Compile-time type versus run-time type. Consider the parameter to this function:
CS107L Handout 07 Autumn 2007 November 16, 2007 Advanced Inheritance and Virtual Methods Employee.h class Employee public: Employee(const string& name, double attitude, double wage); virtual ~Employee();
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
Project 2: Bejeweled
Project 2: Bejeweled Project Objective: Post: Tuesday March 26, 2013. Due: 11:59PM, Monday April 15, 2013 1. master the process of completing a programming project in UNIX. 2. get familiar with command
Configuration Manager
After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration
Developing Task Model Applications
MANJRASOFT PTY LTD Aneka 2.0 Manjrasoft 10/22/2010 This tutorial describes the Aneka Task Execution Model and explains how to create distributed applications based on it. It illustrates some examples provided
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang Today s topics Why objects? Object-oriented programming (OOP) in C++ classes fields & methods objects representation
MPLAB TM C30 Managed PSV Pointers. Beta support included with MPLAB C30 V3.00
MPLAB TM C30 Managed PSV Pointers Beta support included with MPLAB C30 V3.00 Contents 1 Overview 2 1.1 Why Beta?.............................. 2 1.2 Other Sources of Reference..................... 2 2
Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03.
Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03 Problem Sheet #10 Problem 10.1: finger rpc server and client implementation
Design and Implementation of Distributed Process Execution Environment
Design and Implementation of Distributed Process Execution Environment Project Report Phase 3 By Bhagyalaxmi Bethala Hemali Majithia Shamit Patel Problem Definition: In this project, we will design and
ECE 122. Engineering Problem Solving with Java
ECE 122 Engineering Problem Solving with Java Introduction to Electrical and Computer Engineering II Lecture 1 Course Overview Welcome! What is this class about? Java programming somewhat software somewhat
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
V850E2/ML4 APPLICATION NOTE. Performance Evaluation Software. Abstract. Products. R01AN1228EJ0100 Rev.1.00. Aug. 24, 2012
APPLICATION NOTE V850E2/ML4 R01AN1228EJ0100 Rev.1.00 Abstract This document describes a sample code that uses timer array unit A (TAUA) of the V850E2/ML4 to evaluate performance of the user-created tasks
Introduction to the BackgroundWorker Component in WPF
Introduction to the BackgroundWorker Component in WPF An overview of the BackgroundWorker component by JeremyBytes.com The Problem We ve all experienced it: the application UI that hangs. You get the dreaded
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
Data Management Applications with Drupal as Your Framework
Data Management Applications with Drupal as Your Framework John Romine UC Irvine, School of Engineering UCCSC, IR37, August 2013 [email protected] What is Drupal? Open-source content management system PHP,
Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2
Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22
Embedded Event Manager Commands
This module describes the commands that are used to set the Embedded Event Manager (EEM) operational attributes and monitor EEM operations. The Cisco IOS XR software EEM functions as the central clearing
Installing Java (Windows) and Writing your First Program
Appendix Installing Java (Windows) and Writing your First Program We will be running Java from the command line and writing Java code in Notepad++ (or similar). The first step is to ensure you have installed
Sample CSE8A midterm Multiple Choice (circle one)
Sample midterm Multiple Choice (circle one) (2 pts) Evaluate the following Boolean expressions and indicate whether short-circuiting happened during evaluation: Assume variables with the following names
Business Application
137 Germain CRT Validation Rules for Siebel CRM 7.7,7.8,8.0,8.1,8.2 Validation Rule Name Validation Rule Description Business Application Siebel Repository Level Improve CPU Improve Memory GS-SBL-REP-JDBC-1001
Wave Analytics Data Integration
Wave Analytics Data Integration Salesforce, Spring 16 @salesforcedocs Last updated: April 28, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of
ESPResSo Summer School 2012
ESPResSo Summer School 2012 Introduction to Tcl Pedro A. Sánchez Institute for Computational Physics Allmandring 3 D-70569 Stuttgart Germany http://www.icp.uni-stuttgart.de 2/26 Outline History, Characteristics,
