Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Trevor Harmon is active.

Publication


Featured researches published by Trevor Harmon.


acm ifip usenix international conference on middleware | 2005

RTZen: highly predictable, real-time java middleware for distributed and embedded systems

Krishna Raman; Yue Zhang; Mark Panahi; Juan A. Colmenares; Raymond Klefstad; Trevor Harmon

Distributed real-time and embedded (DRE) applications possess stringent quality of service (QoS) requirements, such as predictability, latency, and throughput constraints. Real-Time CORBA, an open middleware standard, allows DRE applications to allocate, schedule, and control resources to ensure predictable end-to-end QoS. The Real-Time Specification for Java (RTSJ) has been developed to provide extensions to Java so that it can be used for real-time systems, in order to bring Javas advantages, such as portability and ease of use, to real-time applications. In this paper, we describe RTZen, an implementation of a Real-Time CORBA Object Request Broker (ORB), designed to comply with the restrictions imposed by RTSJ. RTZen is designed to eliminate the unpredictability caused by garbage collection and improper support for thread scheduling through the use of appropriate data structures, threading models, and memory scopes. RTZens architecture is also designed to hide the complexities of RTSJ related to distributed programming from the application developer. Empirical results show that RTZen is highly predictable and has acceptable performance. RTZen therefore demonstrates that Real-Time CORBA middleware implemented in real-time Java can meet stringent QoS requirements of DRE applications, while supporting safer, easier, cheaper, and faster development in real-time Java.


embedded and real-time computing systems and applications | 2007

Interactive Back-annotation of Worst-case Execution Time Analysis for Java Microprocessors

Trevor Harmon; Raymond Klefstad

As real-time systems become more prevalent, there is a need to guarantee that these increasingly complex systems perform as designed. One technique involves a static analysis to place an upper bound on worst-case execution time (WCET). Tools for conducting this analysis typically require the developer to digest assembly opcodes, hexadecimal addresses, and other low-level details in order to make sense of the results. Java-specific processors offer a way out of this complexity. Such processors make Java software more predictable, and as a consequence, timing analysis of a real-time system becomes less computationally intensive. WCET analysis tools based on these processors can thus offer more powerful features at higher levels of abstraction. As proof of this concept, we present a tool for static WCET analysis of Java processors. Our performance measurements show that this tool makes WCET analysis interactive, offering continuous feedback to the developer in the form of back-annotations.


IEEE Transactions on Industrial Informatics | 2012

Fast, Interactive Worst-Case Execution Time Analysis With Back-Annotation

Trevor Harmon; Martin Schoeberl; Raimund Kirner; Raymond Klefstad; Kwang-Hae (Kane) Kim; Michael R. Lowry

For hard real-time systems, static code analysis is needed to derive a safe bound on the worst-case execution time (WCET). Virtually all prior work has focused on the accuracy of WCET analysis without regard to the speed of analysis. The resulting algorithms are often too slow to be integrated into the development cycle, requiring WCET analysis to be postponed until a final verification phase. In this paper, we propose interactive WCET analysis as a new method to provide near-instantaneous WCET feedback to the developer during software programming. We show that interactive WCET analysis is feasible using tree-based WCET calculation. The feedback is realized with a plugin for the Java editor jEdit, where the WCET values are back-annotated to the Java source at the statement level. Comparison of this tree-based approach with the implicit path enumeration technique (IPET) shows that tree-based analysis scales better with respect to program size and gives similar WCET values.


real time technology and applications symposium | 2008

A Modular Worst-case Execution Time Analysis Tool for Java Processors

Trevor Harmon; Raimund Kirner; Martin Schoeberl; Raymond Klefstad

Recent technologies such as the real-time specification for Java promise to bring Javas advantages to real-time systems. While these technologies have made Java more predictable, they lack a crucial element: support for determining the worst-case execution time (WCET). Without knowledge of WCET, the correct temporal behavior of a Java program cannot be guaranteed. Although considerable research has been applied to the theory of WCET analysis, implementations are much less common, particularly for Java. Recognizing this deficiency, we have created an open-source, extensible tool that supports WCET analysis of Java programs. Designed for flexibility, it is built around a plug- in model that allows features to be incorporated as needed. Users can plug in various processor models, loop bound detectors, and WCET analysis algorithms without having to understand or alter the tools internals.


international parallel and distributed processing symposium | 2007

Toward a Unified Standard for Worst-Case Execution Time Annotations in Real-Time Java

Trevor Harmon; Raymond Klefstad

As real-time systems become more prevalent, there is a need to guarantee that these increasingly complex systems perform as designed. One technique involves a static analysis to place an upper bound on worst-case execution time (WCET). This temporal analysis cannot be made automatic and normally requires source annotations to assist a WCET analysis tool. At the same time, there is a growing interest in using Java for real-time systems. Several WCET analysis prototypes for Java have been created, and more are under development. Each relies on a competing and incompatible convention for annotations, resulting in portability problems and duplication of effort. We propose that Javas own annotation mechanism should be used to address such issues. These built-in annotations provide a common platform for WCET analysis, improving portability and reducing the effort necessary to create these vital tools. We examine the features that make Javas annotation standard attractive for WCET analysis, then discuss its current failings and make recommendations for future improvements.


2002 14th International Conference on Ion Implantation Technology Proceedings (IEEE Cat. No.02EX505) | 2003

Adaptive techniques for minimizing middleware memory footprint for distributed, real-time, embedded systems

Mark Panahi; Trevor Harmon; Raymond Klefstad

In order for middleware to be widely useful for distributed, real-time, and embedded systems, it should provide a full set of services and be easily customizable to meet the memory footprint limitations of embedded systems. We examine a variety of techniques used to reduce the memory footprint in middleware. We find that combining aspect-oriented programming with code shrinkers and obfuscators reduces the memory footprint of CORBA middleware to <5% of its original size, as customized for a small client application for a memory-constrained embedded device.


international symposium on object component service oriented real time distributed computing | 2008

Toward Libraries for Real-Time Java

Trevor Harmon; Martin Schoeberl; Raimund Kirner; Raymond Klefstad

Reusable libraries are problematic for real-time software in Java. Using Javas standard class library, for example, demands meticulous coding and testing to avoid response time spikes and garbage collection. We propose two design requirements for reusable libraries in real-time systems: worst-case execution time (WCET) bounds and worst- case memory consumption bounds. Furthermore, WCET cannot be known if blocking method calls are used. We have applied these requirements to the design of three Java-based prototypes: a set of collection classes, a networking stack, and trigonometric functions. Our prototypes show that reusable libraries can meet these requirements and thus be viable for real-time systems.


international parallel and distributed processing symposium | 2007

A Survey of Worst-Case Execution Time Analysis for Real-Time Java

Trevor Harmon; Raymond Klefstad

As real-time systems become more prevalent, there is a need to guarantee that these increasingly complex systems perform as designed. One technique involves a static analysis to place an upper bound on worst-case execution time (WCET). Other techniques aim for new architectures and algorithms that reduce the WCET. At the same time, there is a growing interest in using Java for real-time systems. Several WCET analysis prototypes for Java have been created, and more are under development. This paper provides a comprehensive survey of research that combines WCET analysis with the Java domain. We begin by explaining the importance of WCET analysis and why it is so difficult to perform adequately. We then examine the features that make Java an attractive platform for WCET analysis, as well as the new challenges it brings. Finally, we provide a survey of prior work on this subject, organized as a simple one-level taxonomy.


cooperative information systems | 2004

Late Demarshalling: A Technique for Efficient Multi-language Middleware for Embedded Systems

Gunar Schirner; Trevor Harmon; Raymond Klefstad

A major goal of middleware is to allow seamless software integration across programming languages. CORBA, for example, supports multiple languages by specifying communication standards and language-specific bindings. Although this approach works well for desktop systems, it is problematic for embedded systems, where strict memory limits discourage multiple middleware implementations. A common memory-efficient alternative allows sharing of middleware by exposing functionality through language-specific wrappers; for instance, middleware may be implemented in C++ but exposed to Java through the Java Native Interface (JNI). Like most language wrappers, however, JNI degrades performance, especially with aggregate data types.


international conference on software engineering | 2010

N-version programming in WCET analysis: revisiting a discredited idea

Trevor Harmon; Michael R. Lowry

Worst-case execution time (WCET) analysis is safe in theory, but it may not truly be safe in practice. Even if a particular analysis algorithm is sound, its implementation may contain bugs that result in unsafe WCET estimation. This potential for error is serious, given that the usual purpose of WCET analysis is to verify the correctness of hard real-time systems--software on which entire missions and even human lives may depend. A possible solution lies in N-version programming, where N teams of developers work independently on N unique but equivalent implementations. Although this fault-tolerance technique has been criticized for its statistical assumptions and high cost, it may be perfectly suited to address the inherent risks in implementing WCET analysis tools. This paper argues that N-version programming still has merit and cites an example of how the technique improved the quality of two WCET analysis tools at relatively low cost.

Collaboration


Dive into the Trevor Harmon's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

James E. Marca

University of California

View shared research outputs
Top Co-Authors

Avatar

Mark Panahi

University of California

View shared research outputs
Top Co-Authors

Avatar

Martin Schoeberl

Technical University of Denmark

View shared research outputs
Top Co-Authors

Avatar

Raimund Kirner

University of Hertfordshire

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

K. H. Kim

University of California

View shared research outputs
Top Co-Authors

Avatar

Krishna Raman

University of California

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge