Green Computing Approaches-A Survey

The upsurge in global warming and release of greenhouse gases are major issues that intensified over the past years due to the increasing usage of technological resources in our daily routines. That is why a call for going green in the technological field is highly recommended. This paper reviews various approaches of green computing in five main areas software engineering, cloud computing, mobile computing, data centers, and the educational sector.


Introduction
Global warming and climate change are causing the increase of global temperature and the rise of sea levels. The main cause of environmental impact is people and their irresponsible and harmful behavior. As an example, for such behaviors are the huge amounts of CO2 emissions from the industries and vehicles, cutting trees, and the exhaustive use of resources by technology. Studies have shown that the amount of CO2 emissions has been increasing in the past few years [1]. Efforts for reducing harm to the environment must start from changing peoples' behaviors. Citizens of planet Earth must start thinking "Green" in all aspects of their lives in order to save and protect their future and the future of their children on this planet. Nowadays, technology has entered people's lives intensively -it reached their jobs, homes, and education. As a contribution to achieve environmental sustainability, people can start by changing the way they deal with technology. Most efforts addressed the hardware perspective of green computing with little attention to the importance of the software perspective. Efficient software reduces the use of hardware resources; therefore, reducing energy consumption. In this study, we examine different green computing approaches in the literature in various domains of software development. In particular, we study green approaches in software engineering models, cloud computing, mobile development, data centers. In addition, we highlight the importance of introducing green computing principles in the educational sector.
The remainder of this paper is organized as follows. Section 2 provides a literature review. Section 3 describes the models for sustainable software engineering. Section 4 addresses green cloud computing. Section 5 overviews green mobile development. In section 6 green data centers are addressed, while section 7 sheds the light on green computing in education. And finally, section 8 concludes the paper.

Literature review
Many efforts were done in the literature with the aim of achieving green computing in different domains and reducing the negative impacts of ICT on environmental sustainability. A review of the different software process models commonly used in practice is presented in [2]. Naumann et al. [3] presented a reference model for sustainable software engineering (GREENSOFT) that supports different stakeholders in the whole lifecycle of software production. Berkhout and Hertin [4] defined three levels of ICT impacts on the environment and highlighted the importance of studying their rebound effect in which negative impacts overcompensate positive ones. Mahmoud and Ahmad [5] defined green metrics in the stages of software production and stressed the importance of two stages: requirements definition and testing. The model also discusses the role of software itself in achieving green computing. Capra et al. [6] studied the impact of software on sustainability and proved that achieving a better performance does not guarantee better energy efficiency.
Atrey et al. [7] studied how the cost of the unlimited services of cloud computing leads to overcompensating the benefits and increases energy consumption and CO2 emissions. Dougherty et al. [8] described a model-driven green technique to avoid over-provisioning of idle virtual resources in cloud servers. The aim of their model is to provide a green auto-scaling technique for allocating VM M. Dhaini et al.
configurations that preserves a satisfactory QoS. The problem is solved as a feature selection problem. Gai et al. [9] presented an energy-aware mobile cloud computing model that takes advantage of cloudlets to reduce the energy consumption of wireless communications. Xu et al. [10] described an energy-efficient algorithm for VM scheduling inspired by physical principles. Zhao-Hui and Qin-Ming [11] proposed a virtual machine scheduling algorithm that deploys VMs on data nodes with the least growth of energy consumption. Mukhtar et al. [12] presented a green strategy for determining the least energy-consuming fog device to offload client application modules. Verma S. et al. [13] presented an energyefficient, yet costly, algorithm that integrates load balancing and data replication for fog-cloud computing. Previous researches acknowledge that using virtualization cloud computing is itself energy-efficient technology [14]. A.J. Younge and his colleagues proposed a green cloud framework that covered virtualization and data center operations [15].
Green computing is responsible for designing, manufacturing, using, and disposing of computers, servers, and its hardware like monitors, printers, storage devices, and networking and communications systems in order to efficiently and effectively consume energy with minimal or no impact on the environment [16]. Mobile devices are becoming an important and irreplaceable resource in our daily life. According to the International Telecommunication Union, the number of registers in the worldwide mobile network operators has already reached more than four billion users [17]. Moreover, based on the International Data Corporation's statistics, 494 million smartphones were sold worldwide in 2011. The sales of smartphones reached an annual growth of 62% from 2010 till 2011, expecting this increase to continue furthermore [18]. With this huge number of mobiles and mobile users, and taking into consideration their effect on the environment, regarding their energy consumption and the toxic wastes, one should think of a solution that preserves the environment and prevents harming it. Many approaches have tried to reduce the burden of mobile devices; probably the most common is trying to execute heavy computational operations on the cloud rather than executing them on mobile devices. For example, CloneCloud [19] is a system that allows partial offloading from smartphones to the phone's clone in the cloud. A similar idea was also investigated by Satyanarayanan et al. [20] and Cuervo et al. [21]. Another example from Chen et al. [22] who introduces a framework allowing heavy tasks on an Android phone to be offloaded to an Android virtual machine in the cloud. Others suggest that mobile devices could be the source of computing power.
When talking about going green in an environment that encounters rapid ongoing changes in the technological fields, the need for a business to "Go Green" is much needed to help reduce the hazardous outcomes that humanity is facing. And for an industry to "Go Green" it must simply maintain an eco-friendly and energy-efficient computing resources. Green data centers offer a great aspect of offering an energy-efficient and eco-friendly computing environment. The burst of data centers began in 1946 where data centers were created by the U.S. army to serve the military [23]. And throughout the years the idea of placing data centers has increased and we began to see data centers placed more often in industries. Data centers are defined simply by information and server storage as well as network infrastructure of the company's huge amount of data. And because of this aspect being spread, and adding to that the rapid booming that the world encountered in the field of technology, the consumption of energy became larger and emission of toxics increased as well. That opened the door for data centers to go green and become more and more eco-friendly. A green data center differs from a normal data center where the mechanical, electrical, and computer infrastructure is designed in a way to obtain maximum energy efficiency and minimum environmental damages [24]. Nada and Elgelany [25] mentioned in their article that a data center consumes a huge amount of energy as the same time it plays a major role in producing large amounts of carbon dioxide because data centers are mainly composed of thousands of servers. Uddin et al. [26] mentioned in their study that a data center is composed of thousands of servers and is equal to the amount of a small city.
The topic of green computing in the education sector has been studied intensively in the literature. Many studies were conducted to assess the awareness and knowledge levels of green computing in educational institutions [27]. In [28], a study was conducted to check the level of awareness of green computing among students at the University of Technology in Mauritius. In [29], German software users were surveyed for a study that addressed the environmental issues of software. The integration of sustainability into computing education was studied in [30], where three different strategies were presented. In [31], different techniques for practicing green computing in universities were proposed.

Models for sustainable software engineering
Berkhout and Hertin [4] studied the impacts caused by Information and Communication Technologies (ICTs) on the environment. They presented a summary of the literature on the topic and classified the environmental impacts of ICTs into three categories as follows: • First-order impacts: the most obvious environmental impacts that result directly from the production and use of ICT infrastructure and devices such as resource use and pollution, electricity consumption of ICT hardware, and disposal of electronic waste. • Second-order impacts: indirect environmental impacts of using ICT such as resource and energy conservation caused by dematerialization, demobilization and substitution of information goods for tangible goods. • Third-order impacts: indirect environmental impacts of using ICT that appears in the long term such as changing lifestyles and values systems. These impacts may overcompensate for the energy savings by ICT (rebound effects).
A major issue considered in relation to the third order effects is the rebound effect of the use of ICT. It has been shown, through the first and second order effects, that ICTs have the potential to reduce resource usages and energy consumption. However, a critical question is whether or not the long-term consumption of ICTs will over-compensate the conserved resources.
This concept is presented as the rebound effect. Naumann et al. [3] presented a reference model for Green and Sustainable software named GREENSOFT and gave definitions for Green and Sustainable Software and Green and Sustainable Software Engineering. The model also performs a refinement for the environmental impacts of ICT, defined by Berkhout and Hertin [4], to cover human and social sustainability issues instead of limiting them to environmental issues. The effects were identified as: • effects of ICT supply (representing first-order effects) • effects of ICT usage (representing second-order effects) • systemic effects of ICT (representing third-order effects) Naumann et al. [3] claimed that a sustainable software product should have a low impact on Sustainable Development, and that the development process of the software product should be environment-friendly. This is reflected in the definitions of Green and Sustainable Software and Green and Sustainable Software Engineering that was provided: Green and Sustainable Software: is software that leaves a small footprint on the environment.
Green and Sustainable Software Engineering: is the art of defining and developing software products in a way, which the negative and positive impacts on sustainable development that result and/or are expected to result from the software product over its entire life cycle are continuously assessed, documented, and used for further optimization of the software product.
The GREENSOFT model also supports different stakeholders of a software product (developers, administrators, users) in developing, maintaining, and using it in a sustainable manner. The model, as shown in Figure 1, comprises the following four parts: • Life Cycle of Software Products: Based on the three levels of impacts, it directs stakeholders to take into consideration the impacts on Sustainable Development during development, distribution, usage, deactivation, and disposal phases • Sustainability Criteria and Metrics: Defines metrics and criteria helpful for the assessment of a software product's sustainability.
• Procedure Models: Classifies the software life cycle into four sub-procedure models and proposes a set of activities and processes that are geared towards sustainable development in each model. The four sub-models are: Develop, Purchase, Administrate, and Use. • Recommendations and Tools: This part guides every stakeholder of a software product to comply with green guidelines and procedures while dealing with the software product.
Mahmoud and Ahmad [5] proposed a model for a green software engineering process consisting of two levels. The first level comprises metrics for the green assessment of every stage in the software engineering process according to the ICT first-order impacts. The second level of the model addresses the role of software itself in sustainable development and green computing. The model followed the definitions of Green and Sustainable Software and Green and Sustainable Software Engineering presented by Naumann et al. [3] and their definition of ICT impacts because they consider human and social sustainability issues [5]. They also included an additional definition which is Green and Sustainable Software Process because their aim is to provide green instructions for the whole lifecycle of software production.

First level
Defines a software engineering process to mitigate the negative impacts of ICT on the environment. The process consists of seven stages of the lifecycle of a software product: requirements, design and implementation, testing, green analysis, usage, maintenance, and disposal. The model describes instructions and guidelines that can be used for the green performance of each stage. In the model proposed by Naumann et al. [3], the part of Life Cycle of Software Products discusses the impacts of ICT on sustainable development in the stages of the product's lifecycle. However, they do not include the requirements and testing stages. These two stages were considered in [4] in contrast to many green software models. In addition, a green analysis stage was added to measure the greenness of the output of every stage. We will particularly discuss the importance of including these three additional stages in a green software process: • Requirements Stage: in this stage, the model recommends that requirements engineers will perform requirements functionalities. Therefore, the rate of changes in the software will be reduced, and resources needed for changes will be conserved. • Testing Stage: this stage helps the developing organization to evaluate the compliance of the software product with the customer's requirements. Therefore, it limits the chances of going back to the requirements stage in case the products do not meet the customer's satisfaction. The resources needed for going back to previous stages will thus be conserved. • Green Analysis Stage: the objective of this stage is measuring the "greenness" of the outputs of other stages and allowing for going back to previous stages in order to apply changes that aid green and sustainable development.

Second level
Another idea missing from the GREENSOFT model [3] is the software's role in reducing the negative impacts of ICT and improving sustainable development. The second level of the model presented by Mahmoud and Ahmad [4] describes how software can act as a tool to monitor the efficient use of resources. Several software packages that aid in regulating resource consumption are presented in this level such as operating systems, codes written for energy allocation purposes, and some approaches like SPAN [32] that correlate power estimation with source codes, and GREENTRACKER [32] that measures energy consumption.

Green cloud computing
Cloud computing reduces power consumption by providing cloud applications with virtualized computational resources dynamically upon request such as virtual OS instances. This technique requires keeping idle VM instances in a queue as a standby for any request. As a result, 70-80% of power consumption in data centers is wasted [34][35][36][37]. In order to avoid over-provisioning of idle resources, Auto-scaling techniques were introduced to improve server utilization of resources and support greener cloud computing by allocating virtualized computational resources, dynamically and accurately, to cloud applications based on their current loads. Auto in an auto-scaling queue to be provisioned instantly to cloud applications. If no entry in the queue matches the requested configuration, a new VM will be booted and configured then provided to the requesting application. This mechanism is shown in Figure 2. The objective is to maintain the auto-scaling queue in a green manner while preserving QoS. A preferred auto-scaling queue is one that reduces energy and resources consumption by minimizing the number of idle VMs. However, it is very difficult to determine the number of VMs to fill the queue and their configurations. Examples of configuration options provided by Amazon EC2 are Linux vs Windows operating systems, SQL Server vs MySQL databases, Apache HTTP vs IIS/Asp.Net webhosts [8].
Dougherty et al. [8] describe a model-driven green technique for sustainable auto-scaling cloud computing infrastructures called Smart Cloud Optimization for Resource Configuration Handling (SCORCH). The authors mention three main challenges of configuring VMs: • The need for recognizing the VM configuration options of cloud applications (processors, OS) and their constraints (power consumption). • The choice of VM configurations to be kept in the auto-scaling queue that can warrant a satisfactory QoS. • Determining the optimal auto-scaling queue size that minimizes energy consumption.
SCORCH addresses these challenges based on the following functionalities: • Feature models [33] are used to represent VM configurations, implementation details (e.g., whether to use Windows 7 or Redhat 9), and other information about the configurations (e.g., energy consumption, operating costs, etc.). • Cloud applications are requested to inform SCORCH about the VM configurations that it will ask for during its lifetime. • Feature configuration problems are transformed into constraint satisfaction problems (CSPs) and an objective function is defined, to aid in deciding on the appropriate settings of the autoscaling queue taking into consideration several parameters (mainly: expected response time, expected time to fulfill a request, time to boot a new VM instance, and energy consumption of configurations). Reprinted from [8].
• Optimizing the objective function, using a standard constraint solver, yields a combination of VM configurations that minimizes the number of idle VMs to be maintained in the auto-scaling queue. This minimizes the operation costs, and respects the satisfactory QoS and response time requirements.
Experimental studies were run to assess the contributions of SCORCH in green cloud computing. It was compared to two approaches: the first does not consider auto-scaling, while the second provides autoscaling without optimizing the queue. The first approach performed worse while SCORCH performed better and reduced cost, power consumption, and CO2 emissions by 50% [8].
Mobile Cloud Computing (MCC) allows mobile users to have a green experience in using their mobiles in terms of offloading data processing and storage to cloudbased servers. However, the greenness of this approach is linked directly to the stability and efficiency of wireless communications where weak communications cause a waste of energy and resources due to the continuous search for wireless signals. As an approach to solve this problem, Gai et al. [9] introduced a dynamic energy-aware cloudlet-based mobile cloud computing model (DECM) that takes advantage of cloudlets to reduce the amount of energy consumed by wireless communications.
The DECM mainly consists of mobile devices, cloudlets supported by dynamic searching, and cloud computing as shown in Figure 3. The main objective of the model is to provide green computing on mobile devices without affecting the QoS in cloud services. In this model, the nearest cloudlets receive requests from mobiles through the virtual machines corresponding to client applications. A cloudlet may switch a client's connections to another one if it can provide better service based on a more stable network, nearer location, or greener computations. Cloudlets are coupled with dynamic programming algorithms that enable them to find the most convenient cloud servers to connect with. They are named DCLs (Dynamic Cloudlets) in this model. This technique guarantees that the mobile devices and the cloud servers will communicate in the most efficient way. The DECM algorithm is a minimizing algorithm for the cost of wireless communications in mobile cloud computing. The two factors affecting the cost is the energy consumption in a communication route (between mobile, cloudlet, and server), and the service performance provided by a specific route (in order to have a satisfactory QoS). This algorithm will ensure that MCC will perform with minimum energy consumption. This was proved experimentally by comparing the approach with other approaches.
Xu et al. [10] addressed the issue of VM scheduling algorithms that affect the efficient migration of virtual machines between nodes of the cloud. The authors stress that efficient algorithms for scheduling and migration of VMs are crucial because inefficient virtualization of resources will cause unnecessary waste, increase in CO2 emissions, and overheating inside data centers. In order to solve this problem, Xu et al. [10] presented a VM scheduling algorithm, VMSAGE, inspired by the physical gravitational effect. The algorithm is proposed as an improvement of the simple scheduling algorithms that are based generally on placing VMs on nodes with low memory usage (CPU, RAM) without considering other factors such as heat distribution. VMSAGE aids in avoiding overheating in data centers, reducing energy consumption, load balancing, and energy efficiency. According to the physical concept of gravitation, the algorithm shuts down data nodes having a low utilization rate and migrates its VMs to other nodes with good heat dissipation in order to avoid overheating. The algorithm also uses another physical concept: "among two objects, having the same acceleration, the one with higher initial velocity will reach its destination faster". Each VM is thus assigned an initial speed of migration in order to enable the system to decide which VMs will migrate before others. VMs with very high utilization rates, having large amounts of resources, or placed in servers with very high temperatures are assigned higher values of initial VMs than others. VMs are migrated to other servers that are selected based on lower costs of migration and heat dissipation. The objective of VMSAGE is to reach a point where no server is in need to reschedule its VMs. In order to assess the algorithm, it was compared with two approaches: Best Fit Heuristic, and Dynamic Voltage and Frequency Scaling. The comparison was based on energy consumption, performance, and heat distribution in the data centers. The experimental results showed that VMSAGE reduces energy consumption rates and VM migration times significantly.
The Cloud of Things paradigm (CoT) was introduced to overcome the problems of limited storage capacities and computational capabilities in IoT devices. CoT combines cloud services with IoT and allows client applications to offload storage or computations to the cloud. However, CoT was shown to be inefficient for applications that require high latency, such as applications of healthcare, due to the severity of delays. Consequently, Fog Computing was introduced by Cisco to support the provisioning of IoT applications and services by bringing computations towards the edge of the network. Fog can process part of the data collected by IoT devices, reserving the cloud capabilities for complex computations and permanent storage [38]. This technique has various benefits such as reduced energy consumption in data centers, and improved latency and network bandwidth. Mukhtar et al. [12] present a green strategy for the allocation of application modules in fog devices. Its objective is to determine the best suitable place for offloading, in the Fog or the Cloud, taking into Reprinted from [9]. M. Dhaini et al.
consideration energy consumption, CPU capacity, and desired response requirements (or tolerable delays). In the system model, allocated tasks are defined by their type (sensing, processing, etc.) and the workload which defines the needed resources (memory, CPU, energy). This approach was assessed by measuring energy efficiency in a remote patient monitoring system (RPM) and comparing the results with those of two other approaches (default and Cloud-only strategies). The results show that the proposed approach reduces energy consumption by 1.61% and 2.72% with respect to the default and cloud-only strategies, respectively. Energy efficiency in Fog devices was improved by 8.27% compared to the default strategy.

Green mobile development
In [17] different perspectives to study energy consumption on mobile devices are discussed. The first approach is from the perspective of instructions processed by the Central Processing Unit (CPU). Whenever the amount of code or data the system needs to fetch from the cache increase, the energy consumption will eventually increase as well. Another approach is from the network perspective. For example, using 3G network connections consumes more energy than using 2G network connection [17]. The last approach discussed was from the application perspective. Two factors were addressed in this section: (1) Bluetooth usage and (2) the SMS message size. It was proven that using a mobile with Bluetooth enabled consumes much more energy than using it with Bluetooth turned off as shown in Figure 4. Regarding the SMS message size, sending multiple SMS messages of smaller size will consume more energy than concatenating these messages into fewer SMS messages but of larger size, as shown in Figure 5.
In [18] several actions were recommended to save energy. The first recommendation was for mobile applications to operate in networks that offer t h e best-cost benefit rate. For applications that are used to send data (e.g. email applications), consider the alternative of delaying the sending of data, so that the maximum number or requests can be triggered at once. Moreover, applications must make use of parallel connections to transfer data, a strategy that would save a lot of energy. In [18] a mobile computing prototype called GMECloud that utilizes energy-efficient mobile devices (e.g., smartphones and tablets) as computing resources is proposed.
In the proposed prototype, the clients follow the server-client protocol flow chart described in Figure 6. As shown below, the mobile client's application checks the status of the device: if the device is ready, it connects to the server. The status of the device is defined in terms of different characteristics; for example, the CPU usage, the device battery level, etc.
The server splits the job into smaller tasks; these tasks are then distributed to multiple clients. If the number of active clients is high, the server will assign to each client fewer tasks. This means that the time required by each client to finish the assigned tasks will be less.
In [16], a novel approach is proposed where middleware is coordinating between mobile and cloud computing techniques to achieve green computing for the next generation. The major approaches of Green Computing are product longevity, software and deployment optimization, power management, materials recycling, telecommuting, and low-performance computing. A middleware is a software infrastructure. It binds together the applications, operating systems, network hardware, and network stacks. Its major task in this proposed architecture is to evaluate a data center power, operating system support, power supply, storage, video card, and display. Figure 7 shows the architecture of mobile-cloud computing based middleware for green computing. As the figure shows, a MANET is a set of wireless nodes. The data gathered by these nodes can be delegated to the cloud or middleware of cloud based on the requirements and applications. Reprinted from [17].  Moving to [39], the main concern is to highlight the energy-related issues as early as possible in the software development life cycle (SDLC) of an application making it more energy-efficient and reducing the cost regarding energy consumption. This work divides the green technology, as mentioned before, on all the stages of the software development life cycle (SDLC) of a given application. It starts with Green software requirement specification, which means that there may be additional software requirements to maintain the developed software. Next, Green software design; the main concern of the software developers is always the software structure, the modules needed, the software architecture, etc. While energy efficiency is the main part of good software design, it's rarely taken into consideration by software developers at this stage. Moving forward, Green software implementation focuses on reducing the application CPU consumption, the number of parameters used, and many other factors that affect energy consumption. Regarding the testing phase, Green software testing takes into consideration the number of people and the amount of equipment allocated to test the energy used by the application, based on predefined test cases related to energy consumption. Finally, Green software maintenance tends to perform regular maintenance tasks that will keep data transmission at optimal efficiency.
To save energy for mobile-to-mobile communication, an energy-aware adaptive compression approach for battery constrained mobile devices is proposed in [40]. The adaptive approach utilizes a lightweight compression scheme by using the Zip Level 0 compression algorithm whenever compression is required. In the proposed scheme, the signal strength is monitored, and data is read into blocks during the transmission. The signal strength level decides whether blocks will be compressed or not before being sent. Strong signal strength leads to sending the blocks uncompressed, while weak signal strength leads to compressing the blocks using a light compression algorithm. The proposed adaptive scheme was implemented and tested where experimental results show that the adaptive scheme saves energy remarkably compared to the no-compress and always-compress schemes.
6 Green data centers 6

.1 How green is a data center
Before taking a risk, an industry must first study the level of energy efficiency, which is the level of energy consumed by the industry. Based on the quantitative results that issued from energy-efficient measures we can decide what suitable techniques we can use in order to turn the data centers to become eco-friendly. In [24], Mata-Toledo and Gupta mentioned two important metrics which are, the Power Usage Effectiveness (PUE) and Data Center Efficiency (DCE). They mentioned too an aid to the following analysis such as tools known as the "The Green Report". However, Siso et al. [41] focused on metrics technique called CoolEmAll that focuses not only on energy consumption but also on heat-aware metrics. They pointed out, that the reason they introduced CoolEmAll metrics is because of the standard metrics such as, CFD, PUE that does not allow any space for predication of energy performance to enhance energy efficiency. CoolEmAll provides analysis tools for data centers' efficiency according to IT equipment. Moreover, Wang, and Khan [42] presented in their study more metrics in order to measure the consumption of energy performance in data centers. The aim of their study is to know how green a data center is through different matrices and measurements and according to that information, possible techniques can be taken for a data center to go green. They pointed out that there are two methods for going green either to involve green requirements into building the infrastructure of the process or to green up the process of a working data center in everyday usage.

Optimization methodologies
After measuring the efficiency of a data center in an industry, there must be certain measures taken in order to come up with an eco-friendly data center. In their study, Sari and Akkaya [43] mentioned that one of the greatest threats that affect green data centers can be divided into two groups. The first threat consists of the inability to manage the cost crises that are born due to the divergence in determining the efficiency performance technique and calculating the performance of the server. Another threat relates to data centers is the release of carbon dioxide that results from data centers to the atmosphere. The authors presented two methods or techniques for data centers to handle these threats. They first presented a cooling method known as a liquid cooling approach that is put into action. However, its only limitation is that it is geographically dependent, which means it must be located in cold areas so that cold water is formed that will reduce temperature; Middleware Architecture. Reprinted from [16]. and hence, reduce the consumption of energy. Another cooling approach is known as direct cooling that is responsible for reducing energy consumption. It works by implementing cooling coils into the rack to remove waste heat by transferring it into fluids rather than deploying it into the air. In addition, another technique is presented that relates to using energy efficiency servers, which are achieved by using renewable energy resources to power up the data centers. Another way to produce efficient energy that was provided in this study is either the use of virtualization software through a virtual machine or avoids the rapid change between alternating and direct current. The only limitation that these tests face is the need for a huge amount of tests before implementing the proposed techniques. Furthermore, Ghani, Nikejad, Jeong [23] presented in their paper a series of techniques that enable a data center to go green by saving the consumption of energy. They managed to divide their area of work into four fields by presenting energy-saving techniques for servers, energy-saving techniques for networks, energysaving techniques for a combined environment of servers and networks, and finally by energy-saving techniques by using renewable energy. As for servers, it is known that a server is the main consumer of energy in a data center. So establishing power saving environment is vital in this area and it is covered through methodologies such as, server virtualization that tends to minimize the number of hardware in use and decrease the amount of functioning servers through making more than one virtual machine on a server. Another technique -known as dynamic power management -handles putting down the computing servers when they are not in use; thus, helping reduce power consumption.
A third technique, known as dynamic voltage scaling, sets the CPU power according to the level of load. Ghani et al. also managed to cover techniques that help to reduce energy consumption in networking fields due to the fact that network infrastructure is the second consumer of energy after servers by utilizing 30% of the energy used for powering data centers. One of the techniques is known as sleep mode that manages to switch off the network resources or putting them to sleep mode whenever they are not in use. Virtual network embedding is a technique that reduces energy consumption by assigning virtual network resources on a small number of physical infrastructures while the idle network resources could be switched off.
Recent research on green computing in cloud data centers includes energy-aware approaches that utilize several techniques to reduce energy consumption [44,45]. In [44], a hybrid framework was proposed to improve the efficiency of consuming electrical energy in cloud data centers. The proposed energy-efficient framework is based on request scheduling and server consolidation techniques. In this framework, tasks are scheduled after being sorted based on their power and time needs. The framework includes several algorithms: scheduling algorithm to schedule requests, a consolidation algorithm for servers, and a migration algorithm for transferring migrated virtual machines to new servers [44]. In [45], A novel energy-aware technique is introduced to address the green resource management problem in container-based cloud data centers. The proposed approach considers multiple objectives: violation of service level agreements, energy consumption, and the number of both container and VM migrations. The proposed technique is based on a multi-criteria decision-making method where joint container and VM migration are considered in the decision-making process. For that, it utilizes a new joint VM and container consolidation procedure.

Green computing in education
Many work and studies have been made in order to improve the green computer awareness and practices in the education sector.

Awareness on green computing in education sector
The awareness and knowledge of green computing have been addressed by many studies and different surveys where different target groups were surveyed. In [46], Manotas et al. studied the relationship between practitioners and the research community, where they found that practitioners could be more effective in creating efficient applications that consider energy consumption. In 2011, Kogelman conducted a study in which Information and Communication Technology (ICT) managers were surveyed about the use of hardwarefocused energy-efficient methods in organizations [47]. In [29], German software users were surveyed for a study that addressed the environmental issues of software. Results showed that although environmental issues seem to be topics of interest to software users, software's environmental issues are not part of these interests [29].
The findings of such studies prove the importance of spreading green computing awareness from the early stages of people's lives (i.e., in the early stages of education). It is important for educational institutions to start investigating the importance of saving the environment at an early stage [29]. Many studies were conducted in the literature to comprehend the level of knowledge and awareness of green computing among university students [28,48,31]. In [28], Dookhitran et al. conducted a study to check the level of awareness of green computing among students at the University of Technology in Mauritius. The survey was designed for students of the School of Innovative Technologies and Engineering. The main goal of the study was to determine the levels of awareness and knowledge in green computing and its practices [28]. In [48], Selyamani and Ahmad conducted a study that addressed the student's awareness of green computing issues in higher education institutes focusing mainly on hardware aspects. The survey was undertaken by students from higher education institutes in Malaysia. The study findings indicated that students, mainly non-ICT, lack green computing knowledge. In [31], students and academic staff at Botho College in Botswana were surveyed in order to check and measure the levels of awareness regarding green computing and the negative influences of IT on the environment. The study was also conducted to check if any green computing policies are established in the institution. Interviews with staff of the IT department were also prepared and organized. The results showed that the level of awareness regarding green computing is low and that no green computing policies are set in the institution. An overview of some studies addressing the awareness of green computing issues in higher education institutions is included in Table 1.

Approaches to Create and Raise Awareness
The topic of creating and raising awareness in the education sector has been studied in the literature where various ideas have been published. According to [31], creating a website that contains different green computing information, procedures, policies and tips is one solution to create awareness among students in a university. Pang et al. called for extending the aspects of green computing in educational programs [49]. Dookhitram et al. proposed that environmental IT information can be spread by the information channels that are mainly used by the students [28]. Haraty et al. suggested engaging students in educational activities and including awareness campaigns in the educational curriculum [27]. In [50], Suryawanshi presented a number of techniques that raise the awareness of Green ICT such as including an obligatory green ICT program course in all universities, to train learners about the importance of implementing green practices by starting Green Computing Certification course, to present rewards for educational institutions and educators (Green Institute, Green Teacher) that best embrace green practices efficiently as a motivation, effective promotion of green ICT practices and encouraging faculty and students to choose webinars instead of traveling and adopting online education mechanisms in universities that will lead to less carbon footprint [50].

Green computing techniques to be used by educational institutes
Several studies have been conducted and ideas have been published in the literature about the measures that need to be taken by educational institutes in order to improve the practice of green computing [51,52,53]. An overview of some measures is provided in Table 2. Many works and studies have been made in order to improve the green computing awareness and practices in the education sector. However, more green awareness should be raised among students. Educators and educational institutions have a crucial role to play in order to promote and spread green computing awareness among students. Moreover, many measures should be taken and many techniques should be used in order to practice real green computing in educational institutes.

Conclusion
Technology has become a major cause of global warming whenever treated inefficiently. A huge urge is needed to save our environment before it's too late. In this paper, we went over different approaches to "GO GREEN". We also  addressed the software engineering models for green computing, and the four different perspectives for this topic: Green cloud computing, green mobile development, green data centers, and the importance of green computing in the educational sector. Consequently, the usage of green computing by normal people contributes to their harmonic existence in the knowledge society, and this corresponds quite well to the basic objectives of cognitonics [54][55][56][57].
To sum up, this paper is intended to be part of the research that has been ongoing to increase the awareness of people towards this topic and presents different approaches that will help whenever applied in software development.
Online Learning: Reduce the pollution that results from students and faculty travels by adopting online learning techniques such as video conferencing and web conferencing.
Implementing Green Computing in Administration and in Sharing Information: Use of online examination systems instead of paper-based exams, using software application to submit student information such as grades and attendance, reduce the use of papers by introducing online applications, forms and petitions, introducing online system for fees payment, use of online brochures; thus, saving papers and conserving power.
Saving electricity: Educational institutes should consider the huge power consumption that result from the use of computers on its different offices and classes. ENERGY STAR labeled computer equipment should be purchased and should replace energy-inefficient equipment (e.g., LCD monitor instead of CRT one) [50] Upgrading Computers: upgrading specific components (CPU, system memory) in the computer in order to prolong the lifecycle computers and improve performance.
Power Saving Modes: computer power consumption can be managed in an efficient way by using the most "green" and efficient computer powersaving mode. Different modes include sleep mode, hibernate mode, system standby mode, and hard disk sleep mode. The hibernate mode proved to be the most effective among others as it power off the computer completely.
Eliminate Phantom Loads: by using of power strip devices that powers off in an automatic way powered off devices that are plugged into the strip. [51] Virtual Desktop Infrastructure (VDI): exploiting the green benefits of virtualization (operation efficiency, compatibility, ease of management, simplicity of deployment, low carbon emissions, etc.) by implementing VDI in educational institutes. The implementation of VDIs has proved to be powerefficient as it saves power and consumes low energy compared to non-virtual infrastructure. [52]