Results 11 -
17 of
17
A Compact Task Graph Representation for Real-Time Scheduling
, 1996
"... A new task graph representation, namely the compact task graph (CTG), is developed to aid in the scheduling of a set of communicating periodic real-time tasks. This representation explicitly expresses the potential for parallelism across tasks as well as the idle times that may be encountered within ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
A new task graph representation, namely the compact task graph (CTG), is developed to aid in the scheduling of a set of communicating periodic real-time tasks. This representation explicitly expresses the potential for parallelism across tasks as well as the idle times that may be encountered within application tasks. A CTG based scheduler can generate schedules that are able to meet deadlines by interleaving the execution of tasks on a single processor and/or overlapping the execution of tasks on multiple processors. The construction of a CTG is based upon the busy-idle execution profiles for the tasks generated by the compiler. The profiles are computed assuming that sufficient resources are available for parallel execution of all tasks. Thus, they expose all opportunities for overlapped and interleaved execution. The compiler analyzes the profiles to identify useful opportunities for interleaving and expresses them in the CTG without unnecessary partitioning of the tasks. The CTG ...
Timed Perturbation Analysis: An Approach for Non-Intrusive Monitoring of Real-Time Computations
- ACM SIGPLAN Workshop on Language, Compiler, and Tool Support for Real-Time Systems
, 1994
"... A task which is a part of a real time application must not only perform a specific function but it must also execute under timing constraints specified in the form of deadlines by which the output results must be computed. Thus, any attempt to monitor the run-time behavior of a real time task thro ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
A task which is a part of a real time application must not only perform a specific function but it must also execute under timing constraints specified in the form of deadlines by which the output results must be computed. Thus, any attempt to monitor the run-time behavior of a real time task through code instrumentation can potentially alter the program's timing behavior. In this paper we develop perturbation analysis techniques to identify the situations in which the run-time monitoring activities can be performed non-intrusively. The techniques identify the idle time available during the execution of a task and schedule the monitoring task during these times. Instead of treating a monitoring task as an indivisible unit, we partition the monitoring work among various points at which idle time is available. Keywords - monitoring, tracing, instrumentation, perturbation analysis, asynchronous communication. 1 Introduction Due to the complexity of both sequential and distribute...
Privacy-Preserving Genomic Computation Through Program Specialization
"... In this paper, we present a new approach to performing important classes of genomic computations (e.g., search for homologous genes) that makes a significant step towards privacy protection in this domain. Our approach leverages a key property of the human genome, namely that the vast majority of it ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
In this paper, we present a new approach to performing important classes of genomic computations (e.g., search for homologous genes) that makes a significant step towards privacy protection in this domain. Our approach leverages a key property of the human genome, namely that the vast majority of it is shared across humans (and hence public), and consequently relatively little of it is sensitive. Based on this observation, we propose a privacy-protection framework that partitions a genomic computation, distributing the part on sensitive data to the data provider and the part on the pubic data to the user of the data. Such a partition is achieved through program specialization that enables a biocomputing program to perform a concrete execution on public data and a symbolic execution on sensitive data. As a result, the program is simplified into an efficient query program that takes only sensitive genetic data as inputs. We prove the effectiveness of our techniques on a set of dynamic programming algorithms common in genomic computing. We develop a program transformation tool that automatically instruments a legacy program for specialization operations. We also demonstrate that our techniques can greatly facilitate secure multi-party computations on large biocomputing problems.
Partial Evaluation and the Generation of Program Generators
- Communications of The ACM
, 1993
"... this article: ..."
Design and Implementation of a Partial Evaluation-Based Compiler for an Asynchronous Realtime Programming Language
, 1996
"... This thesis describes a compiler for the asynchronous real-time programming language ALDiSP. Though the language has a complex semantics not suited for easy compilation, the compiler has to generate code for target platforms that have stringent space limitations, and for target applications that hav ..."
Abstract
- Add to MetaCart
This thesis describes a compiler for the asynchronous real-time programming language ALDiSP. Though the language has a complex semantics not suited for easy compilation, the compiler has to generate code for target platforms that have stringent space limitations, and for target applications that have to satisfy hard real-time requirements. To accomplish this feat, the compiler is based upon an abstract interpreter that simulates all possible evaluation paths of the program. In a reconstruction phase, the program is then totally re-created from the information gained during this simulation. The abstract interpreter is an extension of the formal semantics of ALDiSP.
April 1997 CSTR-97-003
"... The semantics of an imperative programming language can be expressed as a program in a declarative language. Not only does this render the semantics executable, but it opens up the possibility of applying to imperative languages suchasJava or C the advances made in program analysis and transforma ..."
Abstract
- Add to MetaCart
The semantics of an imperative programming language can be expressed as a program in a declarative language. Not only does this render the semantics executable, but it opens up the possibility of applying to imperative languages suchasJava or C the advances made in program analysis and transformation of declarative languages. However the direct application of this approach returns the results of analysis and transformation in the language of the semantics. The problem is to provide a systematic way to relate the results back to the original imperative program.
Sound and Precise Analysis of Parallel Programs through Schedule Specialization
"... Parallel programs are known to be difficult to analyze. A key reason is that they typically have an enormous number of execution interleavings, or schedules. Static analysis over all schedules requires over-approximations, resulting in poor precision; dynamic analysis rarely covers more than a tiny ..."
Abstract
- Add to MetaCart
Parallel programs are known to be difficult to analyze. A key reason is that they typically have an enormous number of execution interleavings, or schedules. Static analysis over all schedules requires over-approximations, resulting in poor precision; dynamic analysis rarely covers more than a tiny fraction of all schedules. We propose an approach called schedule specialization to analyze a parallel program over only a small set of schedules for precision, and then enforce these schedules at runtime for soundness of the static analysis results. We build a schedule specialization framework for C/C++ multithreaded programs that use Pthreads. Our framework avoids the need to modify every analysis to be schedule-aware by specializing a program into a simpler program based on a schedule, so that the resultant program can be analyzed with stock analyses for improved precision. Moreover, our framework provides a precise schedule-aware def-use analysis on memory locations, enabling us to build three highly precise analyses: an alias analyzer, a data-race detector, and a path slicer. Evaluation on 17 programs, including 2 real-world programs and 15 popular benchmarks, shows that analyses using our framework reduced may-aliases by 61.9%, false race reports by 69%, and path slices by 48.7%; and detected 7 unknown bugs in well-checked programs.

