Modern Operating Systems Simulators

moss (Modern Operating Systems Simulators) is a collection of Java-based simulation programs which illustrate key concepts presented in the text Andrew S. Tanenbaum,   Modern Operating System, Second Edition (Prentice-Hall, 2001). The software is designed for students and instructors using this text. Additional supplemental material for this and other Tanenbaum texts is available from the author's site.

moss was written by Ray Ontko and Alexander Reeder with advice from Andrew S. Tanenbaum and support from Prentice-Hall.

Send comments, suggestions, enhancements to Ray Ontko (

Each simulator is packaged separately, and is available for both Unix and Windows 95/98/Me/NT/2000 systems.


Scheduling (Chapter 2)
The scheduling simulator illustrates the behavior of scheduling algorithms against a simulated mix of process loads. The user can specify the number of processes, the mean and standard deviation for compute time and I/O blocking time for each process, and the duration of the simulation. At the end of the simulation a statistical summary is presented. Students may also be asked to write their own scheduling algorithms to be used with process loads defined by the instructor.

Deadlocking (Chapter 3)
The deadlock simulator illustrates multiple processes competing for one or more resources to investigate the nature and causes of deadlock conditions and how they can be avoided, detected, and resolved. The simulator includes a graphical user interface that allows the student to step through the "programs" being concurrently "executed" by each of the processes and see which processes are blocked by which resources. A typical student lab exercise might require students to write simple "programs" for the simulator to investigate different kinds of resource contention conditions. More advanced students might write a deadlock manager (in Java) based on the template provided, and test it using "programs" of their own design.

Memory Management (Chapter 4)
The memory management simulator illustrates page fault behavior in a paged virtual memory system. The program reads the initial state of the page table and a sequence of virtual memory instructions and writes a trace log indicating the effect of each instruction. It includes a graphical user interface so that students can observe page replacement algorithms at work. Students may be asked to implement a particular page replacement algorithm which the instructor can test by comparing the output from the student's algorithm to that produced by a working implementation.

Also, Alejandro Pérez Reyna, Juan Luis Gutierrez Pallares, and Ricardo Bautista Santacruz of Benemérita Universidad Autonoma de Puebla, México, provide a simulation of Belady's Anomaly.

File System (Chapter 6)
The file system simulator shows the inner workings of a UNIX V7 file system. The simulator reads or creates a file which represents the disk image, and keeps track of allocated and free blocks using a bit map. A typical exercise might be for students to write a program (in Java) which invokes various simulated operating system calls against a well-known disk image provided by the instructor. Students may also be asked to implement indirect blocks, list-based free block managment, or write a utility (like fsck) to check and repair the file system.

moss operating system simulators
Copyright (C) 2001, Prentice-Hall, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

A copy of the GPL is available online at the GNU web site:

Java is a trademark of Sun Microsystems, Inc., and refers to Sun's Java programming language technology. moss is not sponsored by or affiliated with Sun Microsystems, Inc.
This page maintained by Ray Ontko (
Last updated: Sunday, November 23, 2008