From 240190bea405bdf612a50115954d09a2879b6ccb Mon Sep 17 00:00:00 2001 From: cdez Date: Mon, 18 Mar 2024 22:59:27 -0700 Subject: [PATCH] Will submit this if there is no time left to spend on the project. +- simulator.c --- Sim03/sim03 | Bin 68680 -> 68880 bytes Sim03/simulator.c | 32 +++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Sim03/sim03 b/Sim03/sim03 index b426ccf781e83b4b681544122b26144cff88bde2..393e6bac23dbda6a4f9ac90183d2c1d2562293f4 100755 GIT binary patch delta 16400 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 E0ZfoGtN;K2 delta 16096 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 diff --git a/Sim03/simulator.c b/Sim03/simulator.c index 1583ecb..5699961 100644 --- a/Sim03/simulator.c +++ b/Sim03/simulator.c @@ -61,9 +61,18 @@ Device Input/Device: none Device Output/Device: none Dependencies: ??? */ -bool allocMemory(ProcessControlBlock *singlePCB, int offset, int size) +bool allocMemory(ProcessControlBlock *singlePCB, int offset, int size, int arraySize) { - // singlePCB->allocatedMemOffsets[] = offset; + int allocateIterator = 0; + // while until a '-1' is hit, then store the value. + while(singlePCB->allocatedMemSizes[allocateIterator] != -1 && allocateIterator < arraySize) + { + // + singlePCB->allocatedMemOffsets[allocateIterator] = offset; + singlePCB->allocatedMemSizes[allocateIterator] = size; + allocateIterator = allocateIterator + 1; + printf("Alloc Iter: %d\n", allocateIterator); + } // return true (temp) return true; } @@ -99,8 +108,16 @@ Device Input/Device: none Device Output/Device: none Dependencies: ??? */ -bool deallocMemory(ProcessControlBlock *singlePCB) +bool deallocMemory(ProcessControlBlock *singlePCB, int arraySize) { + int deallocateIterator; + // while until a '-1' is hit, then store the value. + for (deallocateIterator = 0; deallocateIterator < arraySize; deallocateIterator++) + { + // + singlePCB->allocatedMemOffsets[deallocateIterator] = -1; + singlePCB->allocatedMemSizes[deallocateIterator] = -1; + } // return true (temp) return true; } @@ -464,7 +481,7 @@ bool memManager(ProcessControlBlockLL *pcbList, MEMORY_SIGNALS memCode, int offs if(size <= availableMem - usedMem + 1) { // grab the offset and size, store it, using the allocate memory function. - subFunctionSuccess = allocMemory(singlePCB, offset, size); + subFunctionSuccess = allocMemory(singlePCB, offset, size, singlePCB->memArraySize); usedMem = usedMem + size; } else @@ -496,6 +513,7 @@ bool memManager(ProcessControlBlockLL *pcbList, MEMORY_SIGNALS memCode, int offs break; case MEMORY_ACCESS: + // printf("Used memory at current: %d\n", usedMem); subFunctionSuccess = accessMemory(singlePCB, offset, size); if (memDisplay) { @@ -521,7 +539,7 @@ bool memManager(ProcessControlBlockLL *pcbList, MEMORY_SIGNALS memCode, int offs break; case MEMORY_DEALLOCATE: - subFunctionSuccess = deallocMemory(singlePCB); + subFunctionSuccess = deallocMemory(singlePCB, singlePCB->memArraySize); if (memDisplay) { if (subFunctionSuccess) @@ -529,7 +547,7 @@ bool memManager(ProcessControlBlockLL *pcbList, MEMORY_SIGNALS memCode, int offs // THIS SHOULD ALWAYS HAPPEN. printf("--------------------------------------------------\n"); printf("After clear process %d success\n", singlePCB->uniquePid); - printf("%d [ Open, P#: x, %d-%d ] %d\n", usedMem, currentOffset, currentSize, availableMem - 1); + printf("%d [ Open, P#: x, %d-%d ] %d\n", usedMem - usedMem, currentOffset, currentSize, availableMem - 1); printf("--------------------------------------------------\n"); } else @@ -537,7 +555,7 @@ bool memManager(ProcessControlBlockLL *pcbList, MEMORY_SIGNALS memCode, int offs // THIS SHOULD NEVER HAPPEN. printf("--------------------------------------------------\n"); printf("After clear process %d failure\n", singlePCB->uniquePid); - printf("%d [ Open, P#: x, %d-%d ] %d\n", usedMem, currentOffset, currentSize, availableMem - 1); + printf("%d [ Open, P#: x, %d-%d ] %d\n", usedMem - usedMem, currentOffset, currentSize, availableMem - 1); printf("--------------------------------------------------\n"); } }