Principles of Computer Systems by Gerald M. Karam & John C. Bryant