home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / realtime / 1351 < prev    next >
Encoding:
Internet Message Format  |  1992-11-17  |  9.0 KB

  1. Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!sun-barr!rutgers!igor.rutgers.edu!cadenza.rutgers.edu!masticol
  2. From: masticol@cadenza.rutgers.edu (Steve Masticola)
  3. Newsgroups: comp.realtime
  4. Subject: Re: Technical summary of NATO ASI
  5. Keywords: Real-Time, NATO ASI
  6. Message-ID: <Nov.17.22.06.33.1992.3340@cadenza.rutgers.edu>
  7. Date: 18 Nov 92 03:06:35 GMT
  8. References: <mostert.12.0@firga.sun.ac.za>
  9. Organization: Rutgers Univ., New Brunswick, N.J.
  10. Lines: 192
  11.  
  12. mostert@firga.sun.ac.za (Sias Mostert) writes:
  13.  
  14. >Hi,
  15. >I was unable to attend the NATO ASI in St Maarten 5/10/92-17/10/92 having to 
  16. >abort my attendence at the last moment.  I am interested in the main 
  17. >conclusions reached at the NATO ASI, with regard to the future of research 
  18. >in Real-Time systems for the next 5 years.  Any summary or
  19. >personal opinions are very welcome.
  20.  
  21. Well, the following position paper is not necessarily the main
  22. conclusion of the whole conference, but I think it summarizes some of
  23. the current issues in HRT language design. Others may disagree, I hope
  24. :-) I'd like to get some discussion about languages going here, or at
  25. least some that doesn't deal with the VME bus standard :-)
  26.  
  27. My summary of the language issues discussed at the conference follows
  28. the position paper.
  29.  
  30. - Steve Masticola (masticol@cs.rutgers.edu).
  31.  
  32. -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
  33.  
  34.     Static Analysis: Hard Real Time is Hard, ``Big Time!''
  35.  
  36.              Stephen P. Masticola
  37.             Department of Computer Science
  38.              Rutgers University,
  39.                New Brunswick NJ 08903.
  40.            Email: masticol@cs.rutgers.edu.
  41.  
  42.                    - and -
  43.  
  44.               Thomas J. Marlowe*
  45.               Department of Mathematics
  46.             Seton Hall University
  47.             South Orange NJ 07079.
  48.            Email: marlowe@cs.rutgers.edu.
  49.  
  50. * In affiliation with the Real-Time Systems Laboratory of the New
  51. Jersey Institute of Technology.
  52.  
  53.  
  54. Hard real time (HRT) programs are correct only if they produce a
  55. correct output within a specified time. Failure to meet timing
  56. constraints can be disastrous, and can be caused by subtle bugs that
  57. are difficult to find by testing [GA1]. While formal methods are often
  58. proposed to deal with this problem [Os1], these cannot presently
  59. handle large systems in full generality. We believe that the real-time
  60. community should adopt programming language methodology, e.g., static
  61. anomaly detection, to certify that programs meet termination [MR1] and
  62. timing [HS1] constraints.
  63.  
  64. HRT applications may have complex requirements, making assembly
  65. language programming unreasonably complicated. It is also hard to
  66. ensure safe translation from such intricate specifications into
  67. intermediate code without auxiliary analysis or testing.  Moreover, we
  68. cannot afford (literally) to neglect issues of efficiency, i.e.,
  69. optimization and parallelization. HRT optimization requires harder
  70. static analysis than conventional programs, since semantically
  71. ``safe'' optimizations can cause missed deadlines, and since
  72. previously uncoupled phases of compilation must interact for best
  73. results [MM1].
  74.  
  75. Several languages [HS1], such as Real-Time Euclid [HS2], have been
  76. proposed for HRT systems.  Most are akin to more common languages,
  77. modified to eliminate constructs problematic for HRT (e.g., run-time
  78. loop bounds), and to add features desirable for HRT (e.g., timing
  79. exceptions).  HRT programming is harder in languages lacking the
  80. problem features, but the programming language technique of partial
  81. evaluation [NP1] can help to prove hard time bounds on at least some
  82. programs that include them.
  83.  
  84. While some of the added HRT features are clearly needed, there are
  85. penalties for adding them: increased complexity of both the semantics
  86. of the language and the safety verification of programs.  Ada [AN1],
  87. perhaps the most egregious example of this sort of ``creeping
  88. featurism,'' is consequently difficult to learn, tedious to compile,
  89. and nightmarish to analyze.
  90.  
  91. We propose, instead, that HRT languages should not only be predictable
  92. and schedulable, but also simple.  Simplicity benefits all parties:
  93. the language designer, the compiler writer, and the programmer. The
  94. language should have few primitives, and these should interact only in
  95. predictable, well-defined ways.  Design of the language and the
  96. analysis techniques should proceed together, to assure efficient
  97. program analysis.  The language specification should include a formal
  98. semantics, including time, to facilitate correctness proofs of anomaly
  99. detection and optimization algorithms (as well as potential proofs of
  100. user program correctness).  We suggest that, although current
  101. specification languages appear simple, they may cause problems in
  102. translation or efficiency.
  103.  
  104. Static analysis of hard real time languages is hard --- and necessary.
  105. Formally defined ``reduced instruction set languages,'' in the spirit
  106. of CSP [Ho1], occam [In1], and Scheme [CR1], help to keep the
  107. complexity of HRT analysis reasonable, and are easier to understand
  108. and utilize.
  109.  
  110.  [AN1] American National Standards Institute: ``ANSI/MIL-STD 1815A
  111. (1983) reference manual for the Ada programming language.'' U.S.
  112. Gov't. Printing Office, 1983.
  113.  
  114.  [CR1] Clinger, W. and Rees, J., ed.: ``Revised Report on the
  115. Algorithmic Language Scheme.''  LISP Pointers , 4:3 , July 1, 1991.
  116.  
  117.  [GA1] U.S. Government Accounting Office: ``Patriot Missile Defense:
  118. Software Problem Led to System Failure at Dhahran, Saudi Arabia.''
  119. GAO/IMTEC-92-26, February 1992.
  120.  
  121.  [Ho1] Hoare, C. A. R.: Communicating sequential processes.
  122. Prentice/Hall, 1985. ISBN 0-1315-3271-5.
  123.  
  124.  [HS1] Halang, W. A. and Stoyenko, A. D.: ``Comparative evaluation of
  125. high-level real-time programming languages.''  Real-Time Systems , 2:4
  126. , November 1990, 365--382.
  127.  
  128.  [HS2] Halang, W. A. and Stoyenko, A. D.: Constructing predictable
  129. real-time systems.  Kluwer, 1991.  ISBN 0-7923-9202-7.
  130.  
  131.  [In1] Inmos, Ltd.: Occam programming manual.  Prentice/Hall, 1984.
  132. ISBN 0-1362-9296-8.
  133.  
  134.  [MM1] Marlowe, T. J. and Masticola, S. P.: ``Safe Optimization for
  135. Hard Real-Time Programming.'' 2nd IEEE Int'l.  Conf.  on Syst.
  136. Integration, Morristown, NJ, June 15-18, 1992.
  137.  
  138.  [MR1] Masticola, S. P. and Ryder, B. G.: ``A Model of Ada Programs
  139. for Static Deadlock Detection in Polynomial Time.''  SIGPLAN Notices
  140. 26:12 , December 1991, 97-107.
  141.  
  142.  [NP1] Nirkhe, V. and Pugh, W.: ``Partial Evaluation of High-level
  143. Imperative Languages, with Applications in Hard Real-Time Systems.''
  144. ACM 19th POPL , 1992, 269--280.
  145.  
  146.  [Os1] Ostroff, J. S.: ``Survey of formal methods for the
  147. specification and design of real-time systems.'' In Tutorial on
  148. specifications of time --- abstractions, design methods, languages ,
  149. K. M. Kavi ed., IEEE Press, 1991.
  150.  
  151. Copyright (C) 1992 by Stephen P. Masticola and Thomas J. Marlowe. 
  152. All rights reserved.
  153.  
  154.  
  155. -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
  156.  
  157.          Language Discussions at the NATO ASI
  158.  
  159. There were some lively discussions about language issues at the ASI.
  160. There seemed to be about three camps: the formal methods camp, the
  161. static analysis camp, and the "just count the object code statements
  162. and use worst-case time" camp.
  163.  
  164. W.J. Cullyer and John McDermid were vocal proponents of the first
  165. camp, and I think they had some impressive arguments and practical
  166. results. Formal methods are more accurate, and yield lower defect
  167. rates, than any other language technology available for demonstrating
  168. schedule satisfaction. However, it appears that formal methods are not
  169. yet mature enough for widespread use; formal proof is associated with
  170. a heavy manpower cost, long lead times, and limitations on the size of
  171. programs that can be proved to meet schedule, even with the aid of
  172. current tools.
  173.  
  174. The second camp consisted mostly of the people who were doing static
  175. schedulability analysis, most prominently Alex Stoyenko and (I think!)
  176. Carlo Ghezzi. Notable in the schedulability subgroup was Ken Tindell
  177. of York University, who was working on schedulability analysis through
  178. simulated annealing, and who spoke in one of the birds-of-a-feather
  179. sessions. I had some posters on static deadlock detection and safe
  180. optimization of HRT programs (the latter coming out of work with Tom
  181. Marlowe). Apologies to other people I've omitted.
  182.  
  183. The third camp was, I believe, mostly industry people, who'd been
  184. doing it their way for years. As an engineer, I can see their point;
  185. it's something that can be done. A lot of people in this camp also
  186. seemed to be in the, "Let's throw every feature possible into the
  187. source language" camp. 
  188.  
  189. I think such approaches get them into serious problems of efficient
  190. scalability and ease of use, respectively. As systems get larger and
  191. more complex, overestimates of worst-case execution time get more
  192. serious, if you only pay attention to the code at the machine
  193. instruction level. Also, as features proliferate, they interact, in
  194. ways that are hard to predict and which introduce bugs. The first
  195. problem can be addressed by research; the second requires the use of a
  196. "reduced instruction set language."
  197.  
  198. In this regard, there's a quote I saw that might be pertinent:
  199.  
  200. "The Americans say, `If it ain't broke, don't fix it.' The Japanese
  201. say, `If it isn't perfect, make it better.'"
  202.                     - Stephen Schwartz
  203.                       IBM Senior Vice President
  204.