| OCR Text |
Show 7 on computational history. Vv'ithin a given context, multiple occurrences of an expression all have the same meaning [33]. A major ramification of referential transparency is the immediate usability of programs in distributed implementations: since the evaluation of expressions has no side effects, nonoverlapping subexpressions can be computed independently and therefore concurrently. The problems of cache coherence, race conditions, or timing dependency, which can plague the users of multiprocessor systems, disappear when determinacy is a built-in feature of the system. 1.2.3 Transparency Transparency to the user is another desirable property of a large scale system. A system is transparent if a user program has to be concerned about the configuration of the system. Configuration involves the system topology, number of processors. and processing power of each processor. Furthermore. a transparent system permits fail-soft operation without any operator intervention. The desire of a system to be transparent warrants a versatile task scheduling mechanism which can accommodate a wide spectrum of machine performance. 1.2.4 Resiliency As the number of processors increases, failure rate of the system escalates proportionately and the MTBF (mean time betwe~n failure) substantially declines. Availability of the system may no longer be assured unless proper fault tolerant measures are enforced. Redundancy is by far the most conventiona~ means to achieve reliability [51]. Redundancy appears in one of the three f9rms: time redundancy, space redundancy, or a combination of space and time. The challenge of a fault-tolerant design is to reduce the degree of redundancy and minimize the system overhead. The requirement of a resilient system may deeply impact other seemingly irrelevant mechanisms of the system. For example, a compiler-generated task assignment may have to be scratched when one of the processors fails. Any |