11. Anlage
 
zurück
11.4.4 Konfigurierbare Einschränkungen beim Prozeßmodell


Zur Erstellung von effizienten Programmen ist es notwendig, Laufzeitsysteme zu haben, die speziellen Anforderungen angepaßt sind. Einige Ada-Sprachelemente können effizienter implementiert werden, wenn dem Ada-Laufzeitsystem bekannt ist, daß gewisse Sprachelemente von Ada nicht oder im beschränkten Umfang verwendet werden. Dies ist generell im Ada-Kern nicht möglich, aber die Anlage "Echtzeitsysteme" definiert eine Menge von Einschränkungen, die ein Laufzeitsystem erkennen sollte, um somit ein effizienteres Ada-Programm zu ermöglichen. Das Konfigurationspragma "Restrictions" kann verwendet werden, um solche Beschränkungen bezüglich des Programms zu spezifizieren.

Syntax:
pragma Restrictions(restriction{, restriction});
restriction ::= restriction_identifier
| restriction_parameter_identifier => expression


Während der Übersetzungszeit werden z. B. folgende Einschränkungen geprüft:
  • No_Abort_Statement
    Es existieren keine Abbruchanweisungen (abort_statement <BNF>) .
  • No_Terminate_Alternatives
    Es gibt keine selektiven Annahmeanweisungen (select_alternative <BNF>) mit einer "terminate"- Alternative (terminate_alternative <BNF>).
  • No_Implicit_Heap_Allocation
    Es existieren keine Operationen, die implizit eine Allozierung von dynamischem Speicher durch die Implementierung benötigen.
Während der Laufzeit werden z. B. folgende Beschränkungen geprüft:
  • Max_Storage_At_Blocking
    Spezifiziert die maximale Größe des Speicherbereichs eines parallelen Prozesses, der durch einen blockierten parallelen Prozeß zurückbehalten werden kann.
  • Max_Asynchronous_Select_Nesting
    Spezifiziert die maximale Verschachtelungstiefe von asynchronen Auswahlanweisungen (asynchronous_select <BNF>). Ein Wert von null verhindert den Gebrauch einer asynchronen Auswahlanweisung.
  • Max_Tasks
    Spezifiziert die maximale Anzahl von parallelen Prozessen, den Umgebungsprozess ausgenommen, die während der Lebensdauer einer Partition existieren dürfen.
Das Pragma ist Bestandteil des Kerns von Ada, aber verschiedene Beschränkungen sind im Anhang "Echtzeitsysteme" definiert. Weitere Beschränkungen sind im Anhang "Safety and Security" $->Safety and Security$ definiert. Es existieren Einschränkungen, die zur Übersetzungszeit geprüft und andere die während der Laufzeit geprüft werden.


 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.