public Process(int size, string name) { this.size = size; this.name = name; my_hole = null; }
private void StartBtn_Click(object sender, EventArgs e) { MemorySize = int.Parse(memory_size.Text); NumHoles = int.Parse(number_holes.Text); NumProcesses = int.Parse(number_processes.Text); algorithm = algorithm_type.Text; string processsizes = size_processes.Text; string[] process_sizes_array = processsizes.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string holesizes = size_holes.Text; string[] hole_sizes_array = holesizes.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string startingaddresses = starting_addresses.Text; string[] starting_addresses_array = startingaddresses.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < NumHoles; i++) // insert Hole objects into Holes Arraylist { Hole temp = new Hole(int.Parse(hole_sizes_array[i]), int.Parse(starting_addresses_array[i])); Holes_list.Add(temp); } for (int i = 0; i < NumProcesses; i++) // insert Process objects into Processes Arraylist { Process temp1 = new Process(int.Parse(process_sizes_array[i]), "p" + (i + 1)); Process_list.Add(temp1); } if (algorithm == "First Fit") { for (int i = 0; i < NumProcesses; i++) { for (int j = 0; j < NumHoles; j++) { if (((Hole)Holes_list[j]).filled == false) // if this hole is free { if (((Hole)Holes_list[j]).size >= ((Process)Process_list[i]).size) // if the process can fit in this hole { ((Hole)Holes_list[j]).assigned_process = (Process)Process_list[i]; // assign the process to this hole ((Process)Process_list[i]).my_hole = (Hole)Holes_list[j]; // process save the hole which it fills // Dispaly the change in colors here/////////////////////////////////////////// //// using ((Hole)Holes_list[j]).start -> starting address of hole //// and using ((Process)Process_list[i]).size -> size of process ((Hole)Holes_list[j]).filled = true; break; } } } } } else if (algorithm == "Best Fit") { for (int i = 0; i < Process_list.Capacity; i++) { int index; index = Best_fit(i); if (fnflag == 1) { ((Hole)Holes_list[index]).assigned_process = (Process)Process_list[i]; ((Process)Process_list[i]).my_hole = (Hole)Holes_list[index]; ((Hole)Holes_list[index]).filled = true; fnflag = 0; } } } add_items_combobox(); Print_listbox1(); }