|
|
1.1 ! root 1: .TH SPIN 1 ! 2: .SH NAME ! 3: spin \- verification tool for concurrent systems ! 4: .SH SYNOPSIS ! 5: .B spin ! 6: [ ! 7: .BI -n N ! 8: ] ! 9: [ ! 10: .B -plgrsmv ! 11: ] ! 12: [ ! 13: .B -iat ! 14: ] ! 15: [ ! 16: .B -DV ! 17: ] ! 18: [ ! 19: .I file ! 20: ] ! 21: .SH DESCRIPTION ! 22: .I Spin ! 23: is a tool for analyzing the logical consistency of ! 24: concurrent systems, specifically communication protocols. ! 25: The system is specified in a guarded command language called ! 26: .SM PROMELA2\c ! 27: \&. ! 28: The language, described in the references, ! 29: allows for the dynamic creation of processes, ! 30: nondeterministic case selection, loops, gotos, ! 31: variables, and the specification of correctness requirements. ! 32: The tool has fast algorithms for analyzing arbitrary ! 33: liveness and safety conditions. ! 34: .PP ! 35: Given a model system specified in ! 36: .SM PROMELA2\c ! 37: , ! 38: .I spin ! 39: can perform interactive, guided, or random simulations ! 40: of the system's execution ! 41: or it can generate a C program that performs an exhaustive ! 42: or approximate verification of the system. ! 43: The verifier can check, for instance, if user specified system ! 44: invariants are violated during a protocol's execution, or ! 45: if non-progress execution cycles exist. ! 46: .PP ! 47: Without any options the program performs a random simulation of the system ! 48: defined in the input ! 49: .IR file , ! 50: default standard input. ! 51: The option ! 52: .BI -n N ! 53: sets the random seed to the integer value ! 54: .IR N . ! 55: .PP ! 56: The group of options ! 57: .B -pglmrsv ! 58: is used to set the level of information reported ! 59: about the simulation run. ! 60: Every line of output normally contains a reference to the source ! 61: line in the specification that caused it. ! 62: .TP ! 63: .B p ! 64: Show at each time step which process changed state and what source ! 65: statement was executed. ! 66: .TP ! 67: .B l ! 68: In combination with option ! 69: .BR p , ! 70: show the current value of local variables of the process. ! 71: .TP ! 72: .B g ! 73: Show the value of global variables at each time step. ! 74: .TP ! 75: .B r ! 76: Show all message-receive events, giving ! 77: the name and number of the receiving process ! 78: and the corresponding source line number. ! 79: For each message parameter, show ! 80: the message type and the message channel number and name. ! 81: .TP ! 82: .B s ! 83: Show all message-send events. ! 84: .TP ! 85: .B m ! 86: Ordinarily, a send action will be delayed if the ! 87: target message buffer if full. ! 88: With this option a message sent to a full buffer is lost. ! 89: The option can be combined with ! 90: .B -a ! 91: (see below). ! 92: .TP ! 93: .B v ! 94: Verbose mode: add extra detail and include more warnings. ! 95: .TP ! 96: .BI i ! 97: Perform an interactive simulation. ! 98: .TP ! 99: .B a ! 100: Generate a protocol-specific verifier. ! 101: The output is written into a set of C files, named ! 102: .BR pan. [ cbhmt ], ! 103: that can be compiled ! 104: .RB ( "cc pan.c" ) ! 105: to produce an executable verifier. ! 106: Systems that require more memory than available ! 107: on the target machine can still be analyzed by compiling ! 108: the verifier with a bit state space: ! 109: .IP ! 110: .B " cc -DBITSTATE pan.c ! 111: .IP ! 112: This collapses the state space to 1 bit per system state, ! 113: with minimal side-effects. ! 114: Partial order reduction rules take effect during the ! 115: verification if the compiler directive ! 116: .B -DREDUCE ! 117: is used. ! 118: .IP ! 119: The compiled verifiers have their own sets of options, ! 120: which can be seen by running them with option ! 121: .BR -? . ! 122: .TP ! 123: .B t ! 124: If the verifier finds a violation of a correctness property, ! 125: it writes an error trail. ! 126: The trail can be inspected in detail by invoking ! 127: .I spin ! 128: with the ! 129: .B -t ! 130: option. ! 131: In combination with the options ! 132: .BR pglrsv , ! 133: different views of the error sequence are then be obtained. ! 134: .TP ! 135: .B D ! 136: Perform a static dataflow analysis. ! 137: .TP ! 138: .B V ! 139: Print the version number and exit. ! 140: .SH SEE ALSO ! 141: G.J. Holzmann, ! 142: .I ! 143: Design and Validation of Computer Protocols, ! 144: Prentice Hall, 1991. ! 145: .br ! 146: \(em, ``Using ! 147: .SM SPIN\c ! 148: \&''.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.