Principles of Operating Systems: Design and Applications