2,161 research outputs found
Automating Software Development for Mobile Computing Platforms
Mobile devices such as smartphones and tablets have become ubiquitous in today\u27s computing landscape. These devices have ushered in entirely new populations of users, and mobile operating systems are now outpacing more traditional desktop systems in terms of market share. The applications that run on these mobile devices (often referred to as apps ) have become a primary means of computing for millions of users and, as such, have garnered immense developer interest. These apps allow for unique, personal software experiences through touch-based UIs and a complex assortment of sensors. However, designing and implementing high quality mobile apps can be a difficult process. This is primarily due to challenges unique to mobile development including change-prone APIs and platform fragmentation, just to name a few. in this dissertation we develop techniques that aid developers in overcoming these challenges by automating and improving current software design and testing practices for mobile apps. More specifically, we first introduce a technique, called Gvt, that improves the quality of graphical user interfaces (GUIs) for mobile apps by automatically detecting instances where a GUI was not implemented to its intended specifications. Gvt does this by constructing hierarchal models of mobile GUIs from metadata associated with both graphical mock-ups (i.e., created by designers using photo-editing software) and running instances of the GUI from the corresponding implementation. Second, we develop an approach that completely automates prototyping of GUIs for mobile apps. This approach, called ReDraw, is able to transform an image of a mobile app GUI into runnable code by detecting discrete GUI-components using computer vision techniques, classifying these components into proper functional categories (e.g., button, dropdown menu) using a Convolutional Neural Network (CNN), and assembling these components into realistic code. Finally, we design a novel approach for automated testing of mobile apps, called CrashScope, that explores a given android app using systematic input generation with the intrinsic goal of triggering crashes. The GUI-based input generation engine is driven by a combination of static and dynamic analyses that create a model of an app\u27s GUI and targets common, empirically derived root causes of crashes in android apps. We illustrate that the techniques presented in this dissertation represent significant advancements in mobile development processes through a series of empirical investigations, user studies, and industrial case studies that demonstrate the effectiveness of these approaches and the benefit they provide developers
Translating Video Recordings of Mobile App Usages into Replayable Scenarios
Screen recordings of mobile applications are easy to obtain and capture a
wealth of information pertinent to software developers (e.g., bugs or feature
requests), making them a popular mechanism for crowdsourced app feedback. Thus,
these videos are becoming a common artifact that developers must manage. In
light of unique mobile development constraints, including swift release cycles
and rapidly evolving platforms, automated techniques for analyzing all types of
rich software artifacts provide benefit to mobile developers. Unfortunately,
automatically analyzing screen recordings presents serious challenges, due to
their graphical nature, compared to other types of (textual) artifacts. To
address these challenges, this paper introduces V2S, a lightweight, automated
approach for translating video recordings of Android app usages into replayable
scenarios. V2S is based primarily on computer vision techniques and adapts
recent solutions for object detection and image classification to detect and
classify user actions captured in a video, and convert these into a replayable
test scenario. We performed an extensive evaluation of V2S involving 175 videos
depicting 3,534 GUI-based actions collected from users exercising features and
reproducing bugs from over 80 popular Android apps. Our results illustrate that
V2S can accurately replay scenarios from screen recordings, and is capable of
reproducing 89% of our collected videos with minimal overhead. A case
study with three industrial partners illustrates the potential usefulness of
V2S from the viewpoint of developers.Comment: In proceedings of the 42nd International Conference on Software
Engineering (ICSE'20), 13 page
Combining FPGA prototyping and high-level simulation approaches for Design Space Exploration of MPSoCs
Modern embedded systems are parallel, component-based, heterogeneous and finely tuned on the basis of the workload that must be executed on them. To improve design reuse, Application Specific Instruction-set Processors (ASIPs) are often employed as building blocks in such systems, as a solution capable of satisfying the required functional and physical constraints (e.g. throughput, latency, power or energy consumption etc.), while providing, at
the same time, high flexibility and adaptability. Composing a multi-processor architecture including ASIPs and mapping parallel applications onto it is a design activity that require an extensive Design Space Exploration process (DSE), to result in cost-effective systems. The
work described here aims at defining novel methodologies for the application-driven customizations of such highly heterogeneous embedded systems. The issue is tackled at different levels, integrating different tools.
High-level event-based simulation is a widely used technique that offers speed and flexibility as main points of strength, but needs, as a preliminary input and periodically during the iteration process, calibration data that must be acquired by means of more accurate
evaluation methods. Typically, this calibration is performed using instruction-level cycleaccurate
simulators that, however, turn out to be very slow, especially when complete multiprocessor
systems must be evaluated or when the grain of the calibration is too fine, while FPGA approaches have shown to performbetter for this particular applications.
FPGA-based emulation techniques have been proposed in the recent past as an alternative solution to the software-based simulation approach, but some further steps are needed
before they can be effectively exploitedwithin architectural design space exploration. Firstly,
some kind of technology-awareness must be introduced, to enable the translation of the emulation results into a pre-estimation of a prospective ASIC implementation of the design. Moreover, when performing architectural DSE, a significant number of different candidate design points has to be evaluated and compared. In this case, if no countermeasures are taken, the advantages achievable with FPGAs, in terms of emulation speed, are counterbalanced
by the overhead introduced by the time needed to go through the physical synthesis and implementation flow.
Developed FPGA-based prototyping platform overcomes such limitations, enabling the use of FPGA-based prototyping for micro-architectural design space exploration of ASIP processors. In this approach, to increase the emulation speed-up, two different methods are proposed: the first is based on automatic instantiation of additional hardware modules, able to reconfigure at runtime the prototype, while the second leverages manipulation of application
binary code, compiled for a custom VLIW ASIP architecture, that is transformed into code executable on a different configuration. This allows to prototype a whole set of ASIP
solutions after one single FPGA implementation flow, mitigating the afore-mentioned overhead.A short overview on the tools used throughout the work will also be offered, covering basic aspects of Intel-Silicon Hive ASIP development toolchain, SESAME framework general
description, along with a review of state-of-art simulation and prototyping techniques for complex multi-processor systems. Each proposed approach will be validated through a real-world use case, confirming the validity of this solution
Combining FPGA prototyping and high-level simulation approaches for Design Space Exploration of MPSoCs
Modern embedded systems are parallel, component-based, heterogeneous and finely tuned on the basis of the workload that must be executed on them. To improve design reuse, Application Specific Instruction-set Processors (ASIPs) are often employed as building blocks in such systems, as a solution capable of satisfying the required functional and physical constraints (e.g. throughput, latency, power or energy consumption etc.), while providing, at
the same time, high flexibility and adaptability. Composing a multi-processor architecture including ASIPs and mapping parallel applications onto it is a design activity that require an extensive Design Space Exploration process (DSE), to result in cost-effective systems. The
work described here aims at defining novel methodologies for the application-driven customizations of such highly heterogeneous embedded systems. The issue is tackled at different levels, integrating different tools.
High-level event-based simulation is a widely used technique that offers speed and flexibility as main points of strength, but needs, as a preliminary input and periodically during the iteration process, calibration data that must be acquired by means of more accurate
evaluation methods. Typically, this calibration is performed using instruction-level cycleaccurate
simulators that, however, turn out to be very slow, especially when complete multiprocessor
systems must be evaluated or when the grain of the calibration is too fine, while FPGA approaches have shown to performbetter for this particular applications.
FPGA-based emulation techniques have been proposed in the recent past as an alternative solution to the software-based simulation approach, but some further steps are needed
before they can be effectively exploitedwithin architectural design space exploration. Firstly,
some kind of technology-awareness must be introduced, to enable the translation of the emulation results into a pre-estimation of a prospective ASIC implementation of the design. Moreover, when performing architectural DSE, a significant number of different candidate design points has to be evaluated and compared. In this case, if no countermeasures are taken, the advantages achievable with FPGAs, in terms of emulation speed, are counterbalanced
by the overhead introduced by the time needed to go through the physical synthesis and implementation flow.
Developed FPGA-based prototyping platform overcomes such limitations, enabling the use of FPGA-based prototyping for micro-architectural design space exploration of ASIP processors. In this approach, to increase the emulation speed-up, two different methods are proposed: the first is based on automatic instantiation of additional hardware modules, able to reconfigure at runtime the prototype, while the second leverages manipulation of application
binary code, compiled for a custom VLIW ASIP architecture, that is transformed into code executable on a different configuration. This allows to prototype a whole set of ASIP
solutions after one single FPGA implementation flow, mitigating the afore-mentioned overhead.A short overview on the tools used throughout the work will also be offered, covering basic aspects of Intel-Silicon Hive ASIP development toolchain, SESAME framework general
description, along with a review of state-of-art simulation and prototyping techniques for complex multi-processor systems. Each proposed approach will be validated through a real-world use case, confirming the validity of this solution
Performance analysis techniques for multi-soft-core and many-soft-core systems
Multi-soft-core systems are a viable and interesting solution for embedded systems that need a particular tradeoff between performance, flexibility and development speed. As the growing capacity allows it, many-soft-cores are also expected to have relevance to future embedded systems. As a consequence, parallel programming methods and tools will be necessarily embraced as a part of the full system development process. Performance analysis is an important part of the development process for parallel applications. It is usually mandatory when you want to get a desired performance or to verify that the system is meeting some real-time constraints. One of the usual techniques used by the HPC community is the postmortem analysis of application traces. However, this is not easily transported to the embedded systems based on FPGA due to the resource limitations of the platforms. We propose several techniques and some hardware architectural support to be able to generate traces on multiprocessor systems based on FPGAs and use them to optimize the performance of the running applications
Extraction of Host Internal Information for External Hardware Security Monitors
학위논문 (박사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2016. 2. 백윤흥.Defending electrical devices against a variety of attacks is a daunting
task. A lot of researchers have endeavored to address this issue by
proposing security solutions that can attain high level of security
while minimizing performance overhead introduced to the system. Among
them, hardware-based security solutions have been noted for high
performance compared to their software-based counterparts. However, we
have witnessed that these mechanisms have rarely been accepted to the
market. This phenomenon may be attributed to the fact that most
solutions incur non-negligible modifications to the host architecture
internals and thus would substantially increase the design time and
manufacturing cost. In order to answer this problem, a hardware-based
external monitoring has recently been proposed. The crux of this
solution is that, being located outside the host core and connected to
the host via a standard bus interface, the external monitor can
efficiently conduct time-consuming monitoring tasks on behalf of the
host while requiring no alteration to the host internals. However, these
approaches either suffer from the incapability of handling various
security problems or experience unsubtle performance overhead because,
being externally placed and having no dedicated communication channels,
the hardware monitor has a limited access to the information produced by
the host core, and consequently, the system may be forced to use memory
regions or other shared hardware resources to explicitly transfer the
information from the host to the monitor hardware. In this thesis, we
propose a security solution that can carry out more complicated security
tasks with low performance overhead while keeping the host internal
architecture intact. This can be archived by using an existing standard
debug interface, readily available in numerous modern processors, to
connect our security monitor to the host processor. In order to show the
validity of our approach and explore the implication of using the debug
interface for security monitoring, we present three security monitoring
systems each of which addresses one of three well-known security issues:
defending against kernel rootkits, tracking information-flow, and
defense of code-reuse attacks. The experiment results show that, when
implemented on a FPGA prototyping board, our monitoring solutions
successfully detect the attack samples (i.e., data leakage attacks and
CRAs). More importantly, our systems can attain significantly low
performance overhead compared to previously proposed security monitoring
solutions. The experiments also reveal that the area overhead of the
hardware is acceptably small when compared to the normal sizes of
today's mobile processors.Chapter 1. Introduction 1
Chapter 2. Background and RelatedWork 8
2.1 Background 8
2.1.1 Core Debug Interface 8
2.2 Related Work 9
2.2.1 Software-based Monitoring solutions 10
2.2.2 Hardware-based Monitoring with Invasive Modification 10
2.2.3 Hardware-based Monitoring with Minimal Modification 11
2.2.4 Hardware-based Kernel Integrity Monitors 12
2.2.5 Utilizing debug interface 13
Chapter 3. Monitoring the Integrity of OS Kernels with Data-Flow Information 15
3.1 Introduction 15
3.2 Motivational Example 19
3.3 Assumptions and Threat Models 20
3.4 The Baseline System 21
3.4.1 The Overall System Design 21
3.4.2 Periodic Cache Flush for Cache Resident Attacks 23
3.5 Extrax design 25
3.5.1 Address Translation Unit 26
3.5.2 Early Stage Filter 28
3.6 Experimental Results 30
3.6.1 Prototype System 30
3.6.2 Security Evaluation 32
3.6.3 Performance Analysis 34
3.6.4 Power Consumption 36
3.7 Limitation and Future Work 36
3.8 Conclusion 39
Chapter 4. Monitoring Dynamic Information Flow using Control-Flow/Data-Flow Information 41
4.1 Introduction 41
4.2 DIFT Process with an External Hardware Engine 44
4.3 Building a DIFT Engine for CDI 48
4.3.1 Components of the DIFT Engine 48
4.3.2 Tag Propagation Unit 51
4.4 Experiment 53
4.4.1 Security Evaluation 56
4.4.2 Performance Evaluation 56
4.5 Conclusion 59
Chapter 5. Monitoring ROP/JOP Attacks using Control-Flow Information 60
5.1 Introduction 60
5.2 Background and Assumptions 65
5.2.1 Background 65
5.2.2 Assumptions and Threat Model 70
5.3 Overall System Architecture 71
5.3.1 SoC Prototype Overview 71
5.3.2 CRA Detection Process 72
5.4 IMPLEMENTATION DETAILS 75
5.4.1 Binary Instrumentation 75
5.4.2 Hardware Architectures 77
5.5 EXPERIMENTAL RESULTS 82
5.6 Conclusion 86
Chapter 6. Conclusion 88
Bibliography 90
초 록 99Docto
CONTREX: Design of embedded mixed-criticality CONTRol systems under consideration of EXtra-functional properties
The increasing processing power of today’s HW/SW platforms leads to the integration of more and more functions in a single device. Additional design challenges arise when these functions share computing resources and belong to different criticality levels. CONTREX complements current activities in the area of predictable computing platforms and segregation mechanisms with techniques to consider the extra-functional properties, i.e., timing constraints, power, and temperature. CONTREX enables energy efficient and cost aware design through analysis and optimization of these properties with regard to application demands at different criticality levels. This article presents an overview of the CONTREX European project, its main innovative technology (extension of a model based design approach, functional and extra-functional analysis with executable models and run-time management) and the final results of three industrial use-cases from different domain (avionics, automotive and telecommunication).The work leading to these results has received funding from the European Community’s Seventh Framework Programme FP7/2007-2011 under grant agreement no. 611146
Efficient cross-architecture hardware virtualisation
Hardware virtualisation is the provision of an isolated virtual environment that
represents real physical hardware. It enables operating systems, or other system-level
software (the guest), to run unmodified in a “container” (the virtual machine)
that is isolated from the real machine (the host).
There are many use-cases for hardware virtualisation that span a wide-range
of end-users. For example, home-users wanting to run multiple operating systems
side-by-side (such as running a Windows® operating system inside an OS
X environment) will use virtualisation to accomplish this. In research and development
environments, developers building experimental software and hardware
want to prototype their designs quickly, and so will virtualise the platform
they are targeting to isolate it from their development workstation. Large-scale
computing environments employ virtualisation to consolidate hardware, enforce
application isolation, migrate existing servers or provision new servers.
However, the majority of these use-cases call for same-architecture virtualisation,
where the architecture of the guest and the host machines match—a situation
that can be accelerated by the hardware-assisted virtualisation extensions
present on modern processors. But, there is significant interest in virtualising
the hardware of different architectures on a host machine, especially in the
architectural research and development worlds.
Typically, the instruction set architecture of a guest platform will be different
to the host machine, e.g. an ARM guest on an x86 host will use an ARM instruction
set, whereas the host will be using the x86 instruction set. Therefore, to
enable this cross-architecture virtualisation, each guest instruction must be emulated
by the host CPU—a potentially costly operation. This thesis presents a
range of techniques for accelerating this instruction emulation, improving over
a state-of-the art instruction set simulator by 2:64x. But, emulation of the guest
platform’s instruction set is not enough for full hardware virtualisation. In fact,
this is just one challenge in a range of issues that must be considered. Specifically,
another challenge is efficiently handling the way external interrupts are
managed by the virtualisation system. This thesis shows that when employing
efficient instruction emulation techniques, it is not feasible to arbitrarily
divert control-flow without consideration being given to the state of the emulated
processor. Furthermore, it is shown that it is possible for the virtualisation
environment to behave incorrectly if particular care is not given to the point
at which control-flow is allowed to diverge. To solve this, a technique is developed
that maintains efficient instruction emulation, and correctly handles
external interrupt sources.
Finally, modern processors have built-in support for hardware virtualisation
in the form of instruction set extensions that enable the creation of an abstract
computing environment, indistinguishable from real hardware. These extensions
enable guest operating systems to run directly on the physical processor,
with minimal supervision from a hypervisor. However, these extensions are
geared towards same-architecture virtualisation, and as such are not immediately
well-suited for cross-architecture virtualisation. This thesis presents a
technique for exploiting these existing extensions, and using them in a cross-architecture
virtualisation setting, improving the performance of a novel cross-architecture
virtualisation hypervisor over state-of-the-art by 2:5x
- …