From a946ea2c1c8a2580e41923feb14008184b02f79d Mon Sep 17 00:00:00 2001 From: cdez Date: Wed, 21 Feb 2024 00:12:05 -0700 Subject: [PATCH] Finished? fillProcessList function for Sim02 +- simulator.c --- Sim02/sim02 | Bin 58872 -> 58976 bytes Sim02/simulator.c | 61 +++++++++++++++++++++++++++++----------------- Sim02/simulator.h | 4 +-- 3 files changed, 41 insertions(+), 24 deletions(-) diff --git a/Sim02/sim02 b/Sim02/sim02 index 00abee1be6af872974436567105313aa86485df2..540389852d1f933f12dee74b7af8c52fdf93d106 100755 GIT binary patch delta 14116 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 // grab the first command and argument command = wkgMetaPtr->command; @@ -139,51 +143,64 @@ ProcessControlBlock *fillProcessList(OpCodeType *metadataPtr) currentPCB.process_state = PROCESS_STATE_NEW; // set the nextOpCode as a pointer to the first place metadataPtr started 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; + inOutArg = wkgInternalPtr->inOutArg; + integerArgumentOne = wkgInternalPtr->intArg2; + // integer argument two is unused atm + //integerArgumentTwo = wkgInternalPtr->intArg3; // 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"))) + if((compareString(commandInt, "dev") == 0 && compareString(inOutArg, "in") == 0)) { - // - printf("IO CYCLE %s\n", argumentInt); + ioCycleCount = ioCycleCount + integerArgumentOne; } - else if((compareString(argumentInt, "out") || compareString(commandInt, "dev"))) + if((compareString(commandInt, "dev") == 0 && compareString(inOutArg, "out") == 0)) { - // - printf("IO CYCLE %s\n", argumentInt); + ioCycleCount = ioCycleCount + integerArgumentOne; } // count number of cpu cycles - // if((compareString(argumentInt, "process") || compareString(commandInt, "cpu"))) - // { - // // - // printf("CPU CYCLE\n"); - // } + if((compareString(argumentInt, "process") == 0 && compareString(commandInt, "cpu") == 0)) + { + cpuCycleCount = cpuCycleCount + integerArgumentOne; + } // move to next node, set relevant args wkgInternalPtr = wkgInternalPtr->nextNode; commandInt = wkgInternalPtr->command; argumentInt = wkgInternalPtr->strArg1; + inOutArg = wkgInternalPtr->inOutArg; } + // set the ioCycles from variable + currentPCB.ioCycles = ioCycleCount; // set the cpuCycles from variable + currentPCB.cpuCycles = cpuCycleCount; // set totalCycles from adding both IO/CPU + currentPCB.totalCycles = ioCycleCount + cpuCycleCount; // set the time left from (ioCycles * ioCycleRate) + (cpuCycles * procCyclesRate) // this gets the number of ms in the process. + currentPCB.timeLeft = timeLeftCount; // increment the PID counter processId = processId + 1; } + // move to the next bit of data wkgMetaPtr = wkgMetaPtr->nextNode; command = wkgMetaPtr->command; argument = wkgMetaPtr->strArg1; + + // needs to add nodes to the end and all data once parsed + // do both the metadata and PCBs + wkgPCBPtr = ¤tPCB; + wkgPCBPtr->nextPtr = NULL; } - // return null (temp) - return (ProcessControlBlock *)NULL; + // return null (temp) (should return the headpointer) + return headPointer; } /* @@ -212,7 +229,7 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) // create the process list with createProcessList, store the pointed to address pcbList = createProcessList(); // fill the process list given the metadata - pcbList->headPtr = fillProcessList(metaDataMstrPtr); + pcbList = fillProcessList(metaDataMstrPtr, pcbList); // create temp strings char *command; char *argument; diff --git a/Sim02/simulator.h b/Sim02/simulator.h index ffafb2a..4b3dd8e 100644 --- a/Sim02/simulator.h +++ b/Sim02/simulator.h @@ -24,7 +24,7 @@ typedef struct ProcessControlBlockStruct // this will be a mini loop within the master loop that goes until it // hits the app end command. // it may hold the next opcode, since you don't need to traverse backward - char *nextOpCode; + OpCodeType *nextOpCode; // have an IO cycle count here int ioCycles; // have a CPU cycle count here @@ -140,7 +140,7 @@ Device Input/Device: none Device Output/Device: none Dependencies: ??? */ -ProcessControlBlock *fillProcessList(OpCodeType *metadataPtr); +ProcessControlBlockLL *fillProcessList(OpCodeType *metadataPtr, ProcessControlBlockLL *headPointer); /* Name: runSim