http://www.cs.rit.edu/~bks/os1/projects/Project-2.html