A software lockout is a computer problem that can occur in multiprocessor systems. This lockout can cause the performance of a computer to drop dramatically, and prevent the use of additional processor capability. In modern multiprocessor computers, special operating system software must be used to avoid the software lockout malfunction.
The occurrence of software lockout was first described by IBM™ scientist Stuart Madnick in 1968. At this early stage in computer history, Madnick predicted that personal computers would become smaller and less expensive over the next several decades, but would continue to be limited to roughly the same data transfer speeds. This prediction proved to be mostly correct, and the useful power of computers is often increased by simply adding extra processors.
The primary cause of software lockout is not an error per se, but rather a feature. In a computer with several processors linked together, there is no advantage in having multiple processors each handling the same piece of information. In fact, different processors each attempting to modify a single data source can corrupt the original record. To prevent multiple units from opening the same information, only one processor is permitted access while the remaining processing components are “locked out” of the file.
This lockout method is effective for computers with a low number of processors. The approach becomes a problem, however, in devices with a wide range of linked processing units. Software lockout severely limits the scalability and effectiveness of adding multiple processors to computers, because there are limits to how fast data can be distributed between storage space and the processors.
No machine, including a computer, is completely efficient; this inherent inefficiency becomes compounded in multiprocessor computers. A computer with sixteen processors, for example, might have one of its processors idle at all times because data cannot be distributed as quickly as needed. At some point, compound inefficiency means it is no longer useful to expand the number of processors in a computer. Adding a thousand processors to a system is useless, since data speed is limited and a majority of the redundant processors would be stuck in constant software lockout.
Software lockout can be minimized by using an operating system that is specifically designed for multiple processors. Specialized software is able to break a data source into many different pieces, and distribute these portions to the processors. This approach reduces the need to lock out processors, since each unit can process a small component of the original data. Essentially, multiprocessor software makes sure that each processing unit always has a task, and keeps data flowing in a more distributed and evenly dispersed way.