Table of Contents
PampaSim
The PampaSim project is built around the development and validation of an educational operating systems simulation environment. There are no stable releases available yet, testers can build the project locally following the instructions on the Git repository. Contributions welcome!
Rationale
The Universidade Federal de Pelotas (UFPel) offers computer engineering and computer science bachelor degrees, and operating systems knowledge makes up a good portion of the curriculum for these courses. The material uses Prof. Luiz Maia's SOsim to demonstrate the process scheduling and memory management mechanisms of operating systems. This has been true for a good while, but SOsim's limited extensibility hinders efforts to improve the tool, which hasn't been updated since 2007. This project is born out of a need for a better, bespoke simulator more suited to the university courses.
Why another one?
What makes the PampaSim environment distinct from existing tools is its modular architecture, structured around a simulation tree. In the interest of keeping simple simulations easy to visualize, PampaSim can be configured to not simulate with all its modules, pruning the simulation tree at module root nodes. A demonstration of scheduling algorithms need not collect memory allocation details, just the process ordering; such experiment can omit PampaSim's memory module. This is thought to increase the signal to noise ratio of the demonstrations, helping student comprehension. This way, the balancing act between abstracted system interactions and deep technical accuracy can be made on a case-by-case basis, just so long as the modules required are available.
This modular approach alone is not enough: there are many mature and capable simulators that are nevertheless poorly suited to the classroom due to their poor user experience1) or lack of documentation. PampaSim's simulator is designed to be easy to use and distribute, and keeps to the principle of least surprise in an effort to never let how the simulator works become itself an obstacle to learning. The documentation side is worse off, but some headway has been made.
PampaSim's niche is that of the middle ground between technical accuracy and useful simplifications, with the added benefit of getting to pick which side to lean towards. It should be able to do this without becoming too complicated to operate or extend with new functionality. And that's its reason to be: no other simulator fits that bill.
Development status
Open beta. Version numbers don't follow a predictable pattern just yet, and massive refactoring jobs are yet to be finished. No validation data has been collected yet, classroom trials are waiting on a stable version.
Documentation is lacking, this webpage is a way of addressing that issue.
Planned modules include memory, filesystem, processor, and network, besides the base scheduler module. The only working module is the base scheduler, the memory and filesystem modules are under development.
