In this paper, we present a model and language constructs for a distributed real-time system with the goal of allowing the structured specification of functional and timing constraints, along with explicit, early error recovery from timing faults. To do this, we draw on ideas from (non-distributed) real-time programming and distributed transaction-based systems [81]. A complete language is not specified; the constructs described are assumed to be embedded in a block-structured procedural host programming language such as C [9] or C++ [10] (our current preliminary implementation is in C). The model consists of resources, processes, and a global scheduler. Resources are abstractions that export operations to processes, and specify acceptable concurrency of operations to the scheduler. Processes manipulate resources using the exported operations, and specify synchronization and restrictions on concurrency (at the exported operation level) to the scheduler. Examples of the types of information given to the scheduler are that a set of operations should be performed "simultaneously", or that a sequence of operations should be performed without interference by another process. The global scheduler embodies the entity or entities that schedule the CPU, memory, devices and other resources in the system. It performs preemptive scheduling of all resources based on dynamic priorities associated with the processes, preserves restrictions on concurrency stated by resources and processes, and is capable of giving "guarantees" to processes that they will receive resources during a specified future time interval. The remainder of the paper is structured as follows. In the next section, we present language constructs for an expression of timing constraints called temporal scopes, and described resources and processes. Section 3 describes what is required of the global scheduler to support these constructs, and what is entailed in guaranteeing functional consistency.' We conclude in Section 4. Comments University of Pennsylvania Department of Computer and Information Science Technical Report No. MSCIS-89-78. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/813 Language Constructs For Distributed Real-Time Consistency MS-CIS-89-78 GRASP LAB 199 Victor Wolfe Susan Davidson Insup Lee Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania Philadelphia, PA 19104-6389
[1]
Hector Garcia-Molina,et al.
Using semantic knowledge for transaction processing in a distributed database
,
1983,
TODS.
[2]
Tomas Mirtin.
Realtime programming language PEARL - Concept and characteristics
,
1978,
COMPSAC.
[3]
Insup Lee,et al.
A predictable real-time kernel for distributed multisensor systems
,
1989,
Computer.
[4]
Barbara Liskov,et al.
Distributed programming in Argus
,
1988,
CACM.
[5]
Insup Lee,et al.
Timed Atomic Commitment
,
1991,
IEEE Trans. Computers.
[6]
Kwei-Jay Lin,et al.
Expressing and maintaining timing constraints in FLEX
,
1988,
Proceedings. Real-Time Systems Symposium.
[7]
Sabina H. Saib,et al.
The ada programming language
,
1983
.
[8]
Alexander D. Stoyen,et al.
Real-Time Euclid: A language for reliable real-time systems
,
1989,
IEEE Transactions on Software Engineering.
[9]
I. C. Pyle,et al.
The ada programming language
,
1985
.
[10]
Chung Laung Liu,et al.
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
,
1989,
JACM.
[11]
Insup Lee,et al.
Language Constructs for Distributed Real-Time Programming
,
1985,
RTSS.
[12]
Bjarne Stroustrup,et al.
C++ Programming Language
,
1986,
IEEE Softw..
[13]
Professor Dr. Niklaus Wirth,et al.
Programming in Modula-2
,
1982,
Springer Berlin Heidelberg.
[14]
A. D. Stoyenko,et al.
Real-time Euclid: a language for reliable real-time systems
,
1989
.