c) Penalties for incremental development
- The first penalty incurred by serialization (of which
synchronization is a weak form), is that the benefits expected
from distribution (see 1.1.1.) are ruined. A system using RPC
introduces waiting, and thus does not scale up smoothly as it is
being distributed. The system tends to close itself around an
optimum size, which fights the spirit of supporting incremental
development.
- The interaction between tasks introduced by locks causes even
more severe problems, leading to dead-locks (and optionally
live-locks, typically resulting from attempts to recover from
dead-locks). The main problem for incremental development is
that such situations are global to the whole system. The
probability of dead-locks grows with the number of tasks. This
again limits the size of any system below some difficult to
compute but inescapable critical size. The schemes commonly
considered to deal with dead-locks ([Goscinski91] distinguishes
prevention, avoidance and detection / resolution) are global as
well.
The lack of appropriate information at the point of locking,
prevents local detection and resolution. The key, in our
analysis, is the lack of a proper scope within which to present
this information.
Table of contents
Marc Girod
Last modified: Sat Feb 28 14:23:41 EET 1998