Annotation of researchv10dc/vol2/spin/spin.1, revision 1.1.1.1

1.1       root        1: .TH SPIN 1
                      2: .CT 1 comm_mach protocol
                      3: .SH NAME
                      4: spin \(mi protocol analysis software
                      5: .SH SYNOPSIS
                      6: .B spin
                      7: [
                      8: .BI -n N
                      9: ]
                     10: [
                     11: .BI -pfglpqrsm
                     12: ]
                     13: [
                     14: .BI -at
                     15: ]
                     16: [
                     17: .I file
                     18: ]
                     19: .SH DESCRIPTION
                     20: .I Spin
                     21: is a tool for analyzing the logical consistency of
                     22: concurrent systems, specifically communication protocols.
                     23: The system is specified in a guarded command language called Promela.
                     24: The language, described in the reference,
                     25: allows for the dynamic creation of processes,
                     26: nondeterministic case selection, loops, gotos,
                     27: variables and assertions.
                     28: The tool has fast and frugal algorithms for analyzing
                     29: liveness and safeness conditions.
                     30: .PP
                     31: Given a model system specified in Promela,
                     32: .I spin
                     33: can either perform random simulations of the system's execution
                     34: or it can generate a C program that performs a fast exhaustive
                     35: validation of the system state space.
                     36: The validator can check, for instance, if user specified system
                     37: invariants may be violated during a protocol's execution, or
                     38: if any non-progress execution cycles exist.
                     39: .PP
                     40: Without any options the program performs a random simulation.
                     41: With option
                     42: .TP
                     43: .BI -n N
                     44: the seed for the simulation is set explicitly to the integer value
                     45: .BR N .
                     46: .PP
                     47: A second group of options
                     48: .B -pglrs
                     49: is used to set the desired level of information that the user wants
                     50: about the simulation run.
                     51: Every line of output normally contains a reference to the source
                     52: line in the specification that caused it.
                     53: .TP
                     54: .B p
                     55: Show at each time step which process changed state.
                     56: .TP
                     57: .B l
                     58: In combination with option
                     59: .BR p ,
                     60: show the current value of local variables of the process.
                     61: .TP
                     62: .B g
                     63: Show at each time step the current value of global variables.
                     64: .TP
                     65: .B r
                     66: Show all message-receive events, giving
                     67: the name and number of the receiving process
                     68: and the corresponding the source line number.
                     69: For each message parameter, show
                     70: the message type and the message channel number and name.
                     71: .TP
                     72: .B s
                     73: Show all message-send events.
                     74: .PP
                     75: Two options can be used to alter the model definition itself.
                     76: .TP
                     77: .B m
                     78: Changes the semantics of send events.
                     79: Ordinarily, a send action will be delayed if the
                     80: target message buffer if full.
                     81: With this option a message sent to a full buffer is lost.
                     82: The option can be combined with
                     83: .TP
                     84: .B q
                     85: Causes spin to inspect the Promela code for sequences that
                     86: can safely be cast into atomic sequences, to allow a
                     87: reduction of the complexity of larger validation runs.
                     88: Manual placement of atomic sequences can usually achieve
                     89: still larger reductions.
                     90: .B -a
                     91: (see below).
                     92: .TP
                     93: .B a
                     94: Generate a protocol-specific analyzer.
                     95: The output is written into a set of C files, named
                     96: .BR pan. [ cbhmt ],
                     97: that can be compiled
                     98: .RB ( "cc pan.c" )
                     99: to produce an executable analyzer.
                    100: Large systems, that require more memory than available
                    101: on the target machine, can still be analyzed by compiling
                    102: the analyzer with a bit state space:
                    103: .IP
                    104: .B cc -DBITSTATE pan.c
                    105: .IP
                    106: This collapses the state space to 1 bit per system state,
                    107: with minimal side-effects.
                    108: .IP
                    109: A compiled analyzer has its own set of options,
                    110: which can be seen by typing
                    111: .BR "a.out -?" .
                    112: .TP
                    113: .B t
                    114: If the analyzer finds a violation of an assertion, a deadlock,
                    115: a non-progress loop, or
                    116: an unspecified reception, it writes an error trail into a file
                    117: named
                    118: .BR pan.trail .
                    119: The trail can be inspected in detail by invoking
                    120: .I spin
                    121: with the
                    122: .B t
                    123: option.
                    124: In combination with the options
                    125: .B pglrs
                    126: different views of the error sequence are then easily obtained.
                    127: .SH SEE ALSO
                    128: .I cospan
                    129: in
                    130: .IR langs (1)
                    131: .br
                    132: G.J. Holzmann,
                    133: `Spin \(em A Protocol Analyzer',
                    134: this manual, Volume 2.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.