#include "configops.h" #include "metadataops.h" #include "StandardConstants.h" /* Name: runSim Process: primary simulation driver Function Input/Parameters: configuration data (ConfigDataType *), metadata (OpCodeType *) Function Output/Parameters: none Function Output/Returned: none Device Input/Device: none Device Output/Device: none Dependencies: ??? */ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) { // initialize function/variables // need a FILE * for file operations // need two working pointers, one for master loop, one for internal loop // currentTime variable that stores the time. // create the process list with createProcessList // function holds master loop, loops until sys end opcode found OR PCB List != NULL // will have a loop that goes from app start to app end for a PCB // (checks to see if the next instruction is NOT app end), using getNextProcess? // this will getNextOpCode // this will checkForIO and run the IO operations, outputting to FILE * and/or monitor // checkForIO will need the FILE * passed, will need timer access, and ??? // this will checkForCPU and run the CPU operations, outputting to FILE * and/or monitor // checkForCPU will need the FILE * passed, will need timer access, and ??? // // deallocate the process list with destroyProcessList printf("runSim called here"); // void function, no return. } // getNextProcess/scheduler/dispatcher run here, loads/"runs" the process // getNextOpCode, not needed for Sim02 apparently, keep in mind. // checkForIO, I think this gets passed the current process and runs the IO ops // checkForCPU, I think this gets passed the current process and runs the CPU ops // checkForMemory, I think this gets passed the current process // and runs mem ops (not needed for Sim02) // cpuIdler (not needed for Sim02)