Disclaimer • This is a quick start document to help users get set up quickly • Does not replace the user guide – you will have to go through the user guide for many parts of this quick start
Assumptions • You have registered at Virtutech, downloaded SIMICS and set up the license • Downloaded the user guide from https://www.simics.net/mwf/vh?31 for clarifications or doubts • Familiarity in using Linux (e.g. you must know what “mounting” means
Step 1 • Download one of the existing disk images for the x86 ISA (this ISA is what we are targeting) from https://www.simics.net/mwf/vh?31 • Pick one that has SimicsFS already installed. • for example: hippie3-r62.craff
Step 2 • Link or copy this file into the appropriate directory: [simics-workspace/targets/x86-440bx/] • Your workspace directory structure should be as above if you installed SIMICS version 3.0 (the latest version). • Replace "simics-workspace" with the path to your SIMICS workspace directory.
Step 3 • Run SIMICS on the appropriate simics-configuration file • For example (from inside simics-workspace/), you will execute • ./simics targets/x86-440bx/hippie- common.simics
Step 4 • Follow the instructions in the simics user's guide to • boot the system (takes a long time) • save a check-point (write-configuration command) after you have booted so that you don't have to wait for the system to boot again • try mounting /host and copying files from your Linux host computer to the simulated machine. • quit simics, restart simics with the after-boot checkpoint.
Step 5 • Try setting up a multi-processor machine: • copy hippie-common.simics to hippie-common-2p.simics in your simics-workspace/targets/x86-44bx directory • add the following line as the first line in hippie-common-2p.simics: $num_cpus = 2 • Start simics as before using hippie-common-2p.simics. You should now have a 2 processor machine. Boot up and save an after-boot checkpoint.
Step 6 • Brush up a little bit on the "pthreads" library . • Write a very simple application with two threads that do completely independent work, and are therefore trivial to execute in parallel on a multi-processor machine. • Compile this application on your host machine (Linux, using gcc) and try running this app under both the 1-processor and 2-processor hippie machines. • Do you see any difference in run-times? The app should run much faster (2x) on the 2-processor machine.