A monoprocessor version of a given parallel program would not need synchronization primitives. Therefore, any time consumed by these primitives is overhead that does not contribute directly to the useful work that the program is intended to accomplish. Note that the important measure is usually the relationship between the synchronization overhead and the serial overhead--the greater the serial overhead of a given critical section, the greater the amount of synchronization overhead that may be tolerated. This can be further generalized to mean that which is required to be always present but not active in completing a process. * Business -- administrative and facility costs not directly involved in a business activity * Computational -- computation required by an algorithm or program * Engineering -- design features required by a component of a device