From 296c926b7ea0d78ad02f72316fc287ee3d0a30fe Mon Sep 17 00:00:00 2001 From: jazzy1902 Date: Thu, 26 Sep 2024 02:36:42 +0530 Subject: [PATCH] single cpu completed --- lab3/.vscode/settings.json | 91 +++++++++- lab3/WorkloadFiles/process1.dat | 2 +- lab3/WorkloadFiles/temp.dat | 3 +- lab3/cpu_times.txt | 67 +------ lab3/src/cpu_times.txt | 0 lab3/src/scheduler | Bin 0 -> 453536 bytes lab3/src/scheduler.cpp | 308 +++++++++++++++++++------------- 7 files changed, 290 insertions(+), 181 deletions(-) create mode 100644 lab3/src/cpu_times.txt create mode 100755 lab3/src/scheduler diff --git a/lab3/.vscode/settings.json b/lab3/.vscode/settings.json index 2f3478d..3e4d814 100644 --- a/lab3/.vscode/settings.json +++ b/lab3/.vscode/settings.json @@ -1,6 +1,95 @@ { "files.associations": { "ostream": "cpp", - "fstream": "cpp" + "fstream": "cpp", + "any": "cpp", + "array": "cpp", + "atomic": "cpp", + "barrier": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "cfenv": "cpp", + "charconv": "cpp", + "chrono": "cpp", + "cinttypes": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "complex": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "coroutine": "cpp", + "csetjmp": "cpp", + "csignal": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cuchar": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "forward_list": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "regex": "cpp", + "source_location": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "latch": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ranges": "cpp", + "scoped_allocator": "cpp", + "semaphore": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "syncstream": "cpp", + "thread": "cpp", + "typeindex": "cpp", + "typeinfo": "cpp", + "valarray": "cpp", + "variant": "cpp", + "expected": "cpp", + "format": "cpp", + "spanstream": "cpp", + "stacktrace": "cpp", + "stdfloat": "cpp" } } \ No newline at end of file diff --git a/lab3/WorkloadFiles/process1.dat b/lab3/WorkloadFiles/process1.dat index ee1996a..06854ae 100644 --- a/lab3/WorkloadFiles/process1.dat +++ b/lab3/WorkloadFiles/process1.dat @@ -8,4 +8,4 @@ 5 3 2 3 2 3 -1 6 5 -1 10 200 2 3 -1 - + \ No newline at end of file diff --git a/lab3/WorkloadFiles/temp.dat b/lab3/WorkloadFiles/temp.dat index bb40910..9cf8771 100644 --- a/lab3/WorkloadFiles/temp.dat +++ b/lab3/WorkloadFiles/temp.dat @@ -1,6 +1,7 @@
-0 2 2 1 -1
+0 20 2 1 -1
 1 2 2 1 -1
+2 1 2 1 -1 
 
\ No newline at end of file diff --git a/lab3/cpu_times.txt b/lab3/cpu_times.txt index 77ce860..e54e05b 100644 --- a/lab3/cpu_times.txt +++ b/lab3/cpu_times.txt @@ -1,58 +1,9 @@ -P1,1 0 2 -P2,0 2 3 -P3,0 3 4 -P4,0 4 5 -P5,0 5 6 -P5,1 6 8 -P6,1 8 10 -P6,1 10 10 -P5,1 10 13 -P6,1 13 15 -P5,2 15 18 -P6,1 18 19 -P4,1 19 28 -P3,1 28 30 -P4,1 30 90 -P3,1 90 92 -P4,2 92 122 -P3,1 122 125 -P4,3 125 195 -P3,1 195 197 -P4,4 197 207 -P3,1 207 209 -P4,5 209 219 -P3,1 219 277 -P2,1 277 279 -P3,1 279 349 -P2,1 349 351 -P3,2 351 391 -P2,1 391 394 -P3,3 394 464 -P2,1 464 466 -P3,4 466 486 -P2,1 486 488 -P3,5 488 498 -P2,1 498 566 -P1,1 566 568 -P2,1 568 648 -P1,1 648 650 -P2,2 650 700 -P1,1 700 703 -P2,3 703 773 -P1,1 773 775 -P2,4 775 815 -P1,1 815 817 -P2,5 817 827 -P1,1 827 914 -P7,1 914 916 -P1,1 916 1006 -P7,1 1006 1008 -P1,2 1008 1088 -P7,1 1088 1091 -P1,3 1091 1161 -P7,1 1161 1163 -P1,4 1163 1223 -P7,1 1223 1225 -P1,5 1225 1235 -P7,1 1235 1424 -P7,2 1426 1429 +P1,1 0 5 +P2,1 5 7 +P3,1 7 8 +P1,1 8 13 +P2,2 13 14 +P3,2 14 15 +P1,1 15 20 +P1,1 20 25 +P1,2 27 28 diff --git a/lab3/src/cpu_times.txt b/lab3/src/cpu_times.txt new file mode 100644 index 0000000..e69de29 diff --git a/lab3/src/scheduler b/lab3/src/scheduler new file mode 100755 index 0000000000000000000000000000000000000000..97a235b017269f610dd781c5a7a8094bd9dfdee9 GIT binary patch literal 453536 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

+SyaYu)O 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

;|VR#);GxdFC($3++N4GAuTnh8j*y;6&mn2Meta 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 F{~wOaJ;DG0 literal 0 HcmV?d00001 diff --git a/lab3/src/scheduler.cpp b/lab3/src/scheduler.cpp index a686c9a..330dd72 100644 --- a/lab3/src/scheduler.cpp +++ b/lab3/src/scheduler.cpp @@ -15,6 +15,10 @@ struct process_detail { vector burst_times; int in_cpu; int current_burst_index; + int arrvival_time = 0; + int wait_time = 0; + int cpu_time = 0; + int completion_time = 0; }; struct clock{ @@ -26,9 +30,10 @@ struct clock{ vector processes; queue ready_queue_fifo; struct process_detail* CPU = NULL; -vector waiting; ofstream output_file("cpu_times.txt"); +vector out_strings; + // -------------------------------------- THE FIFO -------------------------------------------------- @@ -41,23 +46,28 @@ void fifo() { time.push_signal = 0; int process_count = processes.size(); int completed_processes = 0; + vector waiting(process_count, NULL); + string out_string = ""; while(completed_processes < process_count){ // ready queue, waiting queue, cpu in check, ready queue subtraction, waiting queue subtraction // breaking from the infinite loop - for(int i = 0; i < process_count; ++i) { - if(processes[i].burst_times[processes[i].current_burst_index] == -2) { + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] == -2) { + waiting[j]->completion_time = time.timer - waiting[j]->arrvival_time - 1; + waiting[j] = NULL; completed_processes++; - } - } + } + } //managing arrival times for(int i = 0; i < process_count; ++i) { //if process not in cpu if(processes[i].in_cpu != 1) { if(time.timer == processes[i].burst_times[0]) { + processes[i].arrvival_time = time.timer; ready_queue_fifo.push(&processes[i]); processes[i].current_burst_index++; } @@ -79,7 +89,8 @@ void fifo() { CPU = ready_queue_fifo.front(); CPU->in_cpu = 1; // Record in_time when the process enters the CPU - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1 ) / 2<< " " << time.timer; + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1 ) / 2<< " " << time.timer; ready_queue_fifo.pop(); } @@ -88,16 +99,20 @@ void fifo() { //check cpu_burst complete for(int i = 0; i < process_count; ++i) { if(processes[i].in_cpu == 1) { + processes[i].cpu_time += 1; if(CPU->burst_times[processes[i].current_burst_index] == 0){ // Record out_time when the process exits the CPU - output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); + // output_file << " " << time.timer << endl; CPU->in_cpu = 0; CPU->current_burst_index++; - waiting.push_back(CPU); // process added to waiting queue + waiting[CPU->pid] = CPU; // process added to waiting queue if(!ready_queue_fifo.empty()) { CPU = ready_queue_fifo.front(); // process added to CPU CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time ready_queue_fifo.pop(); } else { @@ -123,7 +138,6 @@ void fifo() { time.timer++; } - output_file.close(); return; } @@ -134,7 +148,16 @@ void fifo() { struct Compare { bool operator()(process_detail* a, process_detail* b) { // Compare the elements in the vector at the given indices - return a->burst_times[a->current_burst_index] > b->burst_times[b->current_burst_index]; + if (a->current_burst_index == 0) { + return a->burst_times[a->current_burst_index + 1] > b->burst_times[b->current_burst_index]; + } + else if(b->current_burst_index == 0) { + return a->burst_times[a->current_burst_index] > b->burst_times[b->current_burst_index+1]; + + } + else if(b->current_burst_index == 0 && a->current_burst_index == 0) + return a->burst_times[a->current_burst_index+1] > b->burst_times[b->current_burst_index+1]; + else return a->burst_times[a->current_burst_index] > b->burst_times[b->current_burst_index]; } }; @@ -149,17 +172,22 @@ void sjf() { time.push_signal = 0; int process_count = processes.size(); int completed_processes = 0; + // Initialize waiting vector with NULLs for each process slot + vector waiting(process_count, NULL); + string out_string = ""; while(completed_processes < process_count){ // ready queue, waiting queue, cpu in check, ready queue subtraction, waiting queue subtraction // breaking from the infinite loop - for(int i = 0; i < process_count; ++i) { - if(processes[i].burst_times[processes[i].current_burst_index] == -2) { + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] == -2) { + waiting[j]->completion_time = time.timer - waiting[j]->arrvival_time - 1; + waiting[j] = NULL; completed_processes++; - } - } + } + } //managing arrival times for(int i = 0; i < process_count; ++i) { @@ -173,7 +201,7 @@ void sjf() { } // managing waiting queue - for(int j = 0; j < waiting.size(); ++j) { + for(int j = 0; j < process_count; ++j) { if(waiting[j] != NULL) { if(waiting[j]->burst_times[waiting[j]->current_burst_index] == 0) { ready_queue.push(waiting[j]); @@ -187,24 +215,29 @@ void sjf() { CPU = ready_queue.top(); CPU->in_cpu = 1; // Record in_time when the process enters the CPU - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; ready_queue.pop(); } - else if(CPU != NULL){ + if(CPU != NULL){ //check cpu_burst complete for(int i = 0; i < process_count; ++i) { if(processes[i].in_cpu == 1) { + processes[i].cpu_time += 1; if(CPU->burst_times[processes[i].current_burst_index] == 0){ // Record out_time when the process exits the CPU - output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); + // output_file << " " << time.timer << endl; CPU->in_cpu = 0; CPU->current_burst_index++; - waiting.push_back(CPU); // process added to waiting queue + waiting[CPU->pid] = CPU; // process added to waiting queue if(!ready_queue.empty()) { CPU = ready_queue.top(); // process added to CPU CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time ready_queue.pop(); } else { @@ -232,7 +265,6 @@ void sjf() { time.timer++; } - output_file.close(); return; } @@ -247,17 +279,22 @@ void pre_sjf() { time.push_signal = 0; int process_count = processes.size(); int completed_processes = 0; + // Initialize waiting vector with NULLs for each process slot + vector waiting(process_count, NULL); + string out_string = ""; while(completed_processes < process_count){ // ready queue, waiting queue, cpu in check, ready queue subtraction, waiting queue subtraction // breaking from the infinite loop - for(int i = 0; i < process_count; ++i) { - if(processes[i].burst_times[processes[i].current_burst_index] == -2) { + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] == -2) { + waiting[j]->completion_time = time.timer - waiting[j]->arrvival_time - 1; + waiting[j] = NULL; completed_processes++; - } - } + } + } //managing arrival times for(int i = 0; i < process_count; ++i) { @@ -268,10 +305,13 @@ void pre_sjf() { if(CPU != NULL) { ready_queue.push(CPU); CPU->in_cpu = 0; - output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); + // output_file << " " << time.timer << endl; CPU = ready_queue.top(); CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time ready_queue.pop(); } @@ -281,22 +321,25 @@ void pre_sjf() { } // managing waiting queue - for(int j = 0; j < waiting.size(); ++j) { + for(int j = 0; j < process_count; ++j) { if(waiting[j] != NULL) { if(waiting[j]->burst_times[waiting[j]->current_burst_index] == 0) { ready_queue.push(waiting[j]); if(CPU != NULL) { ready_queue.push(CPU); CPU->in_cpu = 0; - output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); + // output_file << " " << time.timer << endl; CPU = ready_queue.top(); CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time ready_queue.pop(); } waiting[j]->current_burst_index++; - waiting[j] = NULL; + waiting[j] = NULL; // Process leaves waiting queue } } } @@ -305,24 +348,29 @@ void pre_sjf() { CPU = ready_queue.top(); CPU->in_cpu = 1; // Record in_time when the process enters the CPU - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; ready_queue.pop(); } - else if(CPU != NULL){ + if(CPU != NULL){ //check cpu_burst complete for(int i = 0; i < process_count; ++i) { if(processes[i].in_cpu == 1) { + processes[i].cpu_time += 1; if(CPU->burst_times[processes[i].current_burst_index] == 0){ // Record out_time when the process exits the CPU - output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); + // output_file << " " << time.timer << endl; CPU->in_cpu = 0; CPU->current_burst_index++; - waiting.push_back(CPU); // process added to waiting queue + waiting[CPU->pid] = CPU; // process added to waiting queue if(!ready_queue.empty()) { CPU = ready_queue.top(); // process added to CPU CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time ready_queue.pop(); } else { @@ -340,6 +388,7 @@ void pre_sjf() { } for(int j = 0; j < waiting.size(); ++j) { + // if(waiting[j] != NULL) waiting[j]->wait_time += 1; if(waiting[j] != NULL) { if(waiting[j]->burst_times[waiting[j]->current_burst_index] != 0) { // reducing the io burst till it reaches 0 @@ -350,7 +399,6 @@ void pre_sjf() { time.timer++; } - output_file.close(); return; } @@ -358,110 +406,109 @@ void pre_sjf() { // ------------------------------------------- Round Robin -------------------------------------------------- // vector waiting; void round_robin() { - //clock initialized to 0 - struct clock time; - memset(&time, 0, sizeof(struct clock)); - time.timer = 0; - time.push_signal = 0; - int process_count = processes.size(); - // memset(&waiting, 0, process_count); - int completed_processes = 0; - int time_quantum = 5; - int current_quantum = 0; - + struct clock time; + memset(&time, 0, sizeof(struct clock)); + time.timer = 0; + time.push_signal = 0; + int process_count = processes.size(); + int completed_processes = 0; + int time_quantum = 5; + int current_quantum = 0; - while(completed_processes < process_count){ + // Initialize waiting vector with NULLs for each process slot + vector waiting(process_count, NULL); + string out_string = ""; - // ready queue, waiting queue, cpu in check, ready queue subtraction, waiting queue subtraction - - // breaking from the infinite loop - for(int i = 0; i < process_count; ++i) { - if(processes[i].burst_times[processes[i].current_burst_index] == -2) { + while (completed_processes < process_count) { + // Check for process completion + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] == -2) { + waiting[j]->completion_time = time.timer - waiting[j]->arrvival_time - 1; + waiting[j] = NULL; completed_processes++; - } - } + } + } - //managing arrival times - for(int i = 0; i < process_count; ++i) { - //if process not in cpu - if(processes[i].in_cpu != 1) { - if(time.timer == processes[i].burst_times[0]) { - ready_queue_fifo.push(&processes[i]); - processes[i].current_burst_index++; - } - } - } - - // managing waiting queue - for(int j = 0; j < waiting.size(); ++j) { - if(waiting[j] != NULL) { - if(waiting[j]->burst_times[waiting[j]->current_burst_index] == 0) { - ready_queue_fifo.push(waiting[j]); - waiting[j]->current_burst_index++; - waiting[j] = NULL; - } - } - } + // Manage arrival times + for (int i = 0; i < process_count; ++i) { + if (processes[i].in_cpu != 1 && time.timer == processes[i].burst_times[0]) { + ready_queue_fifo.push(&processes[i]); + processes[i].current_burst_index++; + } + } - if(CPU == NULL && !ready_queue_fifo.empty()) { - CPU = ready_queue_fifo.front(); - CPU->in_cpu = 1; - // Record in_time when the process enters the CPU - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; - ready_queue_fifo.pop(); - current_quantum = time_quantum; + // Manage waiting queue + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] == 0) { + ready_queue_fifo.push(waiting[j]); + waiting[j]->current_burst_index++; + waiting[j] = NULL; // Process leaves waiting queue + } + } - } + // Assign a process to CPU if available + if (CPU == NULL && !ready_queue_fifo.empty()) { + CPU = ready_queue_fifo.front(); + CPU->in_cpu = 1; + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid + 1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; + ready_queue_fifo.pop(); + current_quantum = time_quantum; + } - else if(CPU != NULL){ - //check cpu_burst complete + if (CPU != NULL) { for(int i = 0; i < process_count; ++i) { - if(processes[i].in_cpu == 1) { - if(CPU->burst_times[processes[i].current_burst_index] == 0 || current_quantum == 0){ - // Record out_time when the process exits the CPU - output_file << " " << time.timer << endl; + if(processes[i].in_cpu == 1){ + processes[i].cpu_time += 1; + if (CPU->burst_times[CPU->current_burst_index] == 0 || current_quantum == 0) { + // output_file << " " << time.timer << endl; + out_string += " " + to_string(time.timer); + out_strings.push_back(out_string); CPU->in_cpu = 0; - if(CPU->burst_times[processes[i].current_burst_index] == 0) CPU->current_burst_index++; - if(current_quantum == 0) ready_queue_fifo.push(CPU); - waiting.push_back(CPU); // process added to waiting queue - if(!ready_queue_fifo.empty()) { - CPU = ready_queue_fifo.front(); // process added to CPU + if (CPU->burst_times[CPU->current_burst_index] == 0){ + CPU->current_burst_index++; + waiting[CPU->pid] = CPU; + } + + else if (current_quantum == 0) ready_queue_fifo.push(CPU); + + // Place the process in its corresponding waiting slot by pid + + if (!ready_queue_fifo.empty()) { + CPU = ready_queue_fifo.front(); CPU->in_cpu = 1; - output_file << "P" << CPU->pid+1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; // New entry time + out_string = "P" + to_string(CPU->pid+1) + "," + to_string((CPU->current_burst_index + 1 ) / 2) + " " + to_string(time.timer); + // output_file << "P" << CPU->pid + 1 << "," << (CPU->current_burst_index + 1) / 2 << " " << time.timer; ready_queue_fifo.pop(); current_quantum = time_quantum; - } - else { + } else { CPU = NULL; } } } } - } + } + // Process CPU burst and quantum + if (CPU != NULL) { + CPU->burst_times[CPU->current_burst_index]--; + current_quantum--; + } - if(CPU != NULL) { - CPU->burst_times[CPU->current_burst_index]--; - current_quantum--; - } + // Manage IO bursts in waiting queue + for (int j = 0; j < process_count; ++j) { + if (waiting[j] != NULL && waiting[j]->burst_times[waiting[j]->current_burst_index] != 0) { + waiting[j]->burst_times[waiting[j]->current_burst_index]--; + } + } - for(int j = 0; j < waiting.size(); ++j) { - if(waiting[j] != NULL) { - if(waiting[j]->burst_times[waiting[j]->current_burst_index] != 0) { - waiting[j]->burst_times[waiting[j]->current_burst_index]--; // reducing the io burst till it reaches 0 - } - } - } + // Increment the timer + time.timer++; + } - time.timer++; - } - output_file.close(); - return; } - - int main(int argc, char **argv) { if(argc != 3) @@ -476,7 +523,7 @@ int main(int argc, char **argv) { char *scheduler_algorithm = argv[2]; ifstream file(file_to_search_in, ios::binary); - // ifstream file("process1.dat", ios::binary); + // ifstream file("../WorkloadFiles/process1.dat", ios::binary); string buffer; int pid = 0; @@ -504,7 +551,10 @@ int main(int argc, char **argv) { temp["rr"] = 4; string temp1 = scheduler_algorithm; - // string temp1 = "rr"; + // string temp1 = "sjf"; + + // Start time point + auto start = std::chrono::high_resolution_clock::now(); switch(temp[temp1]){ case 1: @@ -523,5 +573,23 @@ int main(int argc, char **argv) { cout << "enter fifo or sjf or pre_sjf or rr" << endl; } + // End time point + auto end = std::chrono::high_resolution_clock::now(); + auto duration = std::chrono::duration_cast(end - start); + + + for(int i = 0; i < out_strings.size(); ++i){ + output_file << out_strings[i] << endl; + } + output_file.close(); + for(int i = 0; i < processes.size(); ++i) { + cout << "Process " << i+1 << " Completion Time: " << processes[i].completion_time << endl; + } + for(int i = 0; i < processes.size(); ++i) { + cout << "Process " << i+1 << " Waiting Time: " << processes[i].completion_time - processes[i].cpu_time << endl; + // cout << "Process " << i+1 << " Waiting Time: " << processes[i].wait_time << endl; + } + + std::cout << "Execution time: " << duration.count() << " ms" << std::endl; return 0; }