The ideas and findings in this report should not be construed as an official DoD position. It is published in the interest of scientific and technical information exchange.-Review and Approval This report has been reviewed and is approved for publication. FOR THE COMMANDER
Durra is a declarative language designed to support application-level programming and in this paper we illustrate the use of Durra with an example distributed avionics system. We show how the language is used to describe the application, its components and structure, how the runtime executive provides support for fault-tolerance by reconfiguration of the application, and how an interactive interface to the executive supports debugging and monitoring the application. Programming at the Application-LevelMany distributed applications consist of large-grained tasks or programs, instantiated as processes, running on possibly separate processors and communicating with each other by sending messages of different types.Since the patterns of communication between the processes can vary over time and the speeds of the individual processors can differ widely, the developers may need explicit control over the allocation of processors to processes in order to meet performance or reliability requirements. Processors are not the only critical resource. The resources that must be allocated also include communication links and message queues. We call this network of various processor types, links, and queues a heterogeneous machine.The structure of the application and the allocation of the resources of a heterogeneous machine varies during the development of the application, to accommodate for changing requirements and designs, and during the execution of the application, to support mode changes and fault tolerance.Currently, users of a heterogeneous machine network follow the same pattem of program development as users of conventional processors: Programmers write individual tasks as separate programs, in the different programming languages (e.g., C, Lisp, Ada) supported by the processors, and then hard code the allocation of resources to their application by explicitly assigning specific programs to run on specific processors at specific times. This coupling between the component programs and the built-in knowledge about the structure of the application and the allocation of resources often prevent the reuse of the programs in other applications or environments. Modification of the application during development is often expensive, time-consuming, and error-prone.The problem is compounded if the application must be modified while running tu deal with faults or mode changes. ThS work is SWuISond by the U.S. Department of Defense. The views and Condusbm mtsined in document are sdely those of the author(s) and should IDt be in(0rpCeted as repmsenting official policies, either expressed or implied, of Carnegie Mellon University, the U.S. Air Force, the Deparlment of Defense, or the US. GovemmantWe claim that developing distributed applications for a heterogeneous machine is qualitatively different from developing programs for conventional processors. It requires different kinds of languages, tools, runtime support, and methodologies. In this paper we address some of these issues by presenting a language, Durra. We briefly describe ...
Abstract. Durra is a language designed to support PMS-level programming. PMS stands for Processor-Memory-Switch, the name of the highest level in the hierarchy of digital systems. An application or PMS-level program is written in Durra as a set of task descriptions and type declarations that prescribes a way to manage the resources of a heterogeneous machine network. The application describes the tasks to be instantiated and executed as concurrent processes, the types of data to be exchanged by the processes, and the intermediate queues required to store the data as they move from producer to consumer processes.This report describes the Durra Runtime Environment. The environment consists of three active components: the application tasks, the Durra server, and the Durra scheduler. After compiling the type declarations, the component task descriptions, and the application description, the application can be executed by starting an instance of the server on each processor, starting an instance of the scheduler on one of the processors, and downloading the component task implementations (i.e., the programs) to the processors. The scheduler receives as an argument the name of the file containing the scheduler program generated by the compilation of the application description. This step initiates the execution of the application.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.