Practical Exception Handling and Resolution in Concurrent Programs (1996)

Author(s): Romanovsky A

    Abstract: The paper discusses how atomic actions based on forward error recovery in the form of concurrent exception handling and resolution can be programmed within standard conventional languages (Ada and Ada95). We express the main characteristics of the general atomic action scheme in terms of these languages and discuss a set of templates (skeletons) and programmers' conventions which would allow to program atomic actions within Ada and Ada95. We offer an approach to implementing a resolution procedure (function) and outline other approaches. The scheme is very flexible in that it gives an opportunity for programmers to use any sort of the resolution procedure. We introduce a general concept of self-checking programming, which allows to have the kind of failure assumption necessary for simplifying the atomic action support, and discuss how it can be applied (to Ada, in particular). It is shown how this approach helps to solve the deserter process problem. We outline the main improvements which can be made in the scheme when Ada95 is used. Naturally, our scheme relies on the peculiarities of Ada and Ada95. We believe that this paper discusses important practical questions because it seems unlikely that an existing practical language will have concurrent exception handling of the level sufficient for supporting atomic actions based on forward error recovery.

      • Series Title: Department of Computing Science Technical Report Series
      • Pages: 21
      • Institution: Department of Computing Science, University of Newcastle upon Tyne
      • Publication type: Report
      • Bibliographic status: Published

      Keywords: ADAADA 95, atomic actions, concurrent programming, deserter process, exception handling, exception resolution, multiway redezvous, software fault tolerance

      Staff

      Professor Alexander Romanovsky
      Prof of Computing Science