Browsing by Author "Purtilo, James M."
Now showing 1 - 17 of 17
Results Per Page
Sort Options
Item Automated Computation of Decomposable Synchronization Conditions(1998-10-15) Matos, Gilberto; Purtilo, James M.; White, ElizabethThe most important aspect of concurrent and distributed computation is the interaction between system components. Integration of components into a system requires some synchronization that prevents the components from interacting in ways that may endanger the system users, its correctness or performance. The undesirable interactions are usually described using temporal logic, or safety and liveness assertions. Automated synthesis of synchronization conditions is a portable alternative to the manual design of system synchronization, and it is already widespread in the hardware CAD domain. The automated synchronization for concurrent software systems is hindered by their excessive complexity, because their state spaces can rarely be exhaustively analyzed to compute the synchronization conditions. The analysis of global state spaces is required for liveness and real--time properties, but simple safety rules depend only on the referenced components and not on the rest of the system or its environment. Synchronization conditions for delayable safety critical systems can be computed without the state space analysis, and decomposed into single component synchronization conditions. Automated synthesis of decomposable synchronization conditions provides a solid groundwork for the independent design of system components, and supports reuse and maintenance in concurrent software systems. This approach to integration of concurrent systems is embodied by GenEx, an analysis and synchronization tool that integrates system components to satisfy a given set of safety rules, and produces executable systems. (Also cross-referenced as UMIACS-TR-97-10)Item Configuration-level optimzation of RPC-based distribution programs(1998-10-15) Kim, Tae-Hyung; Purtilo, James M.Many strategies for improving performance of distributed programs can be described abstractly in terms of an application's overall configuration. But previously those techniques would need to be implemented manually, and the resulting programs, though yielding good performance, are more expensive to build and much less easy to reuse. This paper describes research towards an automatic system for introducing performance improvement techniques based upon an application's configuration description. (Also cross-referenced as UMIACS-TR-94-113)Item Domain-Driven Reconfiguration in Collaborative Virtual Environments(1998-10-15) Welch, Donald J.; Purtilo, James M.When virtual environments (VE) collaborate to create a shared virtual world, events occur that can have catastrophic effects on that virtual world. These events can be system events, such as the loss of a host or a network link to that host. They can also be events that happen only in the virtual world, for example, a virtual activity that migrates, bringing increased activity to a different VE. To maintain acceptable or realistic behavior can require the restructuring of the collaborative virtual environment (CVE) during execution. The restructuring must take place in accordance with a set of rules mandated by the domain and specific application. The reconfiguration must occur quickly, to maintain realism for the users. Automatic restructuring brings the added benefit of fewer support staff. We call the automatic restructuring of a distributed application with respect to these rules Domain-Driven Reconfiguration and we have developed a software engineering environment to support its inclusion in CVEs. (Also cross-referenced as UMIACS-TR-97-32)Item A Framework for Dynamic Reconfiguration of Distributed Programs(1998-10-15) Hofmeister, Christine R.; Purtilo, James M.Current techniques for a software engineer to change a computer program are limited to static activities once the application begins executing, there are few reliable ways to reconfigure it. We have developed a general framework for reconfigurating application software dynamically. A sound method for managing changes in a running program allows developers to perform maintenance activities without loss of the overall system's service. The same methods also support some forms of load balancing in a distributed system, and research in software fault tolerance. Our goal has been to create an environment for organizing and effecting software reconfiguration activities dynamically. First we present the overall framework within which reconfiguration is possible, then we describe our formal approach for programmers to capture the state of a process abstractly. Next, we describe our implementation of this method within an environment for experimenting with program reconfiguration. We conclude with a summary of the key research problems that we are continuing to pursue in this area. (Also cross-referenced as UMIACS-TR-93-78)Item Interconnecting Distributed Legacy Systems: Virtual Environment Domain Example(1998-10-15) Welch, Donald J.; Purtilo, James M.As the power and utility of virtual reality environments increases, so do the potential benefits found from combinding several such environments. But doing so presents the developer with a host of difficult distributed systems issues. This paper explores what some of these issues are within the VE domain, relates our successes to date in overcoming these problems by means of various automated tools, and suggests ways to apply our results other target domains. (Also cross-referenced as UMIACS-TR-96-88)Item Load Balancing for Parallel Loops in Workstation Clusters(1998-10-15) Kim, Tae-Hyung; Purtilo, James M.Load imbalance is a serious impediment to achieving good performance in parallel processing. Global load balancing schemes are not adequately manage to balance parallel tasks generated from a single application. Dynamic loop scheduling methods are known to be useful in balancing parallel loops on shared-memory multiprocessor machines. However, their centralized nature causes a bottleneck for the relatively small number of processors in workstation clusters because of order-of-magnitude differences in communications overheads. Moreover, improvements of basic loop scheduling methods have not dealt effectively with irregularly distributed workloads in parallel loops, which commonly occur in applications for workstation clusters. In this paper, we present a new decentralized balancing method for parallel loops on workstation clusters. (Also cross-referenced as UMIACS-TR-96-6)Item The NewYacc User's Manual(1998-10-15) White, Elizabeth L.; Callahan, John R.; Purtilo, James M.This manual introduces NewYacc, a parser generator system built upon the original yacc system within Unix. NewYacc's principal extension is to provide users with a way to associate rewrite rules with individual productions in the language grammar. These rules are used to describe how the parse tree (which is saved in NewYacc but not in original yacc) should be traversed, plus users can easily control what action is performed at each node in the tree during their traversals. This provides users with great leverage in the construction of a variety of source to source translation tools. This manual assumes a general familiarity with original yacc. (Also cross-referenced as UMIACS-TR-90-141)Item A Packager for Multicast Software in Distributed Systems(1998-10-15) Chen, Chen; White, Elizabeth L.; Purtilo, James M.PTM is a packagmg tool for preparing ordinary software to execute in multicast-based environments. Using PTM, both individual programs and systems of programs can be tailored to use multicast communication, without manual intervention from the programmer , who is in turn free to reason about the distributed system's initial configuration as if ordinary RPC or message passing semantics are to be used. But with PTM, programmers also retain the flexibility afforded at run time by the multicast paradigm, wher e the set of tools that consume a given type of event can transparently evolve. After describing Polycast, our implementation of a multicast execution environment in terms of software bus organization, we present the packaging technology that automates p reparation of software for the environment. Software prototyping is one of the key beneficiaries of multicast communication, which led us to explore means for simplifying the programming tasks involved; and therefore we illustrate how Polyvast is serving our prototyping research by presenting an example prototyping tool called PTM, in which our multicast enables users to dynamically explore network design and configuration alternatives. (Also cross-referenced as UMIACS-TR-92-114)Item A Packaging System for Heterogeneous Execution Environments(1998-10-15) Callahan, John R.; Purtilo, James M.Item Parallel I/O Using a Distributed Disk Cluster: An Exercise in Tailored Prototyping(1998-10-15) Falkenberg, Charles; Purtilo, James M.Tailored prototyping refers to an emerging process for prototyping software applications, emphasizing a disciplined experimental approach in order for developers to obtain an understanding of system characteristics before committing to costly design decisions. In our approach, the design of software constituting prototype apparatus is driven by experimental hypotheses concerning risk, rather than an application's functional requirements. This paper describes the principles behind tailored prototyping, then illustrates them in concrete terms by describing their application in a pilot project. The pilot used in our illustration is a parallel I/O service --- a mechanism designed to deliver pages, in parallel, from a cluster of distributed disks. The performance results show that this parallel I/O system can, in certain circumstances, deliver higher page throughput from multiple remote disks, than with a single local disk. The pilot project exemplifies our prototyping method which is applicable to a wide variety software prototyping activities. (Also cross-referenced as UMIACS-TR-95-18)Item The Polylith Software Bus(1998-10-15) Purtilo, James M.We describe a system called POLYLITH that helps programmers prepare and interconnect mixedlanguage software components for execution in heterogeneous environments. POLYLITH'S principal benefit is that programmers are free to implement functional requirements separately from their treatment of interfacing requirements; this means that once an application has been developed for use in one execution environment (such as a distributed network) it can be adapted for reuse in other environments (such as a share d-memory multiprocessor) by automatic techniques. This flexibility is provided without loss of performance. We accomplish this by creating a new run-time organization for software. An abstract decoupling agent, called the software toolbus, is introduced between the system components. Heterogeneity in language and architecture is accommodated since program units are prepared to interface directly to the toolbus, not to other program units. Programmers specify application structure in terms of a module interconnection language (MIL); POLYLITH uses this specification to guide packaging (static interfacing acti vities such as stub generation, source program adaptation, compilation and linking). At run time, an implementation of the toolbus abstraction may assist in message delivery, name service or system reconfiguration. (Also cross-referenced as UMIACS-TR-90-65)Item Reconfiguration of Hierarchical Tuple-Spaces: Experiments with Linda-Polylith(1998-10-15) Matos, Gilberto; Purtilo, James M.A hierarchical tuple-space model is proposed for dealing with issues of complexity faced by programmers who build and manage programs in distributed networks. We present our research on a Linda-style approach to both configuration and reconfiguration. After presenting the model used in our work, we describe an experimental implementation of a programming system based upon the model. (Also cross-referenced as UMIACS-TR-93-100)Item Software Engineering of Distributed Simulation Environments(1998-10-15) Duff, James; Purtilo, James M.; Capps, Michael; Stotts, DavidWith the increasing popularity of simulation and virtual environment software, it is necessary to provide software engineering techniques to simulation program designers. In this paper we lay out the requirements that any such techniques will have to meet, then suggest a formalism and an interconnection tool that will allow the interconnection of re-usable simulator components to build distributed simulation software. (Also cross-referenced as UMIACS-TR-95-100)Item Software Engineering of Virtual Environments: Integration and Interconnection(1998-10-15) Welch, Donald J.; Purtilo, James M.Virtual Environments(VEs) are proving to be valuable resources in many fields, and they are even more useful when they involve multiple users in distributed environments. Many useful VEs were designed to be stand-alone applications, without consideration for integrating them into a distributed VE. Our approach to connecting VEs is to define an abstract model for the interconnection, use integration tools to do as much of the work automatically as possible, and use a run-time environment to support the interconnection. With our experiences to date, we are learning that certain classes of techniques are common to all solutions using this approach. We have summarized these in a set of requirements and are building a system that features these techniques as first class objects. In the future you will be able to solve these interconnection problems cheaply, plus engineers of future VEs will have some guidance on how they should organize their implementations so that interconnection with other VEs will be easier. In this paper we coin the phrase "software engineering of virtual environments" (SEVE) to describe the above activities. (Also cross-referenced as UMIACS-TR-96-89)Item TITLE: A Source-Level Transformation Framwork for RPC-Based Distributed Programs(1998-10-15) Kim, Tae-Hyung; Purtilo, James M.The remote procedure call (RPC) paradigm has been a favorite of programmers who write distributed programs because RPC uses a familiar procedure call abstraction as the sole mechanism of operation. The abstraction helps to simplify programming tasks, but this does not mean that the resulting program's RPC-based flow of control will be anything close to ideal for high performance. The purpose of our research is to provide a source-level transformation framework as an alternative way to implement an RPC-based distributed program, so that the code can be optimized through program analysis techniques. This paper describes the transformation tools we have constructed towards this end. (Also cross-referenced as UMIACS-TR-95-90)Item Writing Distributed Programs in Polylith(1998-10-15) Hofmeister, Christine R.; Atlee, Joanne; Purtilo, James M.Polylith is a software interconnection system that allows programmers to configure applications from mixed-language software components (modules), and then execute those applications in diverse environments. In general, communication between components can be implemented with TCP/IP or XNS protocols in a network; via shared memory between light-weight threads on a tightly coupled multiprocessor; using custom-hardware channels between processors; or using simply a 'branch' instruction within the same process space. Flexibility in how components are interconnected is made possible by a 'software bus' organization. This document serves as a manual for programmers who wish to use one particular software busthe TCP/IP-based network bus. (Also cross-referenced as UMIACS-TR-90-149)Item Zubin: A Software Engineering Environment for Interconnecting Legacy Virtual Environments(1998-10-15) Welch, Donald J.; Purtilo, James M.As the power and utility of virtual reality environments increases, so do the potential benefits found from combining several such environments. But doing so presents the developer with a host of difficult software engineering issues. This paper explores what some of these issues are within the VE domain, relates our successes to date in overcoming these problems by means of various automated tools, and suggests ways to apply our results other target domains. (Also cross-referenced as UMIACS-TR-96-87)