Three self-stabilizing protocols for distributed systems in the shared memory model are presented. The first protocol is a mutual exclusion protocol for tree structured systems. The second protocol is a spanning tree protocol for systems with any connected communication graph. The third protocol is a self stabilizing protocol for mutual exclusion, for systems with a general (connected) communication graph. This last protocol is obtained by combining the previous two protocols. The combination employs a simple technique called fair protocol combination, which is enabled by both the self-stability and by the flexibility of dynamic protocols. The presented protocols improve upon previous protocols in two ways: First, it is assumed that the only atomic operations are either read or write to the shared memory. Second, our protocols work for any connected network and even for dynamic networks, in which the topology of the network may change during the execution. Department of Computer Scien...