Operating systems are among the most complex pieces of software ever developed.
This reflects the challenge of trying to meet the difficult and in some cases
competing objectives of convenience, efficiency, and ability to evolve. [DENN80a]
proposes that there have been four major theoretical advances in the development
of operating systems: