## 3 Problem with Solution Framework  
The service providers for the cloud have designed the cloud environment in such a way that the cloud comprises virtual machines (VMs) and physical machines (PMs), and it also provides an interface for the public to access it. The users who want to execute some tasks submit their respective task to the cloud through the interface, after which the resource manager will aggregate and effectively manage all the tasks as it monitors and keeps all the updates of the available records of the resources present in the cloud, which include CPU, memory, and storage. Following this, the scheduler effectively does task scheduling such that the resultant fitness function is minimized, and the tasks are given to the respective virtual machine in accordance with the performance of the process involved in scheduling. Scheduling of a task is done only after the scheduler receives all the data from both the request manager and resource monitor. Thus, upon receiving all the required data, a decision concerning the assignment of the tasks to the apt virtual machine is done. The process of assigning the task to the respective virtual machine can be improved after knowing the exact location details of the available virtual machines along with the list of the requested tasks. This data will help reduce a lot of parameters, such as migration cost, total time, load utilization, and cost. Let T = {t1, t2,..., tm} represent a list of tasks that must be executed and V = {v1, v2,..., vn} represents a list of VMs (virtual machines), where each virtual machine is capable of processing and executing the task assigned to it. Thus, the process of task scheduling can be represented by F: T\(\rightarrow\)VM. The main objective is to build a new task scheduler algorithm which has a low makespan while, at the same time, having a low cost. \[\textit{Objective function}=\sum\limits_{i=1}^{m}T_{i}\left( \begin{matrix} \alpha\cdot\textit{Makespan}+\\ \beta\cdot\textit{Cost}\end{matrix} \right) \tag{1}\]  
From the above equation, variable T\({}_{i}\) represents a task selected from the list T and the value of i ranges from [1-m] (m represents the number of available tasks); \(\alpha\) represents the makespan constant whose value is between the range [0-1]; and \(\beta\) represents a cost constant whose value is also between the range [0-1]. Makespan Formula:  
\[M_{ij}=\left(S_{ij}+W_{tij}+ECt_{ij}\right) \tag{2a}\]  
\[\textit{Makespan}=Min\left[\sum\limits_{j=1}^{n}\sum\limits_{i=1}^{m}\left(M_ {ij}\right)\right] \tag{2b}\]  
where, S\({}_{ij}\) is the time taken for submission of the ith task to the jth virtual machine, Wtij denotes the time of waiting for the ith task on the virtual machine, and ECtij represents the time of execution for the ith task by the jth virtual machine. Cost calculation Formula:  
\[\textit{cost}=\textit{datacentrehost}.\textit{costPerStorage}*\textit{vm. size}\] \[+\textit{datacentrehost}.\textit{costPerRam}*\textit{vm.ram}\] \[+\textit{datacentrehost}.\textit{costPerBw}*\textit{vm.bw}\] \[+\textit{datacentrehost}.\textit{costPerMips}\] \[*(\textit{vm.mips}*\textit{vm.numberOfPes}).\]  
In the above-mentioned formula, the variable _datacentrehost_ represents the capacity or the number of hosts present, _costPerStorage_ is the time taken to access the right storage unit, \(vm\_size\) refers to the size of the virtual machine, \(costPerRam\) is the cost of using the ram, \(vm\_ram\) represents the ram capacity present in the virtual machine, \(costPerBw\) represents the bandwidth size, \(vm\_bw\) is the bandwidth of the virtual machine, \(costPerMips\) is the virtual machine's capacity to process a million instructions per second, and \(vm\_numberOfPe\) represents the number of prefetch evaluation systems available in each of the virtual machines.