sched done
This commit is contained in:
parent
b032ac4783
commit
fc7925be3e
|
@ -296,17 +296,25 @@ void pre_sjf() {
|
|||
if(processes[i].in_cpu != 1) {
|
||||
if(time.timer == processes[i].burst_times[0]) {
|
||||
ready_queue.push(&processes[i]);
|
||||
if(CPU != NULL) {
|
||||
if(CPU != NULL && CPU->burst_times[CPU->current_burst_index] != 0) {
|
||||
ready_queue.push(CPU);
|
||||
CPU->in_cpu = 0;
|
||||
out_string += " " + to_string(time.timer);
|
||||
out_strings.push_back(out_string);
|
||||
CPU = NULL;
|
||||
// output_file << " " << time.timer << endl;
|
||||
CPU = ready_queue.top();
|
||||
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; // New entry time
|
||||
ready_queue.pop();
|
||||
// CPU = ready_queue.top();
|
||||
// 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; // New entry time
|
||||
// ready_queue.pop();
|
||||
|
||||
}
|
||||
else if(CPU != NULL && CPU->burst_times[CPU->current_burst_index] == 0) {
|
||||
waiting[CPU->pid] = CPU; // because times up!!
|
||||
CPU->in_cpu = 0;
|
||||
CPU->current_burst_index++;
|
||||
CPU = NULL;
|
||||
|
||||
}
|
||||
processes[i].current_burst_index++;
|
||||
|
@ -319,19 +327,19 @@ void pre_sjf() {
|
|||
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;
|
||||
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;
|
||||
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();
|
||||
// if(CPU != NULL && CPU->burst_times[processes[j].current_burst_index] != 0) {
|
||||
// ready_queue.push(CPU);
|
||||
// CPU->in_cpu = 0;
|
||||
// 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;
|
||||
// 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; // Process leaves waiting queue
|
||||
}
|
||||
|
@ -516,7 +524,7 @@ int main(int argc, char **argv) {
|
|||
char *scheduler_algorithm = argv[2];
|
||||
|
||||
ifstream file(file_to_search_in, ios::binary);
|
||||
// ifstream file("../WorkloadFiles/process1.dat", ios::binary);
|
||||
// ifstream file("../WorkloadFiles/process2.dat", ios::binary);
|
||||
string buffer;
|
||||
int pid = 0;
|
||||
|
||||
|
@ -544,7 +552,7 @@ int main(int argc, char **argv) {
|
|||
temp["rr"] = 4;
|
||||
|
||||
string temp1 = scheduler_algorithm;
|
||||
// string temp1 = "sjf";
|
||||
// string temp1 = "pre_sjf";
|
||||
|
||||
// Start time point
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
|
|
Loading…
Reference in New Issue