Separate Summaries Os
Separate Summaries Os
SUMMARY :
This paper introduces a Priority-Based Preemptive Task Scheduling approach to improve
Android's process and thread management, focusing on SMS applications. Android's
architecture, built on the Linux kernel, uses the Completely Fair Scheduler (CFS) for task
management. The paper proposes a system where high-priority SMS messages interrupt
ongoing tasks, flashing on the active screen while being stored in a Priority Inbox. This
preemptive scheduling interrupts lower-priority processes, ensuring immediate response to
critical tasks. Android's existing thread management isolates processes, allowing background
tasks to run without affecting other apps. The approach enhances resource allocation,
optimizing CPU usage, and ensures better performance in time-sensitive scenarios. The
proposed system improves user experience by efficiently managing critical processes,
preventing delays. By leveraging Android's multitasking framework, this solution balances
responsiveness and efficient thread management in mobile environments, ensuring real-time
task handling for important applications.
RESEARCH PAPER NO. 2
Android Operating System
Nimesh K. Ekanayake
Published By: Researchgate.net
SUMMARY :
The paper discusses Android Process and Thread Management, highlighting how the Android
operating system efficiently handles multitasking and resource allocation. Processes in Android
are categorized into different types: foreground, visible, service, cached, and empty, with
foreground processes having the highest priority as they directly interact with the user. Android
automatically manages these processes, terminating low-priority or unused processes to free
memory and ensure smooth performance without manual intervention from developers.
Thread management is crucial for maintaining app responsiveness, as each app starts with a
main (UI) thread, while background tasks must be handled by worker threads to avoid blocking
the UI. Android provides tools like **AsyncTask* to help developers manage background tasks
safely. In terms of CPU scheduling, Android leverages Linux’s time-sliced scheduling, balancing
static and dynamic priorities to allocate CPU resources efficiently, ensuring that high-priority
tasks get more CPU time when needed. Through these mechanisms, Android maintains an
optimized balance between process management and resource utilization.
SUMMARY :
The paper delves into Android Process and Thread Management, highlighting how Android
efficiently manages system resources to handle multitasking. Android categorizes processes
into foreground, visible, service, background, and empty, with foreground processes receiving
the highest priority. To optimize performance, Android automatically kills lower-priority
background or empty processes when system resources are low. For thread management,
Android uses Java threads, where each thread has a priority, and the main (UI) thread handles
user interactions. Background tasks are handled by worker threads, and tools like AsyncTask
ensure smooth operations without blocking the UI. Additionally, Android’s inter-process
communication (IPC) mechanisms, such as Intents and Android Interface Definition Language
(AIDL), allow processes to communicate while maintaining security. Through automatic process
handling and efficient thread management, Android ensures optimal resource usage and a
seamless user experience.
SUMMARY :
The paper emphasizes using Android to teach core OS concepts, with a focus on process and
thread management. The Android platform provides unique learning opportunities, such as
exploring the Zygote process, which preloads system resources and forks new processes for
apps, enabling faster startup and memory sharing via copy-on-write. Students also examine
Android's process hierarchy, where each Java application runs as a child of Zygote, with
dedicated worker threads handling tasks like garbage collection. The projects involve creating
system calls to interact with these processes and manage threads, offering insights into the
mobile-centric nature of Android's multitasking and resource allocation. Through this, students
gain practical skills in managing processes and threads in constrained mobile environments .
SUMMARY :
The paper focuses on optimizing Android's process and thread management. The authors
highlight the challenges Android developers face with improper thread management, resource
contention, and deadlocks, which can degrade application performance. The paper discusses
solutions like dynamic thread pool management, prioritizing tasks, and reusing threads to
enhance efficiency. It also explores improving inter-thread communication using efficient data
transfer methods and reducing unnecessary synchronization. Additionally, strategies for fine-
grained concurrency control, such as selecting appropriate locking mechanisms, avoiding
deadlocks, and using lock-free data structures, are proposed. These techniques aim to improve
Android’s multi-threading performance, reduce CPU and memory usage, and enhance the
stability and responsiveness of applications under high concurrency .
SUMMARY :
The paper provides a comprehensive overview of Android's development from its inception to
its 2016 Nougat release. The paper highlights Android's architecture, which is based on the
Linux kernel, and its Dalvik Virtual Machine, allowing multiple instances of applications to run
efficiently. The focus is placed on process and thread management, where each application
runs independently in its own memory space, preventing data conflicts between apps.
Android’s process management ensures that background apps are properly managed, while the
Activity Manager controls app lifecycle processes. The paper also discusses the improvements
made in multi-tasking, power management, and performance optimization through various
releases. It emphasizes how Android’s threading model and concurrency mechanisms evolved
to enhance user experience, especially with the introduction of multi-core processor support in
versions like Honeycomb and beyond.
SUMMARY :
The paper tackles the problem of slow UI responsiveness (SUR), which affects user experience
in Android devices, primarily caused by resource-hogging apps that exploit Android’s optimistic
process management system. By analyzing data from 47 million Android devices, the authors
identify that "hogging" apps persistently consume system resources, leading to performance
degradation and battery drain. To address this, the paper proposes a novel process
management model based on a time-inhomogeneous Hidden Markov Model (TIHMM), which
dynamically identifies and suppresses hogging apps. The solution, implemented in a modified
Android system (Android-MOD), reduces SUR events by 60% and improves battery life by
10.7%. Additionally, the research contrasts Android with iOS, finding that iOS’s strict app vetting
process prevents similar performance issues. This study highlights the importance of system-
level resource management and collaboration with app developers in improving mobile device
performance.
SUMMARY :
The paper addresses the inefficiencies in Android’s global buddy system for memory
management, particularly in multi-core smartphone systems, where memory is allocated using
the First Come, First Served (FCFS) principle. It identifies that external fragmentation, previously
considered a bottleneck, is not the primary issue in modern mobile applications. Instead, the
paper reveals that bursting memory allocation behaviors from threads and increased memory
lock contention on multi-core processors are the main causes of inefficiency. To address this,
the authors propose a novel memory management framework called Memory Management
Based on Thread Behaviors (MMBTB). This framework adapts to different thread behaviors,
optimizing memory allocation by dynamically adjusting strategies during a thread’s lifecycle.
Experimental results show that MMBTB significantly improves memory allocation efficiency by
12%-20% compared to the traditional Android buddy system, confirming its effectiveness for
multi-core smartphones.
SUMMARY :
Android smartphones often experience sluggish user interactions due to poor task
prioritization. The Android framework and its task scheduler, the Completely Fair Scheduler
(CFS), fail to prioritize user-interactive tasks over background processes, leading to long
response times and high dispatch latency due to CFS's non-preemptive nature. To address this,
the paper introduces two solutions: framework-assisted task characterization and a virtual
time-based CFS. The first identifies user-interactive tasks through a task chain and promotes
their priority to reduce preemption latency. The second refines CFS to allow tasks to be
preempted periodically and adjusts virtual runtimes to prioritize user-interactive tasks.
Implemented in Android 4.1.2 with Linux kernel 3.0.31, the approach reduces response times
by up to 77.35% with minimal overhead.
SUMMARY :
Reducing power consumption, especially for the CPU, is crucial in smartphones as the CPU is a
major power consumer. However, improving user experience by increasing CPU performance is
equally important, creating a trade-off. Lowering the CPU clock rate saves power but degrades
user experience, while increasing it has the opposite effect. Current kernels, including Android's
Linux kernel, adjust clock rates reactively based on past CPU usage, which can lead to
suboptimal control. This paper proposes a method to predict future CPU usage by monitoring
foreground app behavior in Android Runtime and adjusting clock rates accordingly. Experiments
with both a microbenchmark and a real Android app show the method's effectiveness.
SUMMARY :
The article "Process Management in Android and iOS" (IJERT, November 2023) explores how
Android and iOS handle process management differently. Android uses a Linux-based kernel
with the Completely Fair Scheduler for task scheduling, leveraging the Zygote process and
Android Runtime (ART) to manage memory and improve app performance. iOS focuses on
efficient resource management, background execution, and state preservation with strict
security through sandboxing. Both systems face challenges like power consumption and real-
time performance, with future scope in areas like machine learning and edge computing for
optimization.
SUMMARY :
The Android OS architecture consists of several layers for functionality and performance. At the
base is the Linux Kernel, managing processes, memory, device drivers, and power. Above it, the
Native Libraries Layer includes C/C++ libraries for data and media, alongside the Android
Runtime with the Dalvik Virtual Machine (DVM) for running apps. The Application Framework
Layer offers APIs for building apps, managing UI, background tasks, and hardware access. At the
top is the Application Layer, where user apps reside. The boot process involves the Boot Loader,
kernel initialization, the Init process, and launching Zygote for app instances. Android's security
challenges include delayed updates, kernel vulnerabilities, and risks from rooting or
permissions. This architecture is optimized for mobile performance and app development.
SUMMARY :
The paper introduces Bounded-Power Multicore Dynamic Frequency Scaling (BPM-DFS), a
low-power scheduling mechanism for handheld multicore systems, which are limited by battery
life. BPM-DFS features a system configuration selection algorithm and a task re-scheduling
mechanism that dynamically adjusts the number of active cores, their operating frequency, and
task assignments based on user-defined power budgets. Implemented on a quad-core x86
Android system, BPM-DFS was found to reduce power consumption by 25% compared to the
Linux Performance mode, effectively balancing performance and power efficiency in handheld
devices.
*************