CS480-Projects/Sim02/simulator.c
cdez 93904cb2f3 Started outlining the CS480 Simulator 2 project, analyzed a testfile, and added SimTimer stuff
++ simtimer.c/h
++ testfile-dnw.mdf
+- simulator.c/h
-- Sim01 Grading
2024-02-14 13:20:04 -07:00

43 lines
No EOL
2 KiB
C

#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)