xhaustive simulation is presented, for the two Simulators used. 7.1 INTRODUCTION This chapter concerns exhaustive simulation, where all the reachable states of an SDL model are computed, and also nonexhaustive algorithms such as bit-state, where some of the reachable states can remain unexplored. The reader easily understands that computing all the reachable states of an SDL model is not always possible, especially using exhaustive algorithms, because exhaustive simulation needs to store the global states of the model (or at least their hash-code) in RAM memory. The SDL model and the simulator must be tuned, to limit the memory used. For example, more priority can be given to internal SDL events. When I was using exhaustive simulation on a Unix server around 1993, equipped with 256 MB of memory (RAM), some people did not believe that such a huge memory could exist. At the time of writing this book, 256 MB of memory on a PC cost only 30 euros or US$30: anybody can run exhaustive simulation on a cheap PC! Exhaustive simulation in systems engineering can be compared to ultrasound scan in medicine: it reveals exactly what is inside a system, finding harmful behaviors early that would otherwise be detected too late. Exhaustive simulation can find security failures in network software and protocols before they are discovered and used by hackers to attack a system: for example, a simplified model of a PC connected to the Internet could reveal dangerous scenarios that could be fixed during the software design, instead of after several intrusions or virus attacks after product delivery. 7.1.1 Exhaustive simulation The aim of exhaustive simulation is not only to execute all the SDL symbols at least once (static coverage) but also to execute all the behaviors of an SDL model (dynamic coverage): that means executing all the SDL transitions from all the global states. The global states are also Validation of Communications Systems with SDL: The Art of SDL Simulation and Reachability Analysis. Laurent Doldi © 2003 John Wiley &