• No results found

Real-Time Scheduling

In document A testbed for embedded systems (Page 169-183)

7 Dynamic Modification

9.6 Further W ork

9.6.5 Real-Time Scheduling

Although an effort has been made to make the BED kernel predictable and to provide support for delayed actions and deadline-driven scheduling, no compre­ hensive effort has been made to determine the bounds on system operations either

formally or by measurement The problem of analyzing the interactions between multiple communicating slots has not been dealt with either.

In order to increase predictability, the aim was that the overhead of inserting a new message into the schedule be bounded by a multiple of the number of slots rather than dependent on other factors such as the number of messages queued. This together with a need for simplicity and the requirement of preserving message order, led to the two tier schedule consisting of a FIFO queue for messages waiting at each slot and a deadline ordered pool with at most one entry per slot. However to provide greater flexibility to the application programmer, it would be desirable to be able to specify that the slot manage its own queue with an application specified policy. This may increase the scheduling delay for particular slots but if implemented within the system layer need not affect the overall performance or

predictability of the kernel. In addition, alternatives to the earliest deadline first policy which the kernel uses to schedule slots could be specified by the application.

9.6.6 Routing

Only one link'* is currently allowed between any two nodes and the route a message takes is entirely determined by its destination node. In some embedded applica­ tions it might be useful to hâve more than one link between the same pair of nodes and to be able to specify that the route depend on the message type and the source and destination slots. For example a link might be reserved for high priority traffic which should not be held up by other less important messages.

Most of the work in Chapter 5 is not specific to Testbed and could be applied to general parallel processors. There is a great deal of scope for extending the simple algorithm presented in Section 5.4.1 through the use of probabilistic algorithms and

for experimentation with different cost functions. There are many more ways of constructing networks out of simple components than those studied in Section 5.5.

9.6.7 Dynamic Modification

Dynamic modification is a very complex issue and there are many situations where the facilities provided by Testbed could be enhanced. For example the user can provide neither the word mapping function of Section 7.3.1 nor the field mapping of Section 7.4. Instead these are computed automatically by matching array elements and fields with like names. These restrictions rule out moving

fields between nesting levels as in Figure 7.8.

Dynamic modification and process migration in Testbed are provided as devel­ opment and debugging aids, however they are often employed in the field in order to dynamically adapt to changing load (in the case of migration) and to update

systems for which the cost of a complete shut-down would be too high. In these situations safety becomes a much more important issue than during development.

Chapter 7 considered only C types and did not even cope with unions. In more advanced languages higher level types with inheritance need to be considered and will require a more abstract view than taken here.

9.6.8 Background Debugging

Background debugging is a very active field [66] which has only been touched on here. Testbed provides the basis for surrogates which perform background debugging but no automatic mechanisms are provided for mapping specifications into code for behaviour capture and reaction. There is a need for background debugging research in the real-time field where techniques which introduce a high

overhead into communication such as vector timestamps cannot be used. Although the real timestamps which Testbed uses cannot capture causal relationships, they make up for it by providing the timing information necessary in debugging real­ time systems.

9.6.9 Fault Tolerance

Embedded systems are often used in situations where failure can be costly both

financially and in terms of human life^. For this reason fault tolerance is often traded off against cost and performance in the design of the system.

The current implementation of Testbed does not provide built-in fault tolerance. Although it is possible for the designer to build fault tolerant systems at the application level by using redundant processors and higher level protocols, these capabilities or support for them could be added to the Testbed system itself.

9.7 Closing Remarks

Embedded systems are an increasingly important application of computer tech­ nology, both software and hardware. Yet this is an area which has been largely neglected by computer scientists as evidenced by the scarcity of journals and conferences devoted to it. The main focus of current research efforts is in the important field of real-time scheduling, however this is not the only aspect which deserves study. There is currently only one IEEE and ACM sponsored sympo­ sium and one workshop devoted to real-time systems and no journals published by either body. This contrasts with the large number of publications and conferences devoted to parallel and distributed systems. The issues involved in designing embedded systems are not the same as those in general purpose parallel and dis­ tributed computing and these publications and conferences seldom carry papers in this field.

Debugging is another neglected area with a single biannual ACM sponsored workshop devoted to parallel and distributed debugging. Many in the software engineering field espouse the view that “debugging should not be necessary in an ideal world”. However this view ignores the fact that transforming requirements into specifications is a highly error-prone activity which can never be completely

formalized. The debugging phase is as important in understanding the problem and getting the specification right as it is in detecting programming errors.

This thesis has addressed the important, yet difficult problem of testing and

debugging an embedded system. While the highly varied nature of these systems makes it impossible to produce a completely general solution, it is hoped that the approach embodied in Testbed is appropriate to a significant range of potential applications.

Bibliography

[1] Z. Aral and I. Gertner. High-Level Debugging in P#asighL In Proceedings o f the SIGPIAN ’88 Conference on Progranrndngi^Mnguage Design and Implementation^ pages 151-162, June 1988.

[2] Z. Aral and I. Gertner. Non-Intrusive and Interactive Profiling in Parasight In Proceedings of the Symposium on Parallel Programmingy pages 21-30, July 1988.

[3] N. Audsley. Deadline Monotonie Scheduling. Technical Report YCS 146 (1990), University of York - Department of Computer Science, 1990. [4] N. Audsley and A. Bums. Real-Time System Scheduling. Technical Report

YCS 134 (1990), University of York - Department of Computer Science, 1990.

[5] F. Baiardi, et al. Development of a Debugger for a Concurrent Language. In Proceedings of the Software Engineering Symposium on High-Level Debugging,pages 98-106, March 1983.

[6] J. Banerjee, W. Kim, H-J. Kim, and H.F. Korth. Semantics and Imple­ mentation of Schema Evolution in Object-Oriented Databases. In U. Dayal and I. Traiger, editors. Proceedings of the ACM SIGMOD 1987 Annual Conference, pages 311-322, May 1987. San Francisco.

[7] P. Bates. Debugging Heterogeneous Distributed Systems Using Event- Based Models of Behaviour. ACMSIGPLANNotices, 24(1):11-22, January

1989.

[8] P. Bates and J.C. Wileden. An Approach to High-Level Debugging of

Distributed Systems (Preliminary Draft). In Proceedings of the Software Engineering Symposium on High-Level Debugging,pages 107-111, March

1983.

[10] F. Brinksma (Ed.). LOTOS: A Formai Description Technique Based on the Temporal Ordering of Observational Behaviour. International Standard ISO 8807 (draft).

[11] B. Bruegge and P. Hibbard. Generalized Path Expressions: A High Level Debugging Mechanism. In Proceedings of the Software Engineering Sym­ posium on High-Level Debugging, pages 34-44, March 1983.

[12] P. Burgess and M.J. Livesey. A Testbed for Embedded Transputer Systems. Position paper. Workshop on Abstract Machine Models for Highly Parallel

Computers, Leeds, March 25-27 1991,

[13] P. Burgess, M J. Livesey, and C. Allison. A Testbed for Embedded Trans­ puter Systems. LEE Computing and Control Divison Digest No: 1992/204,

1992. Colloquium on Applications of Parallel and Distributed Processing in Automation and Control, Savoy Place, London, 13 November, 1992. [14] P. Burgess, M.J. Livesey, and C. Allison. An Execution Harness for Trans­

puter Based Embedded Systems. In J. Kerridge, editor. Transputer and Occam Research: New Directions, volume 16, pages 25-40. lOS Press, 1993.

[15] P. Burgess, M.J. Livesey, and C. Allison. BED: A Multithreaded Kernel for Embedded Systems. In Proceedings of the 19th IFAC/IFIP Workshop on Real Time Programming. Pergamon Press, 1994.

[16] C. Caerts, R. Lauwereins, and J.A. Peperstraete. PDG: a Process-Level Debugger in GRAPE. \xiACMSIGSOFT’92,1992.

[17] J.D. Choi and J.M. Stone. Balancing Runtime and Replay Costs in a Trace- and-Replay System. InProceedings oftheACM/ONR Workshop on Parallel and Distributed Debugging. In ACM SIGPLAN Notices, 26(12):26-35, December 1991.

[18] A. d’Aciemo, G. De Pietro, and U. Wlano. A Method for Monitoring Occam Internal Channels. In OUG-12 Tools and Techniques for Transputer Applications, pages 190-197. IQS Press, 1990.

[19] W. J. Dally and C. Seitz. Deadlock-Free Message Routing in Multiprocessor Interconnection Networks. IEEE Transactions on Computers, 36(5) :547- 553, May 1987.

[20] W.J. Dally, et al. The Message-Driven Processor: A Multicomputer Pro­ cessing Node with Efficient Mechanisms. IEEE Micro, pages 23-39,1992.

[21] M. Diaz. Modelling and Analysis of Communication and Cooperation

Protocols using Petri Net Based Models. In C. Sunshine, editor. Proto­ col Specification, Testing and Verification, pages 465-510. North-Holland Publishing Company, 1982.

[22] J.T. Draper and J. Ghosh. Multipath B-Cube Algorithms (MECA) for Adap­

tive Wormhole Routing and Broadcasting in k-ary n-cubes. In Proceedings of the Sixth International Parallel Processing Symposium, pages 407-410. IEEE Computer Society Press, March 23-26 1992.

[23] R.S. Fabry. How to Design a System in Which Modules Can Be Changed on the Fly. In Proceedings of the Second International Conference on Software Engineering, pages 470-476,1976.

[24] C.J. Fidge. Reproducible Tests in CSP. The Australian Computer Journal,

19(2):92-98, May 1987.

[25] C.J. Fidge. Detecting Synchronisation Errors in Occam Programs. In

Proceedings of the 12th Australian Computer Science Conference, February 1989.

[26] O. Frieder and M.E. Segal. On Dynamically Updating a Computer Program: From Concept to Prototype. Journal of Systems Software, 14:111-128, February 1991.

[27] J. Gait. A Debugger for Concurrent Programs. Software Practice and Experience, 15(6):539-554, lime 1985.

[28] J. Gait. A Probe Effect in Concurrent Programs. Software Practice and Experience, 16(3):225-233, March 1986.

[29] P.T. Gaughan and S. YalamanchilL Adaptive Routing Protocols for Hy­

percube Interconnection Networks. IEEE Computer, 26(5): 12-23, May 1993.

[30] D. Gelemter. A DAG-Based Algorithm for Prevention of Store-and- Forward Deadlock in Packet Networks. IEEE Transactions on Computers,

30(10:709-714, October 1981.

[31] A.P. Goldberg, A. Gopal, A. Lowry, and R. Strom. Restoring Consis­ tent Global States of Distributed Computations. In Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging. In ACM

[32] G.S. Goldszmidt, K. Shmuel, and S. Yemini Interactive Blackbox Debug­ ging for Concurrent Languages. ACM SIGPLAN Notices, 24(1);271-282, January 1989.

[33] H. Gomaa. Software Development of Real-Ume Systems. Communications of the ACM, 29(7):657-668, July 1986.

[34] A.J. Gordon and R.A. Finkel. Handling Timing Errors in Distributed Pro­ grams. IEEE Transactions on Software Engineering, 14(10): 1525-1535, October 1988.

[35] H. Goullon, R. Isle, and K-P. Lohr. Dynamic Restructuring in an Exper­ imental Operating System. IEEE Transactions on Software Engineering,

4(4):298-306, July 1978.

[36] R. Govindan and D.P. Anderson. Scheduling and IPC Mechanisms for

Continuous Media. In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles. In Operating Systems Review 25(5):68-80, October 1991.

[37] I. Graham and T. King. The Transputer Handbook. Prentice Hall, 1990. [38] D. Gupta and P. Jalote. On-line Software Version Change Using State Trans­

fer Between Processes. Software—Practice and Experience, 23(9):949- 964, September 1993.

[39] W.A. Halang. Load Adaptive Dynamic Scheduling of Tasks with Hard Deadlines Useful for Industrial Applications. Computing, 47:199-213,

1992.

[40] S O. Hallsteinsen. Source Level Debuggers: Experience from the De­

sign and Implementation of CHILLscope. In International Workshop on Advanced Programming Environments, volume 244 of Lecture Notes in

Computer Science, pages 1-10. Springer-Verlag, 1986.

[41] D. Hamlet. Debugging “Level”: Step-Wise Debugging. In Proceedings

In document A testbed for embedded systems (Page 169-183)

Related documents