From 3e4d6ec479af08b7817e77dac4fbc45b3cdb697d Mon Sep 17 00:00:00 2001 From: cdez Date: Tue, 20 Feb 2024 11:47:12 -0700 Subject: [PATCH] Save point for Sim02 +- simulator.c --- Sim02/sim02 | Bin 58576 -> 58872 bytes Sim02/simulator.c | 70 +++++++++++++++++++++++++++++++++++++--------- 2 files changed, 57 insertions(+), 13 deletions(-) diff --git a/Sim02/sim02 b/Sim02/sim02 index 92d9f02e259be9370427bb55d163fe5e6a48bd10..00abee1be6af872974436567105313aa86485df2 100755 GIT binary patch delta 11881 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 B6YT&1 delta 10805 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 z*P_vr5}U?command; + argument = wkgMetaPtr->strArg1; // loop through the process list, until you hit a sys end. - while(wkgMetaPtr->nextNode != NULL) + while(wkgMetaPtr->nextNode != NULL || (compareString(argument, "end") && compareString(command, "sys"))) { - tempStrOne = wkgMetaPtr->command; - tempStrTwo = wkgMetaPtr->inOutArg; // if app start, - if(compareString(tempStrOne, "app") && compareString(tempStrTwo, "start")) + if (compareString(command, "app") && compareString(argument, "start")) { - // set the unique ID + // set the unique ID for both PCB and Metadata + wkgMetaPtr->pid = processId; + currentPCB.uniquePid = processId; // set the process state to PROCESS_STATE_NEW + currentPCB.process_state = PROCESS_STATE_NEW; // set the nextOpCode as a pointer to the first place metadataPtr started - // loop while no longer have io or cpu instructions? + currentPCB.nextOpCode = wkgMetaPtr; + // set the internal pointer to the location that wkgPtr is at + wkgInternalPtr = wkgMetaPtr; + // set the internal command and argument + commandInt = wkgInternalPtr->command; + argumentInt = wkgInternalPtr->strArg1; + // loop while no longer have io or cpu instructions? (aka not at app end?) + while(wkgInternalPtr->nextNode != NULL || (compareString(argumentInt, "end") && compareString(commandInt, "app"))) + { + printf("%s command, %s argument:\n", commandInt, argumentInt); // count number of io cycles + if((compareString(argumentInt, "in") || compareString(commandInt, "dev"))) + { + // + printf("IO CYCLE %s\n", argumentInt); + } + else if((compareString(argumentInt, "out") || compareString(commandInt, "dev"))) + { + // + printf("IO CYCLE %s\n", argumentInt); + } // count number of cpu cycles + // if((compareString(argumentInt, "process") || compareString(commandInt, "cpu"))) + // { + // // + // printf("CPU CYCLE\n"); + // } + // move to next node, set relevant args + wkgInternalPtr = wkgInternalPtr->nextNode; + commandInt = wkgInternalPtr->command; + argumentInt = wkgInternalPtr->strArg1; + } // set the ioCycles from variable // set the cpuCycles from variable // set totalCycles from adding both IO/CPU // set the time left from (ioCycles * ioCycleRate) + (cpuCycles * procCyclesRate) // this gets the number of ms in the process. + // increment the PID counter + processId = processId + 1; } + wkgMetaPtr = wkgMetaPtr->nextNode; + command = wkgMetaPtr->command; + argument = wkgMetaPtr->strArg1; } // return null (temp) return (ProcessControlBlock *)NULL; @@ -166,6 +211,8 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) char *nextCode; // create the process list with createProcessList, store the pointed to address pcbList = createProcessList(); + // fill the process list given the metadata + pcbList->headPtr = fillProcessList(metaDataMstrPtr); // create temp strings char *command; char *argument; @@ -186,9 +233,6 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) // 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 ??? - // TEMP - printf("%s is command, %s is argument\n", command, argument); - // TEMP END // move the wkgPtrMaster to the next metadata block wkgPtrMaster = wkgPtrMaster->nextNode; // set the command and argument to the current cmd and arg