Text anzeigen (PDF) - bei DuEPublico
Text anzeigen (PDF) - bei DuEPublico
Text anzeigen (PDF) - bei DuEPublico
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
In Beispiel 3 -1 sind systemweit die Maschinendienste compute, receive, transmit und copy definiert.<br />
Zwischen den <strong>bei</strong>den SDL-Blöcken ist eine pipe namens pi definiert, die compute und<br />
receive von B1 an B2 übertragen kann und transmit und copy in die andere Richtung. Daher<br />
könnte zum Beispiel im Block B2 eine Maschine definiert werden, die die Dienste compute und<br />
receive anbietet, vgl. Abschnitt 3.4. Diese Dienste könnten von Prozessen in B1 angefordert werden.<br />
3.4 Ergänzungen auf Blockebene<br />
Auf der Blockebene können wie auf der Systemebene weitere Maschinendienste deklariert werden.<br />
Diese sind dann nur innerhalb des Blocks bekannt. Sollten hier Dienste mit Namen definiert<br />
werden, die bereits auf Systemebene verwendet wurden, so überschreibt die Blockdefinition die<br />
Systemdefinition.<br />
Die Maschinen werden ebenfalls auf Blockebene definiert. Dies geschieht durch das Schlüsselwort<br />
machine. Zur vollständigen Spezifikation einer Maschine gehört die Angabe eines Bezeichners,<br />
die Anzahl der Bedieneinheiten, eine Angabe der Bedienstrategie sowie eine Menge von<br />
Maschinendiensten und dienstspezifischen Geschwindigkeiten.<br />
Den Transport von Dienstaufrufen übernehmen auf Blockebene sogenannte Links. Links sind<br />
uni-direktionale Verbindungen, die in einer Maschine enden. Der Anfangspunkt eines link ist<br />
entweder ein Prozeß oder die Blockgrenze, die eine Schnittstelle zur Umgebung bildet. An der<br />
Blockgrenze kann der link durch bind to an eine pipe angeschlossen werden.<br />
Beispiel 3 -2 Ergänzungen auf Blockebene (QSDL/GR und QSDL/PR)<br />
[pi]<br />
Block B2 machineservice<br />
getad(Natural);<br />
compute,<br />
receive<br />
getad<br />
Comp<br />
li1 li2<br />
Entity<br />
block b2;<br />
process Entity referenced;<br />
/*## machineservice getad(Natural); ##*/<br />
/*## machine Comp;<br />
server 1;<br />
discipline fcfs;<br />
offers compute: 1.0, receive:2,<br />
getad:4;<br />
endmachine; ##*/<br />
/*## link li1 from ENV to Comp<br />
with compute, receive; ##*/<br />
/*## link li2 from Entity to Comp<br />
with getad; ##*/<br />
/*## bind pi to li1; ##*/<br />
endblock;<br />
Das obige Beispiel zeigt die QSDL-Ergänzungen auf Blockebene exemplarisch anhand des<br />
Blocks B2 aus dem vorhergehenden Beispiel.<br />
Zusätzlich zu den bereits auf Systemebene definierten Maschinendiensten wird hier noch ein<br />
weiterer Dienst mit Namen getad definiert. Dieser Dienst kann neben den <strong>bei</strong>den systemweit<br />
bekannten Diensten compute und receive von der Maschine Comp erbracht werden. Die<br />
Maschine besitzt einen Bediener, sie entnimmt die Kunden aus der Warteschlange gemäß der<br />
29