165 research outputs found
Evaluation infrastructure for mobile distributed applications
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2012.Cataloged from PDF version of thesis.Includes bibliographical references (p. 50-54).Sophisticated applications that run on mobile devices have become commonplace. Within the wide realm of mobile software applications there exists a significant number that make use of networking in some form. Unfortunately, such distributed mobile applications are inherently difficult to evaluate. Conventional evaluations of such distributed applications are limited to small, real-world deployments consisting of, perhaps, a handful of phones. Such tests often do not have the requisite number of users to produce the desired performance. Also, these experiments do not scale and are not repeatable. To address all these issues, we sought to evaluate distributed applications in a virtual environment. Besides being cheaper, such evaluations are reproducible and scale significantly better. This thesis documents our efforts in working towards this goal. We discuss the designs that we iterated through, along with the problems we faced in each of them. We hope these problems will inform future designs that can solve the challenges that we weren't able to solve efficiently.by Anirudh Sivaraman Kaushalram.S.M
Efficient runtime management for enabling sustainable performance in real-world mobile applications
Mobile devices have become integral parts of our society. They handle our diverse computing needs from simple daily tasks (i.e., text messaging, e-mail) to complex graphics and media processing under a limited battery budget. Mobile system-on-chip (SoC) designs have become increasingly sophisticated to handle performance needs of diverse workloads and to improve user experience. Unfortunately, power and thermal constraints have also emerged as major concerns. Increased power densities and temperatures substantially impair user experience due to frequent throttling as well as diminishing device reliability and battery life. Addressing these concerns becomes increasingly challenging due to increased complexities at both hardware (e.g., heterogeneous CPUs, accelerators) and software (e.g., vast number of applications, multi-threading). Enabling sustained user experience in face of these challenges requires (1) practical runtime management solutions that can reason about the performance needs of users and applications while optimizing power and temperature; (2) tools for analyzing real-world mobile application behavior and performance.
This thesis aims at improving sustained user experience under thermal limitations by incorporating insights from real-world mobile applications into runtime management. This thesis first proposes thermally-efficient and Quality-of-Service (QoS) aware runtime management techniques to enable sustained performance. Our work leverages inherent QoS tolerance of users in real-world applications and introduces QoS-temperature tradeoff as a viable control knob to improve user experience under thermal constraints. We present a runtime control framework, QScale, which manages CPU power and scheduling decisions to optimize temperature while strictly adhering to given QoS targets. We also design a framework, Maestro, which provides autonomous and application-aware management of QoS-temperature tradeoffs. Maestro uses our thermally-efficient QoS control framework, QScale, as its foundation.
This thesis also presents tools to facilitate studies of real-world mobile applications. We design a practical record and replay system, RandR, to generate repeatable executions of mobile applications. RandR provides this capability by automatically reproducing non-deterministic input sources in mobile applications such as user inputs and network events. Finally, we focus on the non-deterministic executions in Android malware which seek to evade analysis environments. We propose the Proteus system to identify the instruction-level inputs that reveal analysis environments
Recommended from our members
Design and Optimization of Mobile Cloud Computing Systems with Networked Virtual Platforms
A Mobile Cloud Computing (MCC) system is a cloud-based system that is accessed by the users through their own mobile devices. MCC systems are emerging as the product of two technology trends: 1) the migration of personal computing from desktop to mobile devices and 2) the growing integration of large-scale computing environments into cloud systems. Designers are developing a variety of new mobile cloud computing systems. Each of these systems is developed with different goals and under the influence of different design constraints, such as high network latency or limited energy supply.
The current MCC systems rely heavily on Computation Offloading, which however incurs new problems such as scalability of the cloud, privacy concerns due to storing personal information on the cloud, and high energy consumption on the cloud data centers. In this dissertation, I address these problems by exploring different options in the distribution of computation across different computing nodes in MCC systems. My thesis is that "the use of design and simulation tools optimized for design space exploration of the MCC systems is the key to optimize the distribution of computation in MCC."
For a quantitative analysis of mobile cloud computing systems through design space exploration, I have developed netShip, the first generation of an innovative design and simulation tool, that offers large scalability and heterogeneity support. With this tool system designers and software programmers can efficiently develop, optimize, and validate large-scale, heterogeneous MCC systems. I have enhanced netShip to support the development of ever-evolving MCC applications with a variety of emerging needs including the fast simulation of new devices, e.g., Internet-of-Things devices, and accelerators, e.g., mobile GPUs. Leveraging netShip, I developed three new MCC systems where I applied three variations of a new computation distributing technique, called Reverse Offloading. By more actively leveraging the computational power on mobile devices, the MCC systems can reduce the total execution times, the burden of concentrated computations on the cloud, and the privacy concerns about storing personal information available in the cloud. This approach also creates opportunities for new services by utilizing the information available on the mobile device instead of accessing the cloud.
Throughout my research I have enabled the design optimization of mobile applications and cloud-computing platforms. In particular, my design tool for MCC systems becomes a vehicle to optimize not only the performance but also the energy dissipation, an aspect of critical importance for any computing system
Recommended from our members
Enabling the Virtual Phones to remotely sense the Real Phones in real-time: A Sensor Emulation initiative for virtualized Android-x86
Smartphones nowadays have the ground-breaking features that were only a figment of one’s imagination. For the ever-demanding cellphone users, the exhaustive list of features that a smartphone supports just keeps getting more exhaustive with time. These features aid one’s personal and professional uses as well. Extrapolating into the future the features of a present-day smartphone, the lives of us humans using smartphones are going to be unimaginably agile. With the above said emphasis on the current and future potential of a smartphone, the ability to virtualize smartphones with all their real-world features into a virtual platform, is a boon for those who want to rigorously experiment and customize the virtualized smartphone hardware without spending an extra penny. Once virtualizable independently on a larger scale, the idea of virtualized smartphones with all the virtualized pieces of hardware takes an interesting turn with the sensors being virtualized in a way that’s closer to the real-world behavior. When accessible remotely with the real-time responsiveness, the above mentioned real-world behavior will be a real dealmaker in many real-world systems, namely, the life-saving systems like the ones that instantaneously get alerts about harmful magnetic radiations in the deep mining areas, etc. And these life-saving systems would be installed on a large scale on the desktops or large servers as virtualized smartphones having the added support of virtualized sensors which remotely fetch the real hardware sensor readings from a real smartphone in real-time. Based on these readings the lives working in the affected areas can be alerted and thus saved by the people who are operating the at the desktops or large servers hosting the virtualized smartphones
Optimization in Virtual Machine Networking
Network performance is a critical aspect in Virtual Machine systems and its
importance is becoming increasingly important in the world of computing.
These systems are commonly employed in the IT departments of several organizations, since they can help to
build services that are highly reliabile, availabile and secure, improve efficiency
in computing resource usage, and so on.
In this thesis we are going to analize the state of the art of virtual machine networking, evaluating advantages
and drawbacks of the existing solutions.
We then propose a new approach, showing that with a small amount of code modifications, we can bring a classic emulated
network device (we take \texttt{e1000} as a reference example) to performances that are similar to the performances of
paravirtualized solutions.
However, this is not enough to push the performance to the limit (expecially latency).
Therefore, we put together the lessons learned, and introduce a new minimal paravirtualized solution, that can be implemented
in total with about 2400 lines of code (driver part and board emulation part) and it is intended to outperform the currently
existing solutions
Monitoring Architecture for Real Time Systems
It can be hard to understand how an operating system - and software in general - reached a certain
output just by looking at said output. A simple approach is to use loggers, or simple print
statements on some specific critical areas, however that is an approach that does not scale very
well in a consistent and manageable way.
The purpose of this thesis is to propose and develop a tool - a Monitoring Tool - capable of capturing
and recording the execution of a given application with minimal intrusion in the context of
real-time embedded systems, namely using a space-qualified version of the RTEMS real-time operating
system, and making that information available for further processing and analysis. Multicore
environments are also considered.
The current state of the art in monitoring and execution tracing is presented, featuring both a
literature review and a discussion of existing tools and frameworks. Using an implementation of
the proposed architecture, the tool was tested in both unicore and multicore configurations in both
sparc and arm architectures, and was able to record execution data of a sample application, with
varying degrees of verbosity.Nem sempre é fácil perceber como é que um sistema operativo - e software em geral - chegaram
a determinado resultado apenas olhando para este. A abordagem normal é usar registos, ou pequenas
impressões em locais estratégicos do código, no entanto esta abordagem não é escalável de
forma consistente e sustentada.
O propósito desta tese é o de propor e desenvolver uma ferramenta - uma ferramenta de monitorização
- capaz de capturar e registar a execução de uma dada aplicação com o mínimo de impacto
no contexto de sistemas embebidos de tempo-real, nomeadamente usando uma versão do sistema
operativo de tempo-real Real-Time Executive for Multiprocessor Systems (RTEMS) qualificada
para o espaço, e colocando essa informação à disposição para processamento e análise futura. Ambientes
com múltiplos núcleos de processamento são também considerados.
O atual estado da arte em monitorização e registo de execução de software é apresentado, destacando
tanto exemplos da literatura como ferramentas e frameworks existentes. Usando uma implementação
da arquitetura proposta, a ferramenta foi testada em configurações com um ou mais
núcleos de processamento em arquiteturas sparc e arm, tendo sido capaz de registar e gravar dados
da execução de uma aplicação de exemplo, como vários níveis de detalhe
- …