| |
3-34 UML-Profil für Schedulability, Leistung und Zeit, v1.0 September 2003 3 Betrachten Sie zum Beispiel den Fall irgendeines Realzeitsystems, in dem das externe Temperatur wird durch eine engagierte zyklische Aufgabe mit der Rate von 50mal ein Sekunde probiert und der gegenwärtige Wert niedergelegt in einer weithin bekannten Gedächtnisposition. Übereinstimmend mit Temperaturmusterstückaufgabe sind zwei verschiedene Aufgaben ein Betrieb bei 50mal ein Sekunde und das andere bei 25mal ein Sekunde. Jede dieser beiden Aufgabennotwendigkeiten, den gegenwärtigen Wert zu beraten von der externen Temperatur, wie sie seinen Durchlauf durchführt. Weil diese Aufgaben eine geteilte Gedächtnisposition zugänglich machen, müssen sie ein Common teilen Adressbereich und folglich alle Muß werden dem gleichen Betriebssystemprozeß zugeteilt (wir nehmen hier an, daß ein "Prozeß" ein Betriebssystemwesen ist, das ein virtuelles definiert Adressbereich). Jedoch da die drei Aufgaben gleichzeitig sind, jede muß abgebildet werden zu einem unterschiedlichen kompakten Gewinde innerhalb des Prozesses, der den geteilten Adressbereich liefert. Lassen Sie uns annehmen, daß es eine diese Anforderung die Kontextschaltungszeit dieser Gewinde gibt kann nicht 10 Mikrosekunden übersteigen. Ausserdem der Prozeß, der diese Gewinde enthält Muß eine Kontextschaltungszeit nicht haben, die grösser als 80 Mikrosekunden ist. Das angeforderte Klima konnte durch ein Modell in diesem Fall beschrieben werden, das schaut, wie gezeigt in Tabelle 3-16 . Tabelle 3-16 Beispiel einer angeforderten Klimaspezifikation Das komplette Pflichtenheft, einschließlich des angeforderten Klimateils wurde dann werden durch das zusammengesetzte Modell beschrieben Sie, das in Tabelle 3-17 bildlich dargestellt wird . Tabelle 3-17 komplettes Pflichtenheft für das Beispiel "OSprocess" HostProcess: P { ctxtSw = "usec 80"; Haufen = "30 KBS } "LWT" Thread1: T { ctxtSw = "usec 10" } "LWT" Thread3: T { ctxtSw = "usec 10" } "LWT" Thread2: T { ctxtSw = "usec 10" } "OSprocess" HostProcess: P { ctxtSw = "usec 80"; Haufen = "30 KBS } "LWT" Thread1: T { ctxtSw = "usec 10" } "LWT" Thread3: T { ctxtSw = "usec 10" } "LWT" Thread2: T { ctxtSw = "usec 10" } TSensor: TemperatueSensor { Zyklus = "20 Millisekunde" } Injektor: FIControl { Zyklus = "20 Millisekunde" } instPanel: Register { Zyklus = "40 Millisekunde" } Temperatur: Temperatur "erfordert" "erfordert" "erfordert" "erfordert" |  |
|
| |
|
|