## 2 Proposed Method  
This paper aims to apply fuzzy logic theory to evaluate the CPU utilization by including the impact of RAM and storage utilizations to the CPU performance, while simultaneously running multiple applications processing. We used the system monitor (perfmon.exe) of the operating system to collect the performance data of hardware components, which are the processor time, swapping(pages), and disk time characteristics, accordingly CPU, RAM, and storage utilization information. During the monitoring, we built a dataset of RAM, storage and CPU utilizations from the test-bed computer. The view of the dataset is shown in Table 1.  
A fuzzy expert system that uses human knowledge and their experience in this field to create linguistic descriptors for variables and to create fuzzy sets that allow the behavior of the studied phenomena to be controlled, or even as a tool for decision making [20]. In this work, we developed two types of FIS model (Sugeno and Mamdani) to evaluate the CPU utilization status by considering the influence of memory and storage utilization on CPU utilization. The difference between the FIS models are knowledge base and output, i.e., the Sugeno FIS uses a database and outputs quantity value of CPU utilization and the Mamdani FIS uses a rule base and performs linguistic value on the utilization state of CPU, like low, normal or high. The architecture of the proposed fuzzy inference system is shown in Figure 1. The model contains fuzzification, knowledge base, inference engine, and defuzzification modules. The algorithm of the fuzzy inference system is described in Algorithm 1. The fuzzification process is the first step in the fuzzy inference system. The crisp input values of RAM and storage are converted to fuzzy inputs by a fuzzification module, which assigns the degree of membership to fuzzy sets defined for variables. We used the Gaussian membership function for the fuzzy set as shown in Figure 2 and Equation (1). \[gaussian(x;c,\sigma)=e^{-\frac{1}{2}(\frac{\kappa-c}{\sigma})^{2}} \tag{1}\] \begin{table}
\begin{tabular}{c c c c} \hline \hline  & **RAM Utilization (\%)** & **Storage Utilization (\%)** & **CPU Utilization (\%)** \\ \hline
1 & 27 & 44 & 14 \\
2 & 38 & 50 & 20 \\
3 & 72 & 94 & 44 \\ \(\cdots\) & \(\cdots\) & \(\cdots\) & \(\cdots\) \\
1000 & 85 & 100 & 66 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Database for training the Sugeno model. Figure 1: Flowchart of Fuzzy inference system. Equation (1) shows that c represents the center and \(\sigma\) determines the width of the membership function. In Figure 2, the described membership function with the \"normal\" linguistic term defined by the function of Gaussian (x; 50, 25). This means that the center of membership function 50, where the function reaches the maximum value 1. Equation (1) uses all input and output variables to make membership functions. A fuzzy inference engine can draw conclusions or predict the results of a system using a knowledge base. In the proposed FIS, the inference engine is based on a set of IF-THEN rules. As aforementioned, we developed two types of FIS. These are the Mamdani FIS and the Sugeno FIS. Our proposed Mamdani-type FIS is implemented by the following steps:  
1. Fuzzification input crisp values
2. Built fuzzy rules
3. Finding outcomes of the rules by combining the rule strength and output
4. Get output distribution by combining the outcomes
5. Defuzzification of the output \[\textit{IF }(\textit{RAM is Low and Storage is Low})\textit{THEN }(\textit{CPU is Low})\] (2) \[\textit{IF}(\textit{RAM is Low and Storage is Normal})\textit{THEN}(\textit{CPU is Low})\] (3)  
The inference engine steps of the Sugeno model are almost the same as these steps, but the Sugeno FIS generates rules by a training process. Training occurs using the database, which is illustrated in Table 1. After training, the model builds optimal weights for prediction CPU utilization.