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