Three criteria for designing computing systems to facilitate debugging
Earl C. Van Horn · Communications of the ACM · 1968
With this much machinery (l~IlO is the only new instruction which is really essential) we have a very satisfactory system for interlocking independent processes.Short sequences of instructions can be protected by PRO; if every other Sequence of instructions which is executed by another process and references the sensitive data is also covered by a PRO, it is not possible for two such sequences to be executed simultaneously.Larger operations on shared data bases can be interlocked with locks in memory.The cost of setting and clearing such a lock is only a few instructions.The methods discussed in this paper depend on eooperation among the processes referencing a shared data base and on correct programming of each reference to the data.As Van Horn and others have pointed out, the bugs introduced by incorrect handling of this problem occur in a random and generally irreprodueible manner and are very difficult to remove.Van Horn [6] has proposed a scheme which enforces proper handling of shared data; it does however require more substantial hardware modifications than the methods suggested here.