The study of operating systems requires an understanding of some of the fundamental concepts in computer science: concurrency, synchronization, deadlock, communication, and efficiency. The traditional method of lecture and reading does a disservice to students who are being exposed to these difficult concepts for the first time. Undergraduate computer science students need creative, innovative ways of learning these concepts in the context of the operating systems course. The future of computing is in distributed and parallel processing. The operating systems course is the best place to assure every computer science student receives a solid foundation in these fundamental concepts.The EOS operating system lab is designed to increase the number of ways a student has to learn major operating systems principles. Computer laboratory exercises actively involve students with concept- relevant programming and graphical simulations. The ease-of-use and graphical output of the lab applications encourage exploration of operating system subject matter and allow for a more effective teaching mode; that of directed discovery learning. The exercises developed for the EOS lab provide a high learning to coding ratio for programming assignments, and elucidate fundamental computer science concepts in an exciting, interactive manner through simulation. Assignments associated with the subject content of each lab are performed on the workstation and are submitted and graded through electronic mail.