A Framework for Optimization of Power Consumption in Mobile Computing Devices

Battery driven computing devices such as laptops and cellular phones have become a necessity in this era. Mobile applications help us in daily life activities and with the rise of Internet of Things (IoT) new opportunities are open up to automate different task. However, batteries have their own limitations such as weight, cost, and size. Multiple applications and background processes running in parallel easily drain phone’s battery within 24 hours consequently annoying users by limited battery capacity. Repeated charge, recharge cycles steadily diminish the full capacity of batteries resulting in the immense decreased performance of the device. Therefore, mobile devices and mobile applications are in great need of energy-aware modules. In this paper, a survey is performed to identify the needs of the mobile user in the context of energy consumption problem. The results of survey lead authors to propose a middle layer energy aware framework to address this issue. The proposed framework highly relies on the association between the operating system, application, and end user. The main objective of the proposed framework is to maintain an energy-aware capability to facilitate end user and mobile applications. The major components of the proposed framework are processing engine, application classifier, application resource management, system profiling, application modes, power estimator and power policy management. Proposed framework also offers a policy manager algorithm based on research community feedback and survey's results. Proposed framework emphasizes on energy efficient execution of mobile operations for end user and operating systems.


INTRODUCTION
Now-a-days, the use of smartphones is rapidly increasing due to the computational environment, mobility, IoT services and convenient applications [1]. The smartphones are used to create and edit audio and video files, transfer files using Bluetooth, access social media, navigate destination using Global Positioning System (GPS), internet browsing, email, and many other useful operations. However, they have inadequate battery capacity because of limitation of weight, cost, and size. Ever since, the lithium-ion batteries have half or third energy density of their theoretical limits [2]. Further, repeated chargerecharge cycles steadily diminish the full capacity of batteries. Therefore, energy utilization is a primary concern for mobile computing devices in terms of performance. Powerful device means a high utilization of power. Therefore, efficient energy consumption is the need of the hour. These devices offer a standardized configuration interface in order to manage the power control of the operating system. However, if the operating system is unaware of the 636 energy requirements of running applications; it cannot take a decision to conserve power. Hence, power management should also be focused at the application level. Generally, developers focus on portability, high graphics and animations during application development, consequently increasing energy requirements. Further, there are other aspects such as screen brightness, color scheme or contrast and font size [3].
Most of the time, users are also uninformed of simple power saving options like brightness, display, and Wi-Fi power saving setting etc. They do not have any time to read user manuals and often user manual does not provide adequate information. This phenomenon leads to the need for application-aware adaptive power management. User's involvement and the association between application and Operating System (OS) cannot fully identify the priorities of power management applications [4]. If an application is consuming too much energy, the operating system limits the recourses accessible to it, causing frustration in user. The user can play an important role in power management because applications are not always acquainted with the information on user preferences. Every user has its own preference, for instance, one user may prefer maximum performance over battery utilization. On the other hand, another user may prefer efficient power utilization over performance and speed. In accumulation, the trade-off between energy utilization and performance may differ. It totally depends on the application workload. Therefore, user preference is essential. User feedback can be obtained occasionally when the battery level drops to a certain limit. Hence the system can adapt the user requirements and OS can provide energy-related information for all the applications such as profiling, predicting energy usage and lifetime.
In this paper, an adaptive power management scheme is presented, based on the association between OS and application. Apart from the involvement of the operating system and application the user preference or requirements are also significantly considered in the proposed power management scheme. Our major contribution is the reduction of energy consumption using middleware active power management approach. The middle-ware module comprises of system profiling, application classifier, power estimator, processing engine and policy manager.
The paper is organized as follows. Section 2 presents related work. Section 3 describes prominent state of the art approaches based on focused parameter. Section 4 holds the results of survey questionnaire. Proposed framework is presented in Section 5 followed by conclusion in Section 6.

RELATED WORK
This section describes the prominent work in the field. Study of recent literature clearly shows that the optimization of power consumption can be a loss of performance. No prominent survey exists on middleware energy adaptation for computing devices, especially for mobile devices. There is always a hidden trade-off between performance and energy conservation as shown in Fig. 1. Therefore, it cannot be utterly ignored but can be minimized [5][6][7]. Energy management varies at different level of abstraction are at transistor level, architecture level, system level and application level as shown in Table 1 [8]. Parm is a distributed middleware framework [9]. This framework is power-aware and reconfigures itself using graph theoretic approach to adapt to diminishing power levels of low power devices.
Further, middleware systems with independent local adaptation so exist in the literature [10][11]. These systems map the application requirements and battery statistic to device operating states, for instance, IDLE Energy aware algorithm implemented in application such as multimedia apps and association between operating system and application. mode network interface and very CPU (Central Processing Unit) frequency. Such types of middleware dismiss the adaptation to the changes in low-level circumstances.
Rajmani et. al. [12] proposed an application-aware approach offering a sophisticated power management solution to obtain energy savings. They focused to monitor current workload for adaptive and dynamic power management. Another cross-layer framework called Dynamic and Adaptive Distributed Middleware for Mobile Power Cognizant Computing (DYNAMO) was presented in [13] was assessed on Compaq iPAQ running Linux using streaming video applications. They presented noticeable improvements in the requested video stream quality.
Chen et. al. [14] proposed framework to build power aware real-time soft application with respect to user expectation. This framework enables an application to monitor its own progress and dynamically regulates the processor frequency to complete its job within the deadline, despite adapting Dynamic Voltage and Frequency Scaling (DVFS) technique.

STATE OF THE ART APPROACHES
This section describes the prominent work done for efficient energy utilization in mobile applications in Table 2. Kumar et. al. [15] Impact of Quality of Experience (QoE) of user in mobile cloud ecosystem under three components such as mobile, network, and cloud system. QoE has four components, i.e., completion time, energy consumption, monetary cost (server or network usage, security).
Pasricha et. al. [16] They proposed application aware and user interaction aware energy optimization framework for mobile devices. Their approach for classifying applications is based on user interaction patterns using Bayesian classification.
Li et. al. [17] They proposed an energy optimization framework, guided by source code energy model that allows developers to be aware of energy usage induced by the code and apply targeted source level refactoring strategies. The proposed framework also lays a foundation for the code optimization by automatic tools.
• Source level energy consumption that save 50.0 percent CPU usage.

4.
Yousafz ai et. al. [18] They proposed computational offloading solution for android based mobile applications that contains the concept of context switching in an operating system. Computational offloading requires infrastructural supports from cloud data centers to provide offloading as a service.
• Computational offloading al. [19] The proposed a context adaptive mobile middle ware for Mobile Cloud Computing (MCC) and Mobile Edge Computing (MEC) that supports automated context adaptation by combining the features of mobile middleware with context aware self-adaption techniques.
Hu et. al. [20] They explored that how infrastructures of mobile application can improve latency and energy consumption relative to cloud. They described experimental results from Wi-Fi and 4G LTE network.
• Energy Consumption • Response Time

7.
Chalae mwongwa n et. al. [21] Focused on mobile's restricted performance parameters and to address these issues, Offloading computation is MCC (mobile cloud computing). They proposed Offloading process is, Mobile application's code are processed on cloud while execution is returned by different architectural technicalities.
Heterogeneity including security concerns at abstract level.

8.
Abusair [22] Context aware may effect system quality and user satisfaction they proposed a software quality matrix, user satisfaction model under contextual situation and service availability model.
Abusair et. al. [23] They evaluated the architecture using cyber physical system environment, driven by energy consumption and human safety.
They developed an approach that helps in determining the architecture adaptation to be applied at given scenario, preserving energy consumption and human safety.
Zhang et. al. [24] They proposed an energy efficient offloading in mobile cloud for real time video application and verified its effectiveness using trace driven simulation.
• Real Time Video Application 11.
Rault et. al. [25] A survey of energy efficient context recognition systems using wearable sensors for healthcare applications. This study explores the energy estimates and modeling schemes to highlight their pros and cons.
• Comparison of exiting models at different common parameters 12.
Beghou r et. al. [26] They proposed an energy consumption profiling and evaluation tool to identtify the green efficiency of mobile and desktop devices during development stage.
• Energy Consumption Profiling

13.
Abusair et al. [27] They proposed context aware monitoring and system adaptation technique to saving time and energy.
Ahmad et. al. [28] A survey on energy estimation and power modeling schemes for smartphone application. They proposed an energy efficiency classification mechanism for health related applications.
Ahmad et. al. [29] They proposed a Battery Aaware Rate Adaptation (BARA) scheme for multimedia applications, which adopts appropriate bit rate to prolong battery lifetime.
• Device's level battery • Wireless to determine the best transmission rate.

16.
Orsini et. al. [30] Mobile devices are limited in terms of computation, storage and battery life. To solve these issues the authors evaluates 40 different existing solutions based on different applications requirements. They proposed a cloud-aware approach that supports automated context-aware self adaptation techqiues.
Jose et al. [31] They provide User Level Online Offloading Framework (ULOOF) for mobile edge computation. They dont require a modification in the device's operating system.

639
Pinto et. al. [32], two perspective are most important to focus, first software engineers and second end user's perspective. Software engineer's perspective, is that energy inefficiency may impact the negative impact on application's revenue and end user's should be aware of different energy characteristic. This survey contains two perspective end user's and developer's perspective. Saqib et. al. [33] identified performance as the most important factor in mobile phones. However, they did not focused on perspective of end users for energy issues in mobile phone. We have conducted this survey to identify user issues and requirements in the context of energy-related issues in mobile devices and mobile applications. Recently, energy consumption and power dissipation is a significant issue in information technology and computing devices such as desktop computers, laptops, and smartphones.
Survey had two targeted audiences, first, the end users and second the application developers. We arranged survey using Google Docs platform to receive feedback from respondents. End user's questionnair is shown in Table 3 and Developer's questionnair is shown in Tabel 4.
We also used other mediums such as posting survey link through other channels such as email and social. We attained 61 replies of our online survey questionnaire. The survey results revealed that long battery life of smartphones is the most concerned feature. It is consumed most for the games and social media. Further, powerful machines have higher battery utilization with performance.
According to the survey's section of end users, battery is one of the most concerned feature for the user at the time of purchasing a smartphone. In fact, 91% of users get frustrated with the low battery. Sometimes 70% users need to delete application due to high battery utilization or 55% users need to use extra device such power bank. Results of end user's feedback are illustrated in Fig. 2(a-f). It also depicts that sometimes; user gets frustrated with the adaptive behavior of the application whereas our proposed framework provides capability to adapt the behavior of application with user concern.
Results of the application developer's feedback are shown in Fig. 3(a-f). According to the survey, the policy management, system profiling, adaptive   Which application consumes more battery? Energy utilization could be reduced at application level with middle layer approach between operating system and application, that contains all resource with respect to power utilization. 640 behavior of applications are significant features helpful to reduce energy requirements. The results of this survey were helpful in identifying the user's priorities. The results of the survey formed the basis to propose an energy-aware framework described in the next section.

PROPOSED FRAMEWORK
Review of the state of art approaches in Table 2 have revealed that a number of researchers have proposed their ideas but not in the form of a proper framework. Secondly, most of them have focused on just mobile video streaming scheme to increase battery life. Moreover, none of them have introduced an intermediate layer in their proposed approaches. Whereas, we focus to present the idea of more generalized approach based on middle layer framework to reduce power consumption. We have also proposed to use application's modes based on power estimation in our framework. On the other hand, previous approaches do not consider to utilized application's modes. Further, to the best of our knowledge, none of the previous approaches have introduced the idea of policy manager. Proposed framework also offers a policy manager algorithm based on research community feedback and survey's results. Proposed framework emphasizes on energy efficient execution of mobile operations for end user and operating systems.

641
Our proposed solution comprises of the server, wireless network, and mobile client device as shown in Fig.4. The communication between server and clients is performed through a wireless network. The computing device is signified the same as processing four layers such as the application layer, middleware, operating system, and hardware. The foremost energy consuming sources reside on hardware layers such as CPU, backlight and a NIC (Network Interface Card). The next level is the operating system that is a set of programs to synchronize all the activities among computer hardware resources, services and applications. The major functionality of OS is process synchronization, thread management, resource allocation, CPU scheduling, memory management, I/O devices, file management, networking, protection, interrupts and trap handling.
The middleware layer, which is responsible for the energy management as shown in Fig.5. The application layer is responsible to provide applicationspecific context to middleware. The proposed middleware framework adapts the policy according to user requirement. Assuming the user is unaware of the power consumption elements, it provides the energyrelated information so that user could manage it accordingly. The operating system is responsible to resource allocation etc. This layer is hidden from user. User does not need to understand critical concepts such as energy models etc. The proposed solution is a components based solution, and every module has unique functionality. The detailed description of each module in described as following sections.

Application Classifier
Application classifiers provide the information regarding application type by examining the memory and characteristics of the application. The applicationclassifier takes the starting state information about the new process from the process engine. This module can be implemented through the Naive Bayes algorithm [34]. It defines class by examining the feature variables such as an apple is a fruit if it has red color, round and 3-inch diameter. This classifier is also responsible to recognize the new application by estimating the memory and another characteristic of the application. In a particular scenario, the application class is network intensive because CPU usage and network transmission can be high and low.

Application Resource Management
This module is responsible to handle multiple resources. It processes requests of resources and extracts the resource information from adjacent devices. It has two interfaces. First one is used to process the information requests for hardware and OS.
Other is used to control the hardware device. Application resource manager also maintains the event system and forwards events such as process start-up, termination, battery status and change in network condition upon information requests from the processing engine. The resource manager is also responsible for device level specification such as detection of Bluetooth and 3G network.

Process Engine
This module is responsible for scheduling of power adaptations. It is driven by the events from the resource manager and modules of middleware. Firstly, it forwards the actions to application classifiers and requests to power estimator to report power consumption estimation. Then it requests adaptive policy from policy manager. Then executes the consequent policy after receiving the policies from the policy module. The processing module is also responsible for monitoring the adaptation so that conflict could be removed. In other words, concurrent adaptation may possibly pilot conflict.

Power Estimation
Power adaptation scheduling depends upon the breakdown of energy consumption among different applications and hardware components. This module evaluates the energy consumption consumed by particular applications for the period of the required

643
duration based on application level energy modeling. Power estimator is also responsible to evaluate the power requirements regarding different application modes. Power estimator at application level caters the application's details whereas system level power estimator only focuses on system-wide power without having a concern with application detail requirements.

Power Policy Management
Policy module is responsible for activation decisions according to information provided by the rest of the components depending upon workload, performance constraints and system history. It accumulates adaptive policies written in semantic languages. It chooses the policies to go with requests such as application and background settings transmitted from the processing mechanism. The policy module is active during run time so that requests could be entertained from a processing mechanism. For instance, the quality of video or browsing content also depends upon application modes. As the mode changes, video content will reduce its quality and also the browsing content will show only the important filtered content. If it is less than equal to 95% and greater than 70% then there will be no adaptation. If the battery level is between 40% or 60% and estimated power consumption is greater than the existing battery level, disable device-level component which is idle or running in a background process. Then intimate the user about change the application mode and quality that is suitable for existing battery level according to the estimated power done by the power estimator as shown in Fig. 6.

System Profiling
The system profiling is a component which is responsible to collect information at runtime such as local and global parameters and also device level settings. Local parameters are CPU frequency, memory info, residual battery info, backlight light setting, detection of devices (Bluetooth, infrared etc.) and brightness. The global adapter provides the dynamic change in bandwidth network load.

Application Modes
This element of framework focuses on adjustment of application's modes. The mode adjustment is adapted according to the power analysis of features and battery status such as airplane mode on mobile phones, incognito on chrome and on camera scene mode etc. Video application modes are landscape mode and portrait mode.

CONCLUSION
Energy management middleware is an enduring research area. It is getting more essential since energy is a limited resource. Constructing generic automatic middleware platforms or architectures is an open and significant research area. Our proposed framework is an idea to address the energy management issues as identified in the survey. In the next phase of this research, we aim to practically develop this framewok and test its effectiveness by deploying it on smart phone. Implementation and deployment will help to perform statistical evaluation of proposed framwork for mobile applications and smart phone system policies.