Module 5: Case Studies in Modeling using
Stochastic Activity Networks
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 1
Module Goals
•  Learn, by example, how to build system availability/reliability/performance
models using SANs
•  Understand basic steps in model creation
–  Understand how “tricks” from probability theory are used to simplify
models
–  Understand how to convert a problem description into a model with multiple
SANs and a composed model
•  Learn the way to approximate many non-exponential distributions using Erlang
and Hyperexponential distributions
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 2
Outline
• 
• 
• 
• 
• 
Introduction
Basic approaches for building models
Database system example
“Faulty multiprocessor” example
Representing non-exponential distributions as exponentials
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 3
Introduction
•  Modeling is an “art,” and successful model creation and solution depend on
knowledge of many different things, including:
–  The aim of the modeling
–  The desired measures
–  The system being modeled
–  The required level of detail/abstraction
–  The way to select the “best” solution method from a set of solution methods
•  Best way to learn is by example and experience
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 4
Basic Approach for Building a SAN/Composed Model
(once level of detail/abstraction and measures are known)
1. Determine how to break the system into multiple SAN models, and determine
the general structure of the composed model.
2. Determine the precise interfaces among the multiple SAN submodels.
–  Determine the places they will share.
–  Determine the meaning of tokens in these places.
3. Build each SAN model.
4. Connect the SAN models together to form a composed model
5. Specify the desired measures on the composed model.
6. Debug and refine model.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 5
Basic Approach for Building SAN Models
1. Determine the “state” that needs to be represented.
2. Determine the places that will be used to represent this state, and the meaning of
tokens in each place.
3. Determine the “actions” that can change the state of the system, as represented in
the model, and represent them as activities.
4. Determine when each action begins, and represent these conditions as input
gates.
5. Determine how each activity changes the state, and represent these changes as
gates.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 6
Example Systems and Models
•  We consider two simple examples in this session, to illustrate the procedure for
building and solving models.
1. Simple Database System [Sanders 92]
–  Adapted from IBM Research Center Model
–  Used to illustrate model composition
–  SANs are purposely very simple, and could be enhanced
–  Computes steady-state instant-of-time availability
2. “Faulty” Multiprocessor [UltraSAN manual]
–  Simple example to illustrate construction of SAN from textual description
–  Also illustrates construction of a variety of performance, dependability, and
performability variables
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 7
Simple Distributed Database System [Sanders 92]
•  Goals:
–  Determine steady-state instant-of-time availability
–  Determine system reliability as a function of time
•  System architecture:
–  Six disk clusters
–  Two sets of disk controllers
–  Two processors
•  Data on each disk is replicated such that 1/3 of the data are on each of the other
three disks in the same cluster.
•  Disk clusters are placed into two groups; each group contains three disk clusters.
•  One set of controllers is connected to each group of disk clusters.
•  Each processor can access the data on any disk cluster through the disk
controllers.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 8
Simple Database System
spare
processor
disk
controllers
....
disk cluster 1
....
disk cluster 3
disk cluster 4
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
disk cluster 6
Module 5
Slide 9
Criteria for Proper Operation
•  Service is considered proper if at least one processor can access the data in each
disk cluster
•  Thus, we require that:
–  At least one processor must be operational
–  There must be at least one disk controller in each set of controllers
–  At least three disks in each disk cluster must be operational
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 10
Repair Assumptions
•  System repair carried out by having one repair facility for each disk cluster, one
for each set of controllers, and one for the two processors.
•  Components can continue to fail even when the system is in a failed state.
•  Each repair facility repairs one component at a time.
•  Repair on a given component starts as soon as its corresponding repair facility
becomes free.
•  If system is in a failed state, it goes back to a working state when enough
components have been repaired for the system to be in an operational state.
•  For numerical solution, failure rates are as listed below.
Component
Processor
Disk controller
Disk
Failure rate
(per hour)
1/2000
1/2000
1/6000
Repair rate
(per hour)
1
1
1
•  Repair rate of disks varied between 1 and 4 repairs per hour.
•  Repair rate of processors and controllers fixed at 1 per hour.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 11
Composed Model: database_a
Composed Model Rep Node Definitions
for Project database_a:
Node Reps
Common Places
Rep1
3
system_fail
Rep2
2
system_fail
Join2
Rep2
Join1
Rep1
processors
controllers
Composed Model Join Node Definitions
for Project database_a:
Node
Join1
disks
Join2
Common Places
Subtree
system_fail
Subtree
system_fail
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
1

1

2

2

Module 5
Slide 12
Reward Variable Definitions for Project database_a
Variable
Definition
availability
Rate rewards
Subnet = processors
Predicate:
MARK(system_fail) == 0
Function:
1.0
Impulse rewards
none
Simulator statistics
Estimate mean
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Instant of Time
Start of Interval = 10.0
Length of Interval = 100.0
(Note that reward variable is defined on a non-replicated model, so desired value (1)
does not need to be divided by the number of replicas.)
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 13
Study Editor Range Definitions for Project database_a
Study
Variable
Type
availability
repair_rate double
Range
[1, 4]
Increment
Add./Mult.
1
Add.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 14
SAN Model: processors
processors_working
processor_failure
OG1
processors_failed
processor_repair
OG2
system_fail
Non-zero or Variable Initial Markings for SAN Model processors:
Place
processors_working
Initial Marking
2
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 15
Activity Time Distributions and Output Gate Definitions
for SAN Model processors
Activity
Distribution Parameter values
processor_failure exponential
rate 1/2000.0 * MARK(processors_working)
processor_repair exponential
rate 1.0
Gate
OG1
OG2
Definition
MARK(processors_failed) ++;
if(MARK(processors_working) == 0)
MARK(system_fail) ++;
MARK(processors_working) ++;
if(MARK(processors_working) == 1)
MARK(system_fail) − −;
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 16
SAN Model: disks
disks_working
disk_failure
OG1
disks_failed
disk_repair
OG2
system_fail
Non-zero or Variable Initial Markings for SAN Model disks:
Place
Initial Marking
disks_working
4
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 17
Activity Time Distributions and Output Gate
Definitions for SAN Model disks
Activity
disk_failure
disk_repair
Gate
OG1
OG2
Distribution Parameter values
exponential
rate 1/6000.0 * MARK(disks_working)
exponential
rate GLOBAL_D(repair_rate)
Definition
MARK(disks_failed) ++;
if (MARK(disks_working) == 2)
MARK(system_fail) ++;
MARK(disks_working) ++;
if (MARK(disks_working) == 3)
MARK(system_fail) − −;
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 18
SAN model: controllers
controllers_working
controller_failure
OG1
controllers_failed
controller_repair
OG2
system_fail
Non-zero or Variable Initial Markings for SAN Model controllers:
Place
Initial Marking
controllers_working
2
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 19
Activity Time Distributions and Output Gate
Definitions for SAN Model controllers
Activity
Distribution Parameter values
controller_failure exponential
rate 1/2000.0 *
MARK(controllers_working)
controller_repair exponential
rate 1.0
Gate
OG1
OG2
Definition
MARK(controllers_failed) ++;
if(MARK(controllers_working) == 0)
MARK(system_fail) ++;
MARK(controllers_working) ++;
if(MARK(controllers_working) == 1)
MARK(system_fail) − −;
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 20
Results
•  Steady-state Instant-of-time availability
–  Generate reduced base model from SAN model just described
•  16,695 states
–  System availability was calculated to be .999997
•  System reliability
–  Use the same reward structure as for availability
–  Change the SAN submodels that represent the individual system
components to disable repair.
–  Reliability (which is an interval-of-time measure) can then be determined
using an instant-of-time solution at the end of the interval (since system will
then be down at the end of the interval if it fails anytime during the interval).
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 21
Reliability Results: Default Configuration
(Reliability obtained by removing repair activities, and looking at probability system
operational at end of interval)
•  Database system reliability vs. Mission Time
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 22
Reliability Results: Design Variations
•  Database System Reliability for Different System Configurations
Design description
6 disk clusters, 2 controller sets, and 2
processors
6 disk clusters + 1 spare disk per cluster, 2
controller sets, and 2 processors
6 disk clusters + 1 spare disk per cluster, 2
controller sets + 1 spare controller per set,
and 2 processors
268
Reliability
(5-week
mission time)
0.425082
1510
0.650810
3075
0.769799
State-space size
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 23
“Faulty Multiprocessor” Example [UltraSAN Manual]
•  A simple example to illustrate the construction of SAN models and definition of
a variety of performance, dependability and performability measures on such a
model.
•  At a high level, system comprises:
–  A workload generator, which generates tasks as a Poisson process
–  A finite global queue, which holds tasks waiting to be processed
–  Multiple processors, which can process one or two tasks at a time
•  Goal is to determine:
–  Probability that a buffer overflow occurs
–  System utilization
–  Number of tasks in queue
–  Fraction of time spent in I/O
–  Number of tasks processed in some interval
–  Time between I/O completions
–  Time between processor completions
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 24
Design Specification
• 
• 
• 
• 
Tasks for processors arrive as a Poisson process with rate arr_rate.
Arriving tasks are put in a queue with capacity size.
If the queue is full, the task is rejected.
Processors remove tasks from the queue in a FIFO manner, which takes an
exponentially distributed time with mean value 1/access_rate.
•  Processors process tasks in an exponentially distributed time with mean 1/
proc_rate.
•  They can also process a second task simultaneously, completing both tasks at
the same time.
•  If only one task is processed at a time, correct processing is guaranteed. If two
tasks are processed at a time, there is a chance of a processing error:
–  With probability ok_prob, both tasks are processed correctly
–  With probability one_error_prob, one task is processed incorrectly
–  With probability 1 - ok_prob - one_error_prob, both tasks are processed
incorrectly.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 25
Design Specification, cont.
•  When a task is processed correctly, it is sent to be output.
•  I/O time is exponentially distributed with rate io_rate, and happens sequentially
on a per-processor basis.
•  Processing may not resume on a processor until all I/O is complete.
•  A task that is processed incorrectly remains in the processor to be reprocessed.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 26
Composed Model: faulty_proc
Composed Model Rep Node Definitions
for Project faulty_proc:
Join1
Node
Rep1
Rep1
buffer
processor
Reps
3
Common Places
queue
Composed Model Join Node Definitions
for Project faulty_proc:
Node Common Places
Join1
Subtree
1
2


queue
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 27
SAN Model: buffer
size
capacity
arrival
queue
Non-zero or Variable Initial Markings for SAN Model buffer:
Place
Initial Marking
size
5
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 28
Activity Time Distributions and Input Gate Definitions
for SAN Model buffer
Activity
arrival
Distribution Parameter values
exponential
rate GLOBAL_D(arr_rate)
Gate
Definition
capacity Predicate
/* has the buffer capacity been reached? */
MARK(queue) < MARK(size)
Function
/* do nothing */
;
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 29
SAN Model: processor
Jobs waiting for IO completion
correct
available
one fail
queue
access
done
num_tasks processing
I_O
check_done
# tasks being processed
ready
Initial marking = 1
Not waiting on I/O completion
Non-zero or Variable Initial Markings for SAN Model processor:
Place
Initial Marking
ready
1
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 30
Activity Time Distributions and Case Probabilities for
SAN Model processor
Activity
I_O
access
processing
Activity
Case
processing 1
2
3
Distribution
exponential
rate
exponential
rate
exponential
rate
Parameter values
GLOBAL_D(io_rate)
GLOBAL_D(access_rate)
GLOBAL_D(proc_rate)
Probability
if (MARK(num_tasks) == 1)
return(1.0);
else return(GLOBAL_D(ok_prob));
if (MARK(num_tasks) == 1)
return(ZERO);
else return(GLOBAL_D(one_error_prob));
if (MARK(num_tasks) == 1)
return(ZERO);
else return(1.0 − GLOBAL_D(ok_prob) − GLOBAL_D(one_error_prob));
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 31
Input and Output Gate Definitions for
SAN Model processor
Gate
available
Gate
check_done
correct
Definition
Predicate
MARK(num_tasks) < 2
Function
/* do nothing */
;
Definition
/* when I/O done, reset ready */
if (MARK(done) == 0)
MARK(ready) = 1;
/* put one or two tasks in done, clear num_tasks */
MARK(done) = MARK(num_tasks) + 1;
MARK(num_tasks) = 0;
+1 because one num_tasks token removed
on activity completion
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 32
Study Editor Definitions for Project faulty_proc
Set
Definitions:
Range
Definitions:
Study
Experiment Variable
vary_error_prob
exp1
access_rate
arr_rate
io_rate
ok_prob
one_error_prob
exp2
access_rate
arr_rate
io_rate
ok_prob
one_error_prob
Study
Variable
vary_arrival_rate
access_rate
arr_rate
io_rate
ok_prob
one_error_prob
Type
double
double
double
double
double
Type
Value
double
double
double
double
double
20
10
10
0.75
0.24
double
double
double
double
double
20
10
7.5
0.77
0.21
Range
Increment
Add./Mult.
5
-
Add.
-
20
[5, 30]
10
0.81
0.18
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 33
Reward Variable Definitions for Project faulty_proc
Variable
Definition
probability non-blocking
Rate rewards
Subnet = buffer
Predicate:
MARK(queue) < MARK(size)
Function:
1
Impulse rewards
none
Simulator statistics
Estimate mean
Estimate variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Instant of Time
Start of Interval = 100.0
Length of Interval = 100.0
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 34
Reward Variable Definitions for Project faulty_proc, cont.
Variable
utilization
Definition
Rate rewards
Subnet = processor
Predicate:
MARK(num_tasks) > 0 && MARK(ready) == 1
Function:
1.0 / 3
Impulse rewards
none
Simulator statistics
Estimate mean
Estimate variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Instant of Time
Start of Interval = 100.0
Length of Interval = 100.0
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 35
Reward Variable Definitions for Project faulty_proc, cont.
Variable
Definition
number of tasks in queue
Rate rewards
Subnet = buffer
Predicate:
1
Function:
MARK(queue)
Impulse rewards
none
Simulator statistics
Estimate mean
Estimate variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Instant of Time
Start of Interval = 100.0
Length of Interval = 100.0
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 36
Reward Variable Definitions for Project faulty_proc, cont.
Variable
Definition
fraction of time in I_O
Rate rewards
Subnet = processor
Predicate:
MARK(ready) == 0
Function:
1.0 / 3
Impulse rewards
none
Simulator statistics
Estimate mean
Estimate variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Instant of Time
Start of Interval = 100.0
Length of Interval = 100.0
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 37
Reward Variable Definitions for Project faulty_proc, cont.
Variable
Definition
number of tasks processed
Rate rewards
none
Impulse rewards
Subnet = processor
activity = I_O, value = 1
Simulator statistics
Estimate mean
Estimate variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
Variable type = Interval of Time
Start of Interval = 0.0
Length of Interval = 100.0
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 38
Activity Variable Definitions for Project faulty_proc
Need to describe metric being estimated
Variable
Definition
processor I_O
Simulator statistics
Estimate mean and variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
First Completion = 0
Last Completion = 100
processor processing
Simulator statistics
Estimate mean and variance
Confidence Level = 0.95
Relative Confidence Interval = 0.10
Initial Transient = 1000
Batch Size = 1000
First Completion = 0
Last Completion = 100
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 39
Approximating Non-Exponentials with Exponentials
Sometimes important behaviors do not match the exponential distribution. For
example, some behaviors take nearly a fixed amount of time, and others may have a
larger variance.
At the cost of additional states, it is possible to approximate some other
distributions. These approximations are called phase-type distributions. The
distribution of a phase-type is the time to reach some state in a Markov chain. (This
will become clear in a moment.) Two useful phase types are the Erlang distribution
and the hyperexponential distribution.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 40
Erlang - k Distribution
in
λ
1
λ
2
λ
...
λ
k-1
λ
out
An Erlang-k distribution with rate λ is the sum of k independent exponential
random variables with rate kλ.
Let X be Erlang with rate λ, and Y be exponential with rate λ.
1
E [X ] =
λ
Var (X ) =
1
E [Y ] =
λ
1
kλ2
Var (Y ) =
1
λ2
Erlang random variables are useful for
approximating random variables with
variances less than those of
exponentials.
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 41
SAN Representation of Erlang with K Stages
λ
Put k tokens in p λ
p
a
q
⇒
p
g
a
q
Put 1 token in p
e
Gate
g
Definition
Predicate:
MARK(p) > 0
Function:
if (MARK(e) >= GLOBAL_S(K)-1) {
MARK(p)--;
MARK(e) = 0;
Mark completion
MARK(q)++;
} else
MARK(e)++;
Mark stage completed
Note: Activity a now has memory!
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 42
Hyperexponential
in
α1
α2
1
ακ
...
2
λ2
λ1
k
λκ
out
The converse of the Erlang is the hyperexponential. A hyperexponential is formed
by probabilistically choosing a state i (with probability αi) and then leaving with
rate λi. This can be used to produce a random variable with a larger variance than
an exponential with the same mean.
n
f X (t ) = ∑ α i λ i e − λ t
t ≥ 0.
i
i =1
n
αi
i =1 λ i
E [X ] = ∑
n
αi 
Var( X ) = 2∑ 2 − 
i =1 λ i

n
αi
∑
i =1 λ i



2
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 43
Hyperexponentials in SANs
λ1
q
p
...
p
⇒
...
λ2
λk
q
Parameters for hyperexponentials should be chosen with care
α1 = .5
λ1 = 10
α2 = .5
λ2 = .526316
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 44
Phase Type Distributions
There is a generalization of the Erlang and Hyper-exponential distributions, call
“Phase Type” distributions.
Simply put, it is the distribution of the time to absorption into a given state
(normally 0) in a CTMC
Transition matrix for a phase type distribution with n stages is
•  T an nxn matrix describing transitions among transient states
•  t column vector of size n giving transition rates into 0
•  τ an n-element vector of the initial distribution of state in transient states
Charateristics
where e is a column vector of 1’s
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 45
Phase Type Distributions : Examples
Examination of Q shows that
•  Hypoexponential enters absorbing state only from state 4
•  Hyperexponential enters one state, then is absorbed
•  Coxian moves along stages, but at any one of them may exit to be absorbed
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 46
Summary
•  Reviewed general procedures for building SAN models
•  Looked at two examples
•  Looked at ways to build non-exponential distributions from exponential
distributions
ECE/CS 541: Computer System Analysis. Copyright © 2006 William H. Sanders. All rights reserved. Do not copy or distribute to others without
the permission of the author.
Module 5
Slide 47