24 research outputs found

    Garbage collector interface

    Get PDF
    The purpose of the presented garbage collector interface is to provide a universal interface for many different implementations of garbage collectors. This is to simplify the integration and exchange of garbage collectors, but also to support incremental, non-conservative, and thread safe implementations. Due to the complexity of the interface, it is aimed at code generators and preprocessors. Experiences from ongoing implementations indicate that the garbage collector interface successfully provides the necessary functionality in an efficient way

    On Cognitive Robot Woodworking in SMErobotics

    Get PDF
    This paper details and discusses work performed at the woodworking SME Mivelaz Techniques Bois SA within the SMErobotics FP7 project. The aim is to improve non-expert handling of the cell by introduction of cognitive abilities in the robot system. Three areas are considered; intuitive programming, process adaptation and system integration. Proposed cognitive components are described together with experiments performed

    On the Integration of Skilled Robot Motions for Productivity in Manufacturing

    Get PDF
    Robots used in manufacturing today are tailored to their tasks by system integration based on expert knowledge concerning both production and machine control. For upcoming new generations of even more flexible robot solutions, in applications such as dexterous assembly, the robot setup and programming gets even more challenging. Reuse of solutions in terms of parameters, controls, process tuning, and of software modules in general then gets increasingly important. There has been valuable progress within reuse of automation solutions when machines comply with standards and behave according to nominal models. However, more flexible robots with sensor-based manipulation skills and congnitive functions for human inteaction are far too complex to manage, and solutions are rarely reusable since knowledge is either implicit in imperative software or not captured in machine readable form. We propose techniques that build on existing knowledge by converting structured data into an RDF-based knowledge base. By enhancements of industrial control systems and available engineering tools, such knowledge can be gradually extended as part of the interaction during the definition of the robot task

    Flexible automatic memory management for real-time and embedded systems

    No full text
    The advent of safe languages like Java on the real-time systems scene motivates further research on efficient strategies for non-intrusive garbage collection and especially GC scheduling. This thesis presents new approaches to flexible and robust memory management from an engineering perspective and is a step towards write once --- run anywhere with hard real-time performance. The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks and in order to remedy this, a scheduling strategy, time-triggered GC, based on assigning a deadline for when the GC must complete its current cycle is proposed. It is shown that this strategy can give real-time performance that is equal to, or better than, that of an allocation-triggered GC. It is also shown that by using a deadline-based scheduler, the GC scheduling and, consequently, the real-time performance, is independent of a complex and error-prone work metric. Time-triggered GC also allows a more high-level view on GC scheduling as the GC cycle level rather than on each individual increment is considered. This makes it possible to schedule GC as any other thread. It also makes the time-triggered strategy well suited for auto-tuning and it is shown how an adaptive GC scheduler can be implemented. A novel approach of applying priorities to memory allocation is introduced and it is shown how this can be used to enhance the robustness of real-time applications. The proposed mechanisms can also be used to increase performance of systems with automatic memory management by limiting the amount of garbage collection work. The ideas brought forward in this thesis have been implemented and validated in an experimental real-time Java environment

    Anagram Generation Using Sentence Probabilities

    No full text
    An anagram is a word or phrase made by transposing the letters of another word or phrase, and is a popular kind of puzzle. Finding anagrams for a word or a phrase is a di#cult task due to the huge number of possible permutations of the letters, and using computers for anagram generation has been increasingly popular. This paper presents an attempt on constructing an automatic anagram generator based on sentence probabilities. Using a relatively small corpus of one million words, a simple implementation using bigram probabilities proved to yield quite satisfactory results but is too inclusive due to the limited context recorded in bigrams. A trigram based version produces much less incorrect results but would need a larger corpus since it is much more exclusive

    Automatic memory management for flexible real-time systems

    No full text
    In a flexible real-time system, the constraints in available CPU time and memory lead to resource management problems, which must be handled carefully in order to maximize quality of service while avoiding overload. Managing CPU time -- scheduling -- is well studied and dynamic scheduling is widely accepted in the real-time industry. In order to make safe high-level languages, like Java, practically feasible for use in hard real-time systems, memory management and particularly the dependencies between memory and CPU usage must be studied. The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks such as inconsistent utilization due to bursty allocations. To remedy this, time-triggered GC scheduling is proposed. It is shown that this strategy gives real-time performance that is equal to, or better than, that of an allocation-triggered GC. It is also shown that by using a deadline-based scheduler, the GC scheduling and, consequently, the real-time performance, is independent of complex and error-prone work metrics. Time-triggered GC also allows a more high-level view on GC scheduling, as the entire GC cycle is considered rather than each individual increment. This makes it possible to schedule GC as a normal task. As the scheduling parameters are explicit in the model, it also makes the time-triggered strategy well suited for auto-tuning and fits well into feedback scheduling systems. A novel approach of applying priorities to memory allocation is introduced and it is shown how this can be used to enhance the robustness of real-time applications. The proposed mechanisms can also be used to increase performance of systems with automatic memory management by limiting the amount of garbage collection work. Together, these solutions facilitate flexible and robust automatic memory management for real-time systems. Adaptive techniques are presented, aimed at replacing or complementing a priori analysis with on-line auto-tuning. The presented ideas have been successfully implemented and validated in an experimental real-time Java environment, supporting the claim that this work is a step towards write once -- run anywhere with hard real-time performance

    On real-time performance of ahead-of-time compiled java

    No full text
    One of the main challenges in getting acceptance for safe object-oriented languages in hard real-time systems is to combine automatic memory management with hard real-time constraints, while providing adequate general execution performance. An approach to real-time Java based on ahead-of-time compilation is presented, and real-time properties and problems are examined. In particular, achieving both low latency and high throughput in an environment where neither the back-end compiler nor the scheduler is aware of automatic memory management is considered. Optimizations in both the compiler and run-time system, aimed at reducing the execution time overhead while still allowing very short latency times, is presented and experimentally verified. 1
    corecore