From fa99b171f929724534e71dcd10c7136cba30b2d7 Mon Sep 17 00:00:00 2001 From: cdez Date: Wed, 21 Feb 2024 01:07:16 -0700 Subject: [PATCH] Started scheduleProcess function, will pick up later. +- simulator.c --- Sim02/sim02 | Bin 58976 -> 59264 bytes Sim02/simulator.c | 72 +++++++++++++++++++++++++++++++++++++--------- Sim02/simulator.h | 17 +++++++++-- 3 files changed, 74 insertions(+), 15 deletions(-) diff --git a/Sim02/sim02 b/Sim02/sim02 index 540389852d1f933f12dee74b7af8c52fdf93d106..05bf68643bcdcf8ca38312e2c60d689ddb372393 100755 GIT binary patch delta 14104 zcmeHOX?#>gw!d|6-(Iqi?rfdC6G%u1O9BQ6OCVrE8bk?;5-^ys8k9{4;zH;~77Y=h zDHY^J1!Oeir~?KS0Wl~Fjt&G=L{tR9XV5o_;KB%FzyGPa-D&f_%=_{_z3Z>5&i`z6 zYPoglR`ARRn)j%-K1VG+?aMuFJJv@LⓈ`d0~U?5)HQVQOsqllc=?hFJyTEbf%6! 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 IA9mjL-ye5`fB*mh delta 13867 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 != NULL || (compareString(argument, "end") && compareString(command, "sys"))) + while(wkgPtrMaster->nextNode != NULL || (compareString(argument, "end") && compareString(command, "sys"))) { // 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? @@ -263,10 +263,56 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) // 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) \ No newline at end of file +/* +Name: scheduleProcess +Process: takes in the scheduling data, and then returns which process is to be ran +Function Input/Parameters: head pointer of PCB List (ProcessControlBlockLL *), + configuration data (ConfigDataType *) +Function Output/Parameters: none +Function Output/Returned: none +Device Input/Device: none +Device Output/Device: none +Dependencies: ??? +*/ +int scheduleProcess(ProcessControlBlockLL *headPointer, ConfigDataType *configPtr) +{ + int returnPid = -1; + // switch case for each scheduling algorithm + switch (configPtr->cpuSchedCode) + { + case CPU_SCHED_FCFS_N_CODE: + // First Come, First Served, Non-preemptive Scheduling + // only one implemented for now. returns first process without fail. + // need to find whichever process is first, AND the state is NEW. + // will set the state to READY, return the pid of the process which + // was set to ready. + // ignores any process which has a state of TERMINATED + break; + case CPU_SCHED_FCFS_P_CODE: + // TODO: First Come, First Served, Preemptive Scheduling + break; + case CPU_SCHED_RR_P_CODE: + // TODO: Round Robin Scheduling + break; + case CPU_SCHED_SJF_N_CODE: + // TODO: Shortest Job First Scheduling + break; + case CPU_SCHED_SRTF_P_CODE: + // TODO: Shortest Run-time First Scheduling + break; + } + // return returnPid + return returnPid; +} +/* +Current Note to programmer: do the scheduler, the runIO and runCPU functions, and then the FILE IO functions +this is all that is left so far, hopefully not too bad. +*/ + +// 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) \ No newline at end of file diff --git a/Sim02/simulator.h b/Sim02/simulator.h index 4b3dd8e..e9d5d58 100644 --- a/Sim02/simulator.h +++ b/Sim02/simulator.h @@ -133,9 +133,10 @@ ProcessControlBlock *destroyProcessListHelper(ProcessControlBlock *nodePtr); /* Name: fillProcessList Process: iterates through the metadata LL, fills out each process as needed. -Function Input/Parameters: metadata (OpCodeType *) +Function Input/Parameters: metadata (OpCodeType *), + headPointer (ProcessControlBlockLL *) Function Output/Parameters: none -Function Output/Returned: none +Function Output/Returned: pointer to filled PCB (ProcessControlBlockLL *) Device Input/Device: none Device Output/Device: none Dependencies: ??? @@ -155,4 +156,16 @@ Dependencies: ??? */ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr); +/* +Name: scheduleProcess +Process: takes in the scheduling data, and then returns which process is to be ran +Function Input/Parameters: head pointer of PCB List (ProcessControlBlockLL *) +Function Output/Parameters: none +Function Output/Returned: none +Device Input/Device: none +Device Output/Device: none +Dependencies: ??? +*/ +int scheduleProcess(ProcessControlBlockLL *headPointer, ConfigDataType *configPtr); + #endif // SIMULATORX \ No newline at end of file