• No results found

Pseudocode Specification for Virtual Network Configuration

The Virtual Network Configuration algorithm requires both Driving Processes and Log- ical Processes. Driving Processes predict events and inject virtual messages into the system. Logical Processs react to both real and virtual messages. The Virtual Network Configuration Algorithm for a driving process is shown in Algorithm 1. The operation of the both the driving process and the logical process repeat indefinitely. If the Driving Process has not exceeded its lookahead time on line 2, a new value



time units into the future is computed by the function

C(t)

and the result is assigned to the message (

M

) and sent on line 5. The receive time, which is the time at which this message value is to be valid is assigned to (

M

) in line 4. Every

UpdatePeriod

time units, real messages are generated as shown in lines 7 and 8.

Algorithm 1: VNC Driving Process Algorithm.

VNCDRIVER(

UpdatePeriod

,



) (1) repeat (2) if

GVT

6

t

+ 

(3)

M

:

val

C(LVT + )

(4)

M

:

rt

LVT

+ 

(5) Send(M) (6) if

t

mod UpdatePeriod = 0

(7)

M

:

val

GPS

:

pos

(8) Send(M)

The Virtual Network Configuration Algorithm for an Logical Process is specified in Algorithm 2. On line 4,

inf

is infimum. On line 6, the next message from the Receive Queue is checked to determine whether the message is real. If the message is real, line 6 retrieves the state that was saved closest to the receive time of the message and checks whether the values of the saved state are within tolerance. If the tolerance is exceeded, the process will rollback. Also, if the message is received in the past relative to this

process’s LVT, the process will rollback as shown in line 7. In line 8, the pre-computed and cached value in the state queue is committed. Committing a value is an irreversible action because it cannot be rolled back once committed. If the process’s LVT has not exceeded its lookahead time as determined in line 9, then the virtual message is processed in lines 10 through 15. The function

C

1

(M

;

LVT)

in line 10 represents the

computation of the new state. The function

C

1

(M

;

LVT)

returns the state value for

this Logical Process and updates the

LVT

to the time at which that value is valid. The function

C

2

(M

;

LVT)

in line 12 represents the computation of a new message value.

Algorithm 2: VNC Logical Process Algorithm.

VNC(



,



) (1)

LVT

0

(2)

t

GPS

:

t

(3) repeat (4)

M

inf M

:

tr

2

QR

(5)

CS(t)

:

val

C

1

(M

;

t)

(6) if (

M

:

rt

6

t)

^

(

j

SQ(t)

:

val

,



j>

CS(t)

:

val)

then Roll-

back()

(7) if

M

:

rt

<

LVT

then Rollback()

(8) if

M

:

rt

6

t

then Commit(

SQ

: SQ

:

t

= approxM

:

rt)

(9) if

LVT

+ 

6

GVT

(10)

SQ

:

val

C

1

(M

;

LVT)

(11)

SQ

:

t

LVT

(12)

M

:

val

C

2

(M

;

LVT)

(13)

M

:

rt

LVT

(14)

QS

M

(15) Send(M) 94

Chapter 4

Algorithm Analysis

This goal of this chapter is to analyze the performance of Virtual Network Configura- tion. The characteristics of Virtual Network Configuration to be analyzed are speedup, potentially wasted resources, and bandwidth overhead. Speedup is the ratio of the time required to perform an operation without Virtual Network Configuration divided by the time required with Virtual Network Configuration. Wasted resources are defined to be resources which are temporarily allocated but never used due to prediction inaccuracy. Bandwidth overhead is the ratio of the amount of additional bandwidth required by a Virtual Network Configuration system divided by the amount of bandwidth required by a none Virtual Network Configuration system.

Because the Logical Processs of a Virtual Network Configuration system are asyn- chronous, the Logical Processs can take maximum advantage of parallelism. However, messages among processes may arrive at the destination process out-of-order. A Petri- Net model is used to quantify the amount of messages that arrive out-of-order for a particular Virtual Network Configuration system. Petri-Nets are commonly used for synchronization analysis where “places”, usually shown as circles, represent entities such as producers, consumers, or buffers, and “transitions”, shown as squares allow

“tokens” shown as dots, to move from one place to another. In this analysis, Petri-Net tokens represent Virtual Network Configuration messages and Petri-Net places rep- resent Virtual Network Configuration Logical Processs. Characteristics of Petri-Nets are used to determine the likelihood of out-of-order messages. The likelihood of the occurrence of out-of-order messages and out-of-tolerance messages is required by an equation that is developed in this chapter to describe the speedup of Virtual Network Configuration. After analyzing the speedup, the prediction accuracy and bandwidth are analyzed. The chapter concludes by considering enhancements and optimizations such as implementing multiple future events, eliminating the Global Virtual Time calcula- tion, and elimination of real messages when they are not required.

4.1

Utility Function Analysis

Performance analysis of the Virtual Network Configuration (VNC) algorithm must take into account accuracy as well as speed. An inaccurate configuration can result in com- mitted resources which are never used and thus wasted, or in not committing enough resources when needed thus causing a delay. Unused resource allocation must be min- imized. Many of the mobile wireless Asynchronous Transfer Mode mechanisms pre- viously mentioned depend on keeping resources permanently allocated, such as Asyn- chronous Transfer Mode Virtual Circuits in [1]. Virtual Network Configuration does not require permanent over-allocation of resources, however, the Virtual Network Config- uration algorithm may make a false prediction which temporarily establishes resources which may never be used. A Virtual Network Configuration system whose tolerances are reduced in order to produce more accurate results will have fewer unused allocated resources, however, the tradeoff is a reduction in speedup.

Equation 4.1 quantifies the advantage of using Virtual Network Configuration where

U

VNC

=





s ,



w ,



b (4.1)

 is the expected speedup using Virtual Network Configuration over a non-VNC sys-

tem,



s is the marginal utility function of the configuration speed, and is the expected

quantity of wasted resources other than bandwidth, and



w is the marginal utility func- tion of the allocated but unused resource. An example of a resource which may be temporarily wasted due to prediction error is a Virtual Circuit (VC) which may be es- tablished temporarily and not used. The expected bandwidth overhead is represented by and



b is the marginal utility function of bandwidth.

The marginal utility functions



s,



w and



b are subjective functions which de- scribe the value of a particular service to the user. The functions



s,



w and



bmay be determined by monetary considerations and user perceptions. The following sections develop propositions which describe the behavior of the Virtual Network Configuration algorithm and from these propositions equations for, and are defined.