Exception handling in control systems

van Da Bert Beek · TU/e Research Portal · 1993

Dit proefschrift beschrijft een studie naar de vereiste concepten en mechanismen voor de afhandeling van excepties in besturingssystemen.Er bestaat veel verwarring in de literatuur ten aanzien van de betekenis van excepties en de relatie tussen excepties en fouten.In dit proefschrift zijn de belangrijkste termen betreffende fouten en excepties nauwkeurig gedefinieerd, waarbij een hoge mate van compatibiliteit is behouden met het gebruik van deze begrippen in de literatuur.De belangrijkste concepten betreffende de drie stadia van foutafhandeling namelijk foutdetectie, foutdiagnose en schadebeperking, en tenslotte foutherstel zijn behandeld.Dit proefschrift gaat uit van voorwaarts fouthersteL Er bestaan verschillende bevredigende en min of meer gelijkwaardige mechanismen voor de afhandeling van interne excepties.Deze mechanismen en een traditioneel mechanisme zijn kort geëvalueerd.De hervattingsresponsie vanuit een exceptie-afhandelaar (Eng.exception handler) is verworpen als zijnde ongewenst, zowel in een enkel sequentiëel proces als in een omgeving met parallelle processen.Een literatuuronderzoek heeft verschillende voorstellen en bestaande mechanismen opgeleverd voor het afhandelen van excepties in besturingssystemen of, meer in het algemeen, in een omgeving van parallelle processen.Er zijn echter geen publicaties gevonden waarin de essentie van de gewenste functionaliteit van zulke mechanismen is beschreven.Daarom zijn de 'constraint van een operatie' en 'constraint-schending' als nieuwe concepten geïntroduceerd.De constraint van een operatie is dat deel van haar preconditie dat invariant is over de operatie: hij moet gelden gedurende de uitvoering van de operatie.Een schending van een constraint van een operatie veroorzaakt een exceptiegeval (Eng.exception occurrence) in het proces dat de operatie uitvoert, hetgeen zou moeten leiden tot het activeren (Eng.to raise) van een exceptie.viii De concepten constraint en constraint-schending zijn gebruikt om de gewenste functionaliteit van exceptie-afhandelingsmechanismen in besturingssystemen te beschrijven.Verschillende bestaande en voorgestelde mechanismen zijn aan de hand van deze functionaliteit geëvalueerd.De mechanismen blijken na evaluatie ofwel een functionaliteit te bieden die te beperkt is voor besturingssystemen, die foutief of ongewenst is, ofwel die in andere opzichten inadequaat is.Een nieuw mechanisme voor het afhandelen van schendingen van constraints is geïntroduceerd.Het mechanisme is gerealiseerd door middel van 'constraint monitors' die worden gebruikt om constraints van operaties onafhankelijk van andere operaties te specificeren en te bewaken, wat een belangrijk vereiste is voor de onwikkeling van modulaire subprogramma's.Een constraint monitor die gebonden is aan een enkele operatie kan ook worden gebruikt voor de specificatie van een constraint die gemeenschappelijk is voor verscheidene operaties.Een constraint monitor wordt gebonden aan een operatie, en bestaat uit een constraint en een exceptie.De schending van de constraint die wordt bewaakt door een constraint monitor resulteert in de creatie van een hangende 1 exceptie.De exceptie wordt niet onmiddellijk geactiveerd, aangezien dit aanleiding kan geven tot tijdsafhankelijke executie-fouten ten gevolge van schendingen van de interne invarianten van een proces.Hangende excepties worden geactiveerd op interactie-punten, wat natuurlijke plaatsen zijn waar interne varianten gelden, maar zij worden niet geactiveerd in exceptie-afhandelaars.Verschillende constraints kunnen op hetzelfde moment worden geschonden door gelijktijdig uitgevoerde processen.Dit kan resulteren in meer dan een hangende exceptie in een proces.Een aantal criteria voor de selectie van een hangende exceptie is geëvalueerd.De hangende exceptie die geselecteerd zou moeten worden, is degene die behoort bij de constraint monitor die als eerste, en dus op het buitenste niveau, is geactiveerd.De andere hangende excepties kunnen worden verwijderd.De enige systemen welke zijn beschouwd zijn systemen die kunnen worden gemodelleerd als 'discrete event' systeem.Het nieuwe mechanisme is onafhankelijk van een specifieke programmeertaal.De functionaliteit van het mechanisme betreft daarom de gemeenschappelijke IX vereisten van talen voor het besturen van industriële systemen.Taal-specifieke elementen zijn niet behandeld.Constraint monitors zijn met succes geïmplementeerd in Procescalculus, een taal voor het specificeren, simuleren en besturen van industriële systemen.De eenvoud en kracht van het nieuwe mechanisme is verduidelijkt aan de hand van een voorbeeld betreffende de besturing van een transportsysteem.x B. I Methods from the Smalltalk system 197 B.2 Methods for the modeling with Process Calculus 198 B.3 Methods for exception handling in Process Calculus 200 Index 205 Curriculum Vitae 209 Chapter 2 Modeling control systems using Process CalculusThe concepts, theories and mechanisms developed in this thesis are independent of a specific programming language.Only the implementation of the developed mechanism is realized in Process Calculus.Many examples are used throughout this thesis in order to illustrate the different concepts, theories and mechanisms.These examples are mainly implemented in Process Calculus.Process Calculus is treated in [Rooda, 1991a and 1991b].More information can be found in [Rooda, 1981; Overwater, 1989;Wortmann, 1991] where the respective terms SOLE, Process Interaction Approach and ProcessTalk are used instead of Process Calculus.In this chapter, Process Calculus is treated in such a way that the examples using Process Calculus can be understood.It is also shown how Process Calculus can be used to specify controlling systems and test them by means of simulation, and how controlling systems are interfaced with the controlled system.Finally, a transport system is considered, together with the specification of its controlling system without error handling.The transport system will be used as the basis of many subsequent examples. Process Calculus Processors and interactionsUsing Process Calculus, an industrial system is specified or modeled as a collection of processors and interaction paths.Interaction paths are connected to processors by means of ports on the processor.A processor can have send ports and receive ports.Interaction paths establish a connection between a send port on a processor and a receive port on another processor.The interaction path is used to transfer an object from one processor to another

Read the paper · More papers on PaperTik