Discipline: Computer Sciences and Information Management
Subcategory: Computer Science & Information Systems
Elliot Gottfried - North Carolina A&T State University
While both the Android and Windows operating systems manage RAM effectively, there are some significant differences. The goal of this project is to measure the difference in how the two operating systems react to a memory stress situation.
To stress the memory management of the Android mobile OS and to measure how it reacts, an app creates multiple foreground activities to allocate memory resources. Android has a default security mechanism that sets a hard limit on the heap size in order to prevent apps from using all available memory. Android can also kill a process; any application component, including any background threads can all be consequently destroyed at any moment to release resources as needed. In this test, a monitor program is used to synchronize multiple activity programs in order to bypass the default security features and to stress memory management. The monitor program measures how long it takes for each activity to execute basic memory operations as other activity programs allocate more memory resources. Each individual activity program executes the exact same number of instructions. The difference in the execution time of the activity programs are due to the memory management issue because the Android system tries to maintain an application process for as long as possible (this saves battery life), but eventually needs to remove old processes to reclaim memory for new apps or more important apps. These results are analyzed by the monitor program for how the Android handles running new activities as other activities are decided to remain or be removed from memory.
A similar program on Windows starts multiple programs of different sizes and measures the execution time of the programs. Windows supports virtual memory and can run more programs than there is RAM to hold. The results of the two systems were graphed and compared. The different operating systems respond differently to a sudden demand for main memory.
Both operating systems demonstrate a slowing of the applications as the memory load increases. Windows shows a smaller impact up to a point. Once the main memory is saturated, the virtual memory system starts to thrash and performance is greatly degraded. The programs will run, but very slowly. The Android system does not allow the machine to be overcommitted and will terminate idle apps to free memory.
The systems react differently, but have different goals. Nobody is running high performance computing on their phone. Android was developed for short lived, interactive apps. Windows supports this along with a high performance, heavy load environment. Different memory systems respond in different ways for different purposes.
Not SubmittedFunder Acknowledgement(s): This work was supported by National Science Foundation Historically Black Colleges and Universities Undergraduate Program (HBCU-UP).
Faculty Advisor: Ken Williams, williams@ncat.edu