leff@smu.UUCP (Laurence Leff) (12/14/89)
----------------------------------------------------------------------------- 89-CSE-1. ($1.00) MODELING TRANSACTIONS IN OBJECT ORIENTED DATA BASES* Francisco Mariategui and Margaret H. Eich January 1989 We present a new model for transactions in Object Oriented Data Bases (OODB). This model captures the shape of transactions by following the behavior of the message passing mechanism inherent in the object oriented paradigm. We call this new kind of transaction, "The Pair <GM, DM>". This dynamic model gives rise to tree structured transactions. The end product of this structure are data base accesses. Our model builds a bridge between message passing, by which objects communicate, and data base accesses, by which transactions communicate. Thereby closing the gap between the dynamic view of the world (objects) and the static view of the world (data bases). * This material is based in part upon work supported by the Texas Advanced Research Program (Advanced Technology Program) under Grant No. 2265 and by the National Science Foundation under Grant IRI-8713654. ----------------------------------------------------------------------------- 89-CSE-2. ($1.25) DAA - A PROTOTYPE OF AN INTEGRATED PROTOTYPING SYSTEM (IPS) Programmer's Reference Manual W. P. Yin and M. M. Tanik This document describes details of the implementation of the Design Activity Agent (DAA). Topics covered are: the project objectives, a description of built-in maintenance aids in the program, facility descriptions, a description of Design Object Descriptive Attribute Notation (DODAN), a list of unimplemented features, a discussion of the rapid prototyping environment being used, and possibilities for future modification. The actual source code for the program is included separately. The program of DAA is written in ART (The Automatic Reasoning Tool) a rule like language, using forward chaining mechanism. Some portions are written in Common-lisp. The DODAN description program is written in ART. A large number of ART utilities are used in the program. It is necessary to read the ART manuals, to fully understand the program. ----------------------------------------------------------------------------- 89-CSE-3. ($3.50) DAA - A PROTOTYPE OF AN INTEGRATED PROTOTYPING SYSTEM (IPS) User's Manual W. P. Yin and M. M. Tanik This system implements a prototype of a software design paradigm on top of the ART. The system is primarily meant to be used as a software design environment for aiding a software designer to design software programs, but can also be used as an intelligent assistance to understand software designs. DAA allows a user to construct a software design in DODAN by using ZMACS editor, save the design in a file, review and analyze the design. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-4. ($1.00) THE AT&T VIDEOTEX COMMUNICATION SYSTEM-III AT SOUTHERN METHODIST UNIVERSITY Bryan Beeman and Murat M. Tanik February 1989 Project Goal: To bring the AT&T Videotex Communication System at SMU to an operational state.~--~This report discusses the varied aspects of the system, beginning with a description of the system, containing both physical and functional descriptions of each system module. The next part of the report is a comprehensive systems analysis covering all aspects of the VCS, concentrating on the major conceptual elements: the frame creation module, the host computer, and the array of public access terminals. The discussion then covers the progress of the project toward the project goal and problems encountered along the way. Following this is a summary of what to expect from the available documentation. ----------------------------------------------------------------------------- 89-CSE-5. ($1.00) ACTIVE DESIGN COMPONENTS FOR MULTIPROCESSING APPLICATIONS M.G. Christiansen and M.M. Tanik February 1989 ~~~~~This paper describes our efforts in creating support for design applications which require the presentation and manipulation of rapidly evolving systems, with an emphasis on developing software design environments. This support takes the form of active design components that interact and evolve as a community towards an implementation of the application being developed. An objective of this work is the development of domain specific abstractions for specific classes of programming problems. Multiprocessing, or parallel programming provides the basis for the set of components we have implemented and utilize in the implementation in our prototype environment. ----------------------------------------------------------------------------- 89-CSE-6. ($2.00) SMU/SEAS NETWORK SIMULATION IN PAWS/GPSM Greg S. Moore and Murat M. Tanik February 1989 ~~~~~This project concerns the use of the PAWS software package to evaluate and generate a performance analysis of the School of Engineering and Applied Sciences computer network at SMU. The project has been developed over two semesters because of the large amount of computer network information needed and the complexity of PAWS. This report outlines the entire procedure followed during the course of this project. All work has been directed towards the development of the PAWS (Performance Analysts Workbench System) program which generates performance analyses of the SEAS computer network. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-7. ($3.00) REQUIREMENTS SPECIFICATION FOR A REAL-TIME EMBEDDED EXPERT SYSTEM Sang C. Suh, Frank Coyle, Dennis J. Frailey, Murat M. Tanik February 1989 ~~~~~Several commercial expert system shells, among them Texas Instruments' PC Plus, provide knowledge engineers with the capability of developing expert system applications. While such systems provide a range of development tools, they are not able to meet the size constraints or provide the run-time performance needed to address problems associated with delivery of embedded real-time applications. Furthermore, there is no provision to provide deliverable code in Ada--a requirement for many DoD systems. ~~~~~The Embedded Consultant project is intended to address these issues by a two-fold approach: a) knowledge base size reduction by means of "code optimization" techniques; b) an inference engine, written in Ada, designed for real-time applications. The project was begun at Texas Instruments under IDEA program funding. The project was transferred to SMU in the Summer of 1988. ----------------------------------------------------------------------------- 89-CSE-8. ($1.50) WORKING-SET COPROCESSOR* Milan Milenkovic March 1989 ~~~~~Although the working-set theory provides a sound basis for efficient management of virtual memory, few if any faithful practical implementations of it have been reported. The primary obstacle lies in the apparent O(n) time complexity of per-reference accounting of page usage required by the definition of the working set, where n is the working-set size of the process under consideration. ~~~~~This paper describes the algorithmic and architectural design of a specialized coprocessor capable of tracking the working set of a running process with 100% accuracy in real time. A customized combination of hashing, timer processing, and hardware assists is employed to achieve O(1) average time complexity of the operations involved in per-reference page accounting. ~~~~~Results of a trace-driven simulation of the working-set coprocessor (WSC)'s operation are presented to demonstrate the feasibility of the working-set coprocessor's implementation using components no faster than those of the cache memory, and to provide some related implementation suggestions. *~This work was partially supported by IBM Corporation. Limited distribution ~~of this paper will take place in the form of a technical report published ~~by IBM. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-9. ($1.00) REQUIREMENTS STUDY FOR A COMPUTING ENVIRONMENT FOR ENGINEERING EDUCATION USING X-WINDOWS Frank P. Coyle, Sang C. Suh, Murat M. Tanik March 1989 ~~~~~Preliminary requirements for a network-based computing facility for engineering education were defined based on interviews with administrative staff of the School of Engineering. Prototype graphic interfaces based on Suntools and X-Windows were developed that permitted icon-based access to system functions. X-Windows was found to be extremely useful in the development of graphical interfaces and provided insights into possible extensions of this work in the area of intelligent user interfaces. ----------------------------------------------------------------------------- 89-CSE-10. ($1.75) UNIT OF CONSISTENCY IN OBJECT ORIENTED DATA BASES* Francisco Mariategui and Margaret H. Eich March 1989 ~~~~~We present a new model for transactions in Object Oriented Data Bases (OODB). This model captures the shape of transactions by following the behavior of the message passing mechanism inherent in the object oriented paradigm. We call this new kind of transaction, "The Pair <GM, DM>". This dynamic model gives rise to tree structured transactions. The end product of this structure are data base accesses. Our model builds a bridge between message passing, by which objects communicate, and data base accesses, by which transactions communicate. Thereby closing the gap between the dynamic view of the world (objects) and the static view of the world (data bases). *~This material is based in part upon work supported by the Texas Advanced ~~Research Program (Advanced Technology Program) under Grant No. 2265 and by ~~the National Science Foundation under Grant IRI-8713654. ----------------------------------------------------------------------------- 89-CSE-11. ($2.25) MULTI-GROUP MULTI-LAYER CONCURRENCY CONTROL IN OODBs* Francisco Mariategui and Margaret H. Eich March 1989 ~~~~~We propose a multi-group multi-layer approach to concurrency control in Object Oriented Data Bases (OODB). Our proposed architecture provides flexibility and adaptability in the sense that it allows several concurrency control techniques to coexist in the same system. OODBs have the potential to handle a variety of environments and this capability must be matched with an appropriate mechanism to handle concurrency. ~~~~~We specify the workings of a Concurrency Control Manager Module that handles several groups of transactions in parallel. We also decompose the concurrency control mechanism into pieces. Each one of these pieces accomplish a specific function and represent different levels of abstraction in concurrency control processing. The resulting module provides the underlying technology to make our approach feasible. *~This material is based in part upon work supported by the Texas Advanced ~~Research Program (Advanced Technology Program) under Grant No. 2265 and by ~~the National Science Foundation under Grant IRI-8713654. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-13. ($1.50) SYSTEM SPECIFICATION WITH COMMUNICATING SEQUENTIAL PROCESSES (CSP) Sanjive Agarwala Murat M. Tanik Texas Instruements Inc. Southern Methodist University April 1989 ~~~~~Communicating Sequential Processes (CSP) is an abstract, formal model of information flow, particularly suited in describing and analyzing systems and applications that may exhibit multiple concurrent and communicating activities. This study is aimed at applying the basic ideas of CSP in hardware design and finding if this approach yields some practical benefits in terms of coping with complex system design problems, with comparative ease of design. CSP can provide formalisms that truly express concurrency from a very high level of behavioral abstraction, where the architect is still in control. The basic CSP primitives are very suggestive of their possible realization in terms of hardware components. Moreover, we believe that there is a commonality in hardware and software design and thus we may find a significant applicability of the new ideas of structured programming and CSP to yield some practical benefits for system design and specification. ----------------------------------------------------------------------------- 89-CSE-14. ($2.25) STUDIES ON MULTI-PEG TOWERS OF HANOI Sam S. Chen, Ching-chao Liao*, David Y.Y. Yun, Murat M. Tanik April 1989 ~~~~~A heuristic approach named bipartite consecutive-disk decomposition is proposed as a divide-and-conquer problem solving paradigm so that its optimal can be the upper bound solution on the required number of moves for the multi-peg Towers of Hanoi, i.e. the problem of moving n disks from a source peg to a destination peg with the aid of k additional working pegs. After limited exploring on some interesting cases of small n, two heuristic evaluation functions in terms of certain u, the degree of working peg utilization, are presented for the optimal decomposition and the effective prediction of the required number of moves. The predication behavior in terms of the heuristic evaluation functions is analyzed further. The required number of moves is shown to be of degenerate exponential with respect to the number of disks while using more working pegs (k>1) successively. If we can let k grow at a certain constant rate of n1/u/u, then the solution behavior can even be linear with 2un. *~Visiting scholar at SMU in 1988, Professor, Chung Cheng Institute of ~~Technology, Taiwan, Republic of China. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-15. ($2.00) AN AGENT FOR INTELLIGENT MODEL MANAGEMENT John I.C. Liu and David Y.Y. Yun Dept of Computer Science and Engineering Gary Klein Dept of Management Information Sciences Edwin L. Cox School of Business August 1987 (Revised April 1989) ~~~~~Decision Support Systems (DSS) and Expert Systems (ES) are both aimed at improving decision-making. Current DSS usually concentrate on quantitative model methods while ES emphasize logic and reasoning. In this paper, we review previous approaches used by DSS to handle decision models. We propose an extension to such systems, an Agent for Intelligent Model Management (AIMM), as an interface between DSS and the users. AIMM utilizes a combination of knowledge representations and reasoning mechanisms to make a wide variety of models available to decision makers so that they may apply these models without becoming involved in technical or procedural aspects of implementation. A prototype of the system for financial problems is described. ----------------------------------------------------------------------------- 89-CSE-16. ($1.75) LCF: A LEXICOGRAPHIC BINARY REPRESENTATION OF THE RATIONALS Peter Kornerup David W. Matula* Odense University Southern Methodist University April 1989 ~~~~~A new binary representation of the rationals derived from their continued fraction expansions is described and analysed. The concepts "adjacency", "mediant" and "convergent" (best rational approximation) from the literature on Farey fractions and continued fractions are suitably extended to provide a foundation for this new binary representation system. Worst case representation-induced precision loss for any real number by a fixed length representable number of the system is shown to be at most 19% of bit word length, with no precision loss whatsoever induced in the representation of any reasonably sized rational number. The representation is proposed as host for a computer arithmetic synergistically supporting exact rational and approximate real computation. *~This research was partially supported by the National Science Foundation ~~under grant DCR-8315289. ----------------------------------------------------------------------------- 89-CSE-17. ($1.00) EXECUTE LOCKING* Margaret H. Eich ~~~~~An extension to two-phase locking which synchronizes the execution of procedures is proposed. This technique, Execute Locking, is two-phase with respect to data access but is not two-phase with respect to procedure execution. It is shown that serializability is maintained. *~This material is based in part upon work supported by the Texas Advanced ~~Research Program (Advanced Technology Program) under Grant No. 2265 and by ~~the National Science Foundation under Grant IRI-8713654. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-18. ($1.50) RAPID PROTOTYPING SYSTEM SPECIFICATION Joseph S. Dancses and Murat M. Tanik May 1989 ~~~~~We present System Level Specification of a Rapid Prototyping System including development environment, a programming language, and the human interface in accordance with the guidelines provided by DoD-STD-2167A. ----------------------------------------------------------------------------- 89-CSE-19. ($1.00) AN EXPOSE-AND-MERGE ALGORITHM AND THE CHROMATIC NUMBER OF A RANDOM GRAPH* David W. Matula and Ludek Kucera** May 1989 ~~~~~A randomized algorithm is described employing the expose-and-merge paradigm to create and color random graphs. An analysis of the algorithm is then employed to resolve a conjecture about the chromatic number of a random graph, where specially we prove that almost surely xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ~*~This paper is to appear in the Proceedings from the Third Seminar on ~~~Random Graphs and Probabilistic Methods in Combinatorics and Computer ~~~Science held in Poznan, Poland Aug. 1987 (to be published by Wiley). **~Professor Kucera is on leave from Charles University, Prague, Czechosolvakia. ----------------------------------------------------------------------------- 89-CSE-21. ($1.50) REAL-TIME EMBEDDED EXPERT SYSTEMS AND KNOWLEDGE-BASE TRANSLATION PROBLEM Dennis J. Frailey, Sang C. Suh, Frank Coyle, Murat M. Tanik June 1989 ~~~~~A wealth of tools are now available for expert system development. Most of these utilize powerful computing resources, including fast processors, symbolic programming languages, large main memories, and extensive interactive graphics support. Although well suited to expert system development, such computing systems are inappropriate for certain embedded real-time environments in which limited memory sizes, conventional processor architectures, standard programming languages and serious reliability considerations apply. Moreover, embedded systems typically have little or no need for interaction with an operator, but have important requirements for time-critical, interactive operation with other programs and equipment. ~~~~~This report focuses on automatic translation of knowledge bases into structures that can be manipulated in conventional programming environments. Several opportunities are described for accomplishing this goal. Techniques from compiler code optimization are identified that can facilitate translation of knowledge bases into compact data structures suitable for processing with a small inference engine. An experimental effort using an Ada inference engine is described. Potential problem areas of real-time systems are classified in an appendix. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-22. ($3.50) THE LISP PROGRAMMING LANGUAGE: TUTORIAL AND EXPERIENCE Terry L. Colvin, Frank Coyle, Murat M. Tanik June 1989 ~~~~~LISP was developed in the late 1950's by John McCarthy, making it one of the oldest programming languages still in use. It was designed specifically for list processing--the manipulation of symbolic information. Because of LISP's power and flexibility, it is the most widely used language in the field of artificial intelligence. ~~~~~Although there are several dialects of LISP, no single one has been accepted as a uniform standard. The versions of LISP used in this paper will be Common Lisp, defined by Guy Steele in his book Common Lisp: The Language and Franz LISP, which was developed in the early 1980's at the University of California at Berkeley. ----------------------------------------------------------------------------- 89-CSE-23. ($2.00) THE EVOLUTION OF RANDOM GRAPHS Michal Karonski* June 1989 ~~~~~Let us adopt a dynamic view in which a graph, acquiring edges, grows from empty to complete. More precisely, start with n labelled vertices {1, 2, ..., n} and add edges at random, one at a time, until the resulting graph is complete. This simple model of a graph evolving in a random manner was first investigated in detail by Erdos and Renyi (1960). The key question they posed may be stated in general terms as follows: what is a typical structure of a random graph during its evolution? We say that a structure (or a graphical property) is typical if a random graph posseses it almost surely, i.e., with probability tending to one as the number of vertices tends to infinity. This whole section is, to a large extent, devoted to the description of various problems arising from this basic question. *~Professor Karonski is on leave from the Department of Discrete Mathematics, ~~Adam Mickiewicz University, Poznan, Poland. ----------------------------------------------------------------------------- 89-CSE-24. ($1.00) MICROPROCESSOR MEMORY-MANAGEMENT UNITS Milan Milenkovic June 1989 ~~~~~This report describes the current crop of commercial memory management units (MMUs) for 32-bit microprocessors of both CISC and RISC varieties. The purpose of this study is to review and compare the design principles and features of high-end MMUs across a common set of criteria. In addition to covering traditional support for virtual memory, consideration is given to support for Unix-style of memory management and for multiprocessor/multiple MMU configurations. ~~~~~Section 1 of this report contains an overview of the rationale, principles, and issues related to hardware support for memory management and virtual memory. Section 2 contains brief overviews of the following MMUs: Intel~80386, 486, 860, Motorola MC68851 (MMU for MC68020), MC68030, MC68040, MC88200 (MMU for 88K series), SPARC MMU Fujitsu MB86920, and MIPS R2000/R3000. Discussion and closing remarks are presented in Section 3 which also contains a tabulated summary of the presented MMUs. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-25. ($1.00) ON HAMMING NETWORKS Wen-Kuang Chou and David Y.Y. Yun June 1989 ~~~~~A revised Hamming net is proposed, validated, and tested. Both the original Hamming net and the revised model have been implemented. Experimental results show the equivalence of both models in the noiseless cases, but show dramatic improvements in classification problems with noise. A proof of the convergence theorem for the revised model is given. ----------------------------------------------------------------------------- 89-CSE-26. ($1.25) INTERFACE DESIGN ISSUES IN A LABORATORY SETTING Mary Lynne Morrow, Maria Fafouti-Milenkovic, Pari Sadagousheh, Murat M. Tanik June 1989 ~~~~~This is a report of the research conducted on behalf of Abbott Hospital Supply. It states the particular "needs" of Abbott that the research is addressing and the specific objectives and goals for the first phase of the research project. The report includes data from a pilot study (interview responses of lab technicians from different hospital and laboratory sites) and the preliminary analysis of the results collected so far. ----------------------------------------------------------------------------- 89-CSE-27. ($2.50) A SYSTEMS DESIGN APPROACH TO A CONCURRENT EMBEDDED SYSTEM DESIGN PROCESS AND ENVIRONMENT Geoffrey C. Hingle and Murat M. Tanik June 1989 ~~~~~This paper presents a "System Design-system" (SD-system) which efficiently integrates the people involved in the management, design, development, testing, production and maintenance processes of large-scale embedded systems. The design of large embedded hardware/software systems such as an aircraft requires the involvement of many people before design requirement decisions can be made. System requirements must be developed and negotiated between people and corporations concurrently as the embedded systems of a large system are developed. Therefore, design methods such as structured design can be used more efficiently in the system design of these large embedded systems, if the structured design methodologies support the design interaction of many people and corporations. The people involved in embedded system design are the 'glue' that connect the design processes of each embedded system development into a single process for the design of a total system of embedded systems. We believe, in order to instantiate efficient system engineering methods during the concurrent development of large embedded systems, we must design a SD-System which efficiently connects the "Human-Objects" (system designers) involved in the concurrent design, development, test, production, and maintenance of a large embedded system. This is the main thrust of our paper. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-28. ($1.00) A SIMULATION TECHNIQUE TO CONSTRUCT PARALLEL EXECUTION PROFILE FROM SEQUENTIAL TRACE OF LOGIC PROGRAMS* Chin-Feng Fan and Prasenjit Biswas April 1989 ~~~~~A fast way of estimating the performance of different parallel execution models for logic programs is presented. This technique constructs parallel execution profile from sequential trace information. A performance tool can be conveniently realized with which the speed up, effect of varying granularity of tasks, parallel execution overheads, and distribution of tasks can be examined without actually executing benchmark programs. This approach includes three steps: acquiring sequential trace of a Prolog program, converting it into task trace, and executing the program based on the simulated model using the trace. The difficulties of this process are caused by the backtracking and nondeterministic features of logic programs. Conceptually a multi-dimensional execution tree of a benchmark program is reconstructed from its sequential trace for a simulated model. This technique saves a substantial amount of evaluation time in comparison to the frequently used technique of simulation/emulation based on instruction-by- instruction execution of complied logic programs. It can be realized as a general simulation tool to gain further time saving. Visualization of the resulting execution tree can easily be included in the future. The technique has been implemented to compare two different parallel models supporting different granularities of tasks. *~This research was supported by Texas Advanced Technology Program Contract ~~3128 (1988). Appeared in Proc. of 22nd Annual Simulation Conf., Pittsburgh, May l989. ----------------------------------------------------------------------------- 89-CSE-29. ($1.00) ABSTRACT MACHINE LORAP II AND EXPERIMENTS IN PROCESS GRAIN SIZE DETERMINATION FOR PARALLEL EXECUTION OF LOGIC PROGRAMS* Chin-Feng Fan and Prasenjit Biswas May 1989 ~~~~~In this paper we propose a distributed multiprocessor execution model LORAP II for parallel execution of logic programs. Each processor in the abstract machine is capable of supporting processes of variable grain sizes and is designed to be competitive with existing sequential implementations for deterministic cases. We present a set of experiements that establish the requirement for determining appropriate process grain sizes for effective parallel processing. Some heuristics are presented for compile time grain size determination. Finally, we present some results from our experiements using the heuristics, that indicate a significant improvement in performance over a similar model (LORAP) supporting fine grain processes. *~This research was supported by Texas Advanced Technology Program Contract ~~3128 (1988). A shorter version has appeared in Proc. of IEEE Symp. on Tools for AI (Architecture, Languages and Systems), Virginia, Oct. 1989. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- 89-CSE-30. ($1.00) A MODEL FOR MULTIPROCESSOR I/O Milan Milenkovic July 1989 ~~~~~Recent advances in processor architecture and memory technology will likely continue to contribute to increases of computational power of computer systems. However, the lack of corresponding improvements in input/output throughput results in somewhat unbalanced systems designs. ~~~~~This paper proposes an architectural approach for increasing the performance of I/O, especially in multiprocessors and in distributed systems. The proposal calls for a considerable increase of I/O subsystem autonomy and self-sufficiency by means of encapsulation of I/O hardware and software into dedicated processing complexes termed server engines. The server-engine approach is suited to the specific needs of input/output, including longevity, burstiness, event-driven and time-critical nature. The paper describes the basic structure and several different types of server engines. ~~~~~The functional decomposition and encapsulation of I/O operations within server engines provide some significant benefits in multiprocessor systems. The major ones include improved I/O performance, increased parallelism, and significant reduction of the load on the shared system-interconnection paths. ----------------------------------------------------------------------------- 89-CSE-31. ($2.50) DATABASE PARTITIONING TECHNIQUES TO SUPPORT RELOAD IN A MAIN MEMORY DATABASE SYSTEM: MARS Le Gruenwald and Margaret H. Eich September 1989 ~~~~~In a main memory database system, the primary copy of the database is placed in volatile memory. When a crash occurs, a partial or complete reload of the database from archive memory (AM) into main memory (MM) is needed. To effectively perform the reload process without degrading the system performance, the most effective technique for structuring AM and MM should be determined. This paper reports on experiments performing a complete analysis of possible partitioning techniques in terms of the number of I/Os for reload and number of MM references incurred during transaction processing. Our analysis shows that horizontal and single vertical partitioning are actually the only possible candidates. Which one is best depends on the types of transactions executed. -----------------------------------------------------------------------------