Ijraset Journal For Research in Applied Science and Engineering Technology
Authors: Abhijeet Kamble, Sahil Kakurle, Manish Shetkar, Malhar Kapshe
DOI Link: https://doi.org/10.22214/ijraset.2022.48292
Certificate: View Certificate
The mobile phones are increasing day by day and the usage is also increasing. Some of the phones have limited space or do not have much memory due to this user\'s face issue related to running mobile. For using memory effectively many of the techniques related to memory management are proposed. In this paper, we have reviewed memory management and its optimization techniques in various available mobile OSs, some of the basic techniques are discussed and comparison of various operating systems have been shown in the paper. Some of the details like which operating system is better and various information related to it is mentioned in the paper. Some of the basic solutions to optimize the memory in mobile OS are also mentioned in this paper.
I. INTRODUCTION
In today’s world, mobile systems are the evolution of the generation. The delta between last decade technology and today’s technology is significantly high such that the world has moved from basic electronics to high end mobile smart phones, which drive the communication across the world and also helps in sharing knowledge. Day by day as the world goes online and more and more people deep dive into digital platforms, they tend to change the flow of physical workflows into online and digital workstations which have drastically changed how people perceive and interact with the so called new mode of living like social media, abundance of applications on both the platforms viz Android and IOS.
Powerful mobile industry not only helps in remote work but also has many other major advantages like increasing productivity, increasing commuting time, that is traveling time. Also, you can provide lots of features like blogging, marketing business modeling, industry products channelization etc. Showing the basis for this device to perform and help in performing these activities are the operating system and the memory that drives Mobiles. To increase the usability of the apps the developers don’t have the sufficient guidance to improve the memory utilization and memory space.[29] So this paper concurs on covering the basics of memory management, various techniques and also the detailed structure of how memory actually works in a mobile. Other than studying the operating system of mobile management we will also see by comparison between different files and different memory architectures. The major parameters for comparing different operating architectures are the power management capacity, connectivity between the networks, cross platforming, memory optimization and memory utilization, battery management, Processors, interfaces and execution of software in the diversified medium of its own operating system.
OS carries out the memory management in a mobile by allocating and deallocating the memory. Static and dynamic memory management are two general allocation techniques used by OS. There is a possibility of memory wastage in static allocation as it cannot be changed in runtime. Dynamic allocation overcomes this issue as memory is allocated at runtime.[30]. The mobile operating system is basically divided into various interfacing layers such as application layer, middleware layer and hardware layer which will be discussed in some sort of detail in this paper as we proceed.[19]
The task of studying OS is to make sure to be hidden from the user. It's the basic structure on which the entire workflow of making and assembling the application rests. The main feature to perform tasks in any given mobile environment is not only the operating system but also the key element that differentiates the working of mobile systems is the choice of operating system that is available and secondly that is available should be developed for that operating system.
II. LITERATURE REVIEW
In this work they [1] taught us how RAM can be accessed in mobile operating systems, how RAM is filled and freed by using applications in Operating systems. There are some solutions given in this work, to optimize memory for smooth running of devices and also to use less RAM for background apps running. General features of Android and IOS OS, Android has a higher battery requirement than IOS, Android has garbage collector in it whereas IOS doesn’t have it.
[2] In this paper the author discussed the issues with the memory space in mobile operating systems. One of the major problems they have faced is terminating the mobile applications when they run out of memory space. So to resolve such issues they have developed a virtual memory swap architecture which is the efficient method in today's mobile operating system. The architecture described that the nonvolatile memory is resided in DRAM memory and secondary storage. The idea behind the architecture is to remove the hot data from DRAM memory into nonvolatile memory because the energy consumption of nonvolatile memory is very low and it has low latency as compared to DRAM. [3] In this work they have shown an effective algorithm to manage memory in smartphones in today’s world and they also found some flaws in the existing system which are affecting performance of smartphones.
We have understood from this work how one can efficiently load applications without using much RAM of a smartphone, how one can efficiently distribute memory to every component in a smartphone, and how one can improve loading time of apps in smartphones. Also, we can create an android app which can reveal free memory, hit rate, running processes etc., shown in this work.[4] Talking about the memory management for various mobile operating systems, many users nowadays are eager to use smartphones and use new apps but the problem arises in memory. There will be a small amount of space in memory and the users are eager to use high quality apps and it is difficult to manage such applications in such memories. So to fulfill the wishes of users the manufacturers try to increase the capacity of RAM. But according to the authors, increasing the RAM capacity is not the proper solution to improve memory capacity. [5]So mobile operating systems kill applications when memory space is not available. So the author tried to approach another method which is swapping to disk. So they enabled a Linux swap file on an Android test device and measured the time of memory allocation. According to them it took a long time(in seconds) to allocate the memory in Android where the user needs the allocation and working of the app in milliseconds. So, they tried out another technique which is Ahead of time swap. This paper [6] discusses the usage of main memory by analyzing the use of applications. According to the author, day by day the size of applications is increasing so there is a need to increase the space of main memory so that the applications can easily run-on operating systems. The execution time of application will be reduced by keeping the reusable applications in main memory.
This paper discusses [7] about the smartphone architecture which discusses the different versions of RAM in a particular mobile phone and also analyzes the mobile evolution and signifies about how this technology can provide high performance and efficiency in processes of performing high power efficient tasks within the same CPU environment. After focusing on the architecture of the mobile phones the authors focus on the architecture of memory and the correlation of memory in various different industrial applications many industries leading top of the notch memory solutions have been even introduced these memory subsystems are made in a manner so that it can generate high performance even at low power consumption the best example phone search architecture is LPDDR 3 and LPDDR 4 technologies.
Also use and application of DRAM technology is highlighted in the forthcoming literature in this paper. The side effect of the workloads of mobile systems can be reduction in performance and change in the endurance of the components in terms of access patterns, data chunk sizes etc. Also the authors discuss and describe high level leading technological patterns included in memory management solutions for example eMMC and UFS. Finally, some relevant use cases (high resolution videos, high resolution photos, apps and gaming responsiveness, and fast interconnects) have been considered and described with an emphasis on memory. This paper[8] has two main sections, the first one gives an overview of different parameters of any mobile phone like its security, memory management and performance. Second section then describes a detailed note on the section one point for each operating system viz. android, IOS and also windows, MacOS and Linux.
In this paper [11] analysis of RAM utilization for android applications is done. Android OS supports UTF-8 encoding for text in SMS.As a Double amount of space is required in internal memory for storing the SMS because UTF takes twice the number of bytes to that of regular character encoding. Internal storage, exchange memory, and external memory are the three forms of memory in the Android OS. Text messages, multimedia messages, call logs, calendar functionality, as well as other data are stored in internal memory.
In this paper [12] the author has proposed different ways of memory optimization in Android OS. Automatic Reference counter or ARC is explained in this paper and how it can be used to improve memory management in android rather than trying to improve the current structure of garbage collection.[13]This paper points at shortcomings and disadvantages of garbage collector, a tool of JVM that android uses and the inconvenience it causes as a result to the user. The main problem highlighted here for memory management is the way the garbage collector frees the memory of unwanted(dead) objects. Such problems and solutions are discussed in detail, such as memory leaks and how to control them, managing background apps, avoiding memory duplications, and handling low memory situations. This paper [14] discusses the various mobile phone technologies available In the market and about various mobile phones. There are two popular operating systems which are used in mobile phones are android and iOS. This paragraph calculates the major differences in operating systems in memory management. [15] The memory usage in android is comparatively greater than iOS. The process running in the background is not efficiently processed whereas iOS background is efficiently processed. The major difference between two is security concern. With the arrival of the new process the android operating system may kill the existing process whereas it is not true in iOS it freezes for some time.
Android as well as iOS is not capable of loading a large number of apps. Shortage of memory may kill the process in android whereas in iOS freezes the background process As the paper[16] discusses, the number of running software’s on mobiles are increasing day by day because of the software stores like Google Play Store and apple store. These stores are provided by the mobile operating systems, so the user can avail the software’s. the mobiles have the limited space for storing the software’s so the operating systems uses the memory management solutions like Low memory killer (LMK) and out-of-memory killer (OOMK). these topics are covered in this paper. This paper also represents a new memory management technique unlike Low memory killer (LMK) and out-of-memory killer (OOMK). [17] This paper tells about the best mobile user experience and how the environment of the mobile should be, because users are expecting more from the mobile operating system. To solve this problem device manufacturers, increase the RAM of the device as this is not the permanent solution. This paper completely talks about apps, when the user leaves the app is not destroyed but stored in the free memory which is present in the device. This paper discusses novel memory reclamation schemes such as smart lmk. This paper has recognized the demerits of the running process-level reclamation scheme.
The author also discusses priority and process states for applications. The manner in which the processes are killed to free memory resources depend on their priorities.
III. FLOWCHART
IV. WORKING
Here we will discuss how memory allocation is done and how it works. The system works in different parts like Garbage collection, share memory, allocate and reclaim memory, restrict app memory and switch apps. So, first of all it checks whether a piece of memory is in use, if the memory is no longer in use it frees it back to the heap. The process for reclaiming the memory back to the heap which is no longer in use is called the Garbage collection.
When there is very high memory usage because of many simultaneous running applications and we reclaim the memory back, sometimes page re-faults also occur when the system wants to use a already killed page. Page re-faults increases when the memory size is less or when there are large number of applications running on the memory simultaneously. Each heap generation has its own memory space for objects to occupy. If sometimes a generation fills out then the system executes the garbage collection to free up the memory space. Next process is the shared memory here. To access fast we need to use RAM where there is a need to share the objects as per the requirements.[18] The size of the heap is not the same as the main memory. The next process is the allocating and reclaiming app memory. Android only makes the heap size shorter when there is no use at the end of the Heap. So using the garbage collection we can remove the unused pages and whatever allocations were done that can be deallocated using garbage collection and also we can reclaim the memory. In these processes there will be restriction for app memory if our app has reached the heap capacity and we are trying to allocate memory then there will be error and finally there will be switching of the apps for better performance of the android.
RAM is utilised in Android, as it is well known, as a container to just keep instructions ready for the CPU. The RAM of the device is loaded from the device memory when an application is running on it. This increases the access speed and reduces the access time in the system. Following the initial loading of the graphics, tools, icons, etc. in RAM, any remaining RAM is used to load following applications. There will be space for the upcoming programmers to use the RAM, thus in order to provide space for them, we must flush the RAM that is currently in use.
When the OS starts up, all the graphics, widgets, etc. are rendered and this is the reason why RAM can’t be 100% cleaned. In Android, any application is always running in the background so we will never find out RAM is null. In this way our Android’s memory is being utilized and worked inside Mobile.
V. MEMORY OPTIMIZATION TECHNIQUES
Basically, when a mobile application runs, it has to be loaded from the secondary memory (device memory) into the RAM. The background mobile applications will automatically be loaded back into the RAM after all application execution when this application is being cleared or ended, which immediately results in a decrease in the available space. Therefore, memory optimization is necessary for mobile to function properly.
These are some solutions to optimize the memory in mobile OS:
A. Avoid Creation of Unnecessary Objects
The program's garbage collector will automatically free up memory space that has been allotted to programs that are no longer required. The creation of new objects in the program causes the garbage collector to run because it is not free. The garbage collector traverses from base to end to recollect the memory from unused objects to enhance the performance of the system. So, creating unnecessary objects will not work.
B. Avoid Creation of Unnecessary Classes in Programs
In C++, java programming languages whenever we are creating unnecessary classes then it is necessary to create their objects which leads to consumption of memory to store the objects.
C. Utilizing Efficient Data Containers
There are several libraries in efficient data containers like Array Map, Sparse Array. These all the libraries are the substitution of HashMap library because the Array Map consumes less memory than HashMap but it performs slow operations. So these libraries must be used when the instructions are less.
D. Include Cache Memory Technique
It is temporary memory it enables to access some information quickly than accessing the instructions from program memory. It stores the data temporarily and it is commonly used by CPU.
E. Cache Cleaning
When an Android system needs resources for additional processes in the future, it will invoke the appropriate memory cleanup mechanism so that the memory can be reused.
F. Prefer Primitive Types Over Object
Like an integer type boxed object uses four bits of space as compared to int-primitive types uses 1 bit, so we should be using this type of data types more for wherever required. So, we will be using primitive types over boxed type objects.
G. Using Static Constants Over Enums
We will be using static final variables over enums for the use of constants. Because enums consumes more memory than static constants.
VI. COMPARISON
Each operating system present in the market has its unique features, functionalities and loopholes which distinguishes it from the other. Mobile OS such as Symbian, iOS, android and windows etc. have their own different ways of memory management.
In the above paragraphs we have seen the detailed study between the Operating systems depending on the operational factors and going through all the characteristics of each system and its difference from the one another. In future, no. of Operating Systems that will be researched will be included.
Mobile industry and communication systems are driving the future in the that no one could have even imagined in the past decades the technology has grown from tiny microprocessors and electronic chipsets to advanced touch screen devices which are not only capable of communicating but also performing various features like working remotely for offices, promoting and deploying businesses and enhancing entrepreneurship. Apart from mainstream activities, there are also many sides hustle, enjoying, recreational activities like gaming, streaming, mining in cryptocurrency and the list goes on and on and on. So, for such powerful use of mobile phones, we need a strong and capable backbone in mobile system, for which we have studied the basics of memory management and also dwelled upon the major important phenomenon in mobile operating systems. Then we have also studied various different techniques that were listed and proven by great individuals in the past that help in optimizing the memory in certain ways which benefit the mobile system in general. After learning the techniques, we have briefly studied about how the memory is actually managed and is taken into working with the help of a well-defined flow chart which explains the cycle of the memory synopsis. We end our paper with basic differences between various other operating systems that are present like the iOS, Windows. Blackberry and but of course Android.
[1] Vimal, Kumar, and Aditya Trivedi. \"A memory management scheme for enhancing performance of applications on Android.\" 2015 IEEE Recent Advances in Intelligent Computational Systems (RAICS). IEEE, 2015. [2] Kim, Jisun, and Hyokyung Bahn. \"Analysis of smartphone I/O characteristics—Toward efficient swap in a smartphone.\" IEEE Access 7 (2019): 129930-129941. [3] Vimal, Kumar, and Aditya Trivedi. \"A memory management scheme for enhancing performance of applications on Android.\" 2015 IEEE Recent Advances in Intelligent Computational Systems (RAICS). IEEE, 2015. [4] Aponso, G. C. A. L. \"Effective memory management for mobile operating systems.\" American Journal of Engineering Research (AJER) 246 (2017). [5] Lebeck, Niel, et al. \"End the senseless killing: Improving memory management for mobile operating systems.\" 2020 USENIX Annual Technical Conference (USENIX ATC 20). 2020. [6] Lee, Jaehwan, and Sangoh Park. \"Mobile memory management system based on user\'s application usage patterns.\" Computers, Materials and Continua 68 (2021): 4031-4050. [7] Schulze, Hendrik. \"MEMOS: a mobile extensible memory aid system.\" Telemedicine Journal & e-Health 10.2 (2004): 233-242. [8] Awan, Khalid Mahmood, et al. Resource management and security issues in mobile phone operating systems: a comparative analysis. No. e3344v1. PeerJ Preprints, 2017. [9] Lee, Jaehwan, and Sangoh Park. \"Mobile memory management system based on user\'s application usage patterns.\" Computers, Materials and Continua 68 (2021): 4031-4050. [10] Sisodia, Rekha, and Kavita Sharma. \"Comparative Study of Memory Management in Different Mobile Os: A Review.\" International Journal of Advanced Research in Computer Science 6.5 (2015). [11] Kayande, Deepali, and Urmila Shrawankar. \"Performance analysis for improved RAM utilization for Android applications.\" 2012 CSI Sixth International Conference on Software Engineering (CONSEG). IEEE, 2012. [12] Tasneem, Kashif, Ayesha Siddiqui, and Anum Liaquat. \"Android memory optimization.\" International Journal of Computer Applications 182 (2019): 36-43. [13] Sharma, T. N., Mahender Kr Beniwal, and Arpita Sharma. \"Comparative study of different mobile operating systems.\" International Journal of Advancements in Research & Technology 2.3 (2013): 1-5. [14] Lim, Geunsik, Changwoo Min, and Young Ik Eom. \"Virtual memory partitioning for enhancing application performance in mobile platforms.\" IEEE Transactions on Consumer Electronics 59.4 (2013): 786-794. [15] Kim, Sang-Hoon, et al. \"SmartLMK: A memory reclamation scheme for improving user-perceived app launch time.\" ACM Transactions on Embedded Computing Systems (TECS) 15.3 (2016): 1-25. [16] Renner, Thomas. \"Mobile OS-Features, Concepts and Challenges for Enterprise Environments.\" SNET Project Technische Universitat Berlin (2014). [17] Dei, Jyotsna, and Anindya Sen. \"Investigation on Trends of Mobile Operating Systems.\" International Journal of Engineering Research & Technology (IJERT) 4.07 (2015): 764-775. [18] Bickford, Brad. \"Nonvolatile memory requirements in a mobile computing environment.\" Proceedings of Nonvolatile Memory Technology Conference. IEEE, 1996. [19] Wen, Fei, et al. \"Hardware memory management for future mobile hybrid memory systems.\" IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 39.11 (2020): 3627-3637. [20] Divya, K., and Venkata Krishna Kumar. \"Comparative analysis of smart phone operating systems Android, Apple IOS and Windows.\" International Journal of Scientific Engineering and Applied Science (IJSEAS) 2.2 (2016): 432-439. [21] Studying Main Differences between Android & Linux Operating Systems [22] Krishna, YK Sundara, and M. G. K. Devarakonda. \"A Survey on Architectures of Mobile Operating Systems: Challenges and Issues.\" International journal of research studies in computer science and engineering 3 (2015): 2. [23] Lin, Felix Xiaozhu, Zhen Wang, and Lin Zhong. \"K2: A mobile operating system for heterogeneous coherence domains.\" ACM SIGPLAN Notices 49.4 (2014): 285-300. [24] Hussein, Ahmed Mohamed Abd-elhaffiez. \"Effective memory management for mobile environments.\" (2016). [25] Grønli, Tor-Morten, et al. \"Mobile application platform heterogeneity: Android vs Windows Phone vs iOS vs Firefox OS.\" 2014 IEEE 28th International Conference on Advanced Information Networking and Applications. IEEE, 2014. [26] Degu, Abebaw. \"Android application memory and energy performance: Systematic literature review.\" IOSR J. Comput. Eng 21.3 (2019): 20-32. [27] Omar, Nihad Ramadhan, Rezgar Hasan Saeed, Jihan Abdulazeez Ahmed, Shilan Bashar Muhammad, Zainab Salih Ageed, and Zryan Najat Rashid. \"Enhancing OS Memory Management Performance: A.\"
Copyright © 2022 Abhijeet Kamble, Sahil Kakurle, Manish Shetkar, Malhar Kapshe. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Paper Id : IJRASET48292
Publish Date : 2022-12-22
ISSN : 2321-9653
Publisher Name : IJRASET
DOI Link : Click Here