[aadl-modeling]: Questions regarding subprograms/Input_/Output_Time/Paragraph 9.2.6 (57) and found errors during reading AS5506B

Peter Feiler phf at sei.cmu.edu
Mon Jan 30 09:17:27 EST 2017


Hi Thomas,

Call nesting is represented by the call sequence mechanism, i.e., a call sequence in one subprogram calling another subprogram.
People also wanted to explicitly model code instances – either for whole libraries or individual subprograms.
So you would typically have an instance of a library (aka subprogram group subcomponent) inside a process, i.e., a library shared between threads within a process address space.
A subprogram subcomponent inside a subprogram would indicate that I have an instance of the inner subprogram always when a get an instance of the outer one. At the moment I do not have a good use example for that scenario.
In general, the focus of AADL is not so much to model source code level structures – there are plenty tools that give you that information.

As to input output time:
You are correct: the intent is to specify an input or output time in the range of start time and completion time. The offset can be specified relative to start time, thus a positive offset, or relative to completion time, thus a negative offset (completion with an offset between (start - completion..0)

9.2.6 (57/58) is trying to describe the scenario where a single port queue instance is serviced by multiple threads. Syntactically you would tag the port of an enclosing component, e.g., a thread group or process, as a port with queue and a fan-out policy other than broadcast to all. (57) tries to say that sent data/message end up in the tagged port. (58) is trying to say that the remaining connections from the tagged port to the thread represents the servicing by the thread without it having a separate port with queue. As I read the text I agree it is somewhat awkwardly expressed as we tried to describe it in terms of semantic connection defined, which originally had point to point semantics without selective target fanout.

Peter

From: aadl-modeling-bounces+phf=sei.cmu.edu at lists.sei.cmu.edu [mailto:aadl-modeling-bounces+phf=sei.cmu.edu at lists.sei.cmu.edu] On Behalf Of Thomas Driessen
Sent: Monday, January 30, 2017 8:21 AM
To: AADL Modeling <aadl-modeling at lists.sei.cmu.edu>
Subject: Re: [aadl-modeling]: Questions regarding subprograms/Input_/Output_Time/Paragraph 9.2.6 (57) and found errors during reading AS5506B

Hi,

I just wanted to ask if there's anything new regarding my questions.
Any advice is highly appreciated :)

Kind regards,
Thomas

------ Originalnachricht ------
Von: "Thomas Driessen" <thomas.driessen at ds-lab.org<mailto:thomas.driessen at ds-lab.org>>
An: "AADL Modeling" <aadl-modeling at lists.sei.cmu.edu<mailto:aadl-modeling at lists.sei.cmu.edu>>
Gesendet: 19.01.2017 16:38:58
Betreff: Questions regarding subprograms/Input_/Output_Time/Paragraph 9.2.6 (57) and found errors during reading AS5506B

Hello,

I was reading the standard AS5506B for the last weeks and stumbled upon some parts that are still not clear to me. Besides, I found some typo errors and inconsistencies that I listed below, where I'm sometimes not sure which part of the standard is right for a given fact.

But first my questions:

Regarding subprograms:
I understand a subprogram as a method or a function which is some text in any given programming language.
According to the standard subprograms may contain other subprogram subcomponents. As I'm mainly programming in Java I'm not familiar with a concept where a method can contain another method. So if I have a subprogram A containing another subprogram B does that mean that I'm making a method call from within A to B? Or is there another semantic meeaning for this containment relationship?

Regarding Input_Time/Output_Time:
As I get it I can use those two properties to define when exactly Input is frozen and Output ist sent [9.2.4 (30)/(31)]. Those properties actually allow me to define any given point in time, as they only take one of the lifecycle events of a thread as starting point (dispatch, start, completion, deadline) and a Offset that can also be negative.  Doesn't that conflict with 9.2 (8), which states that "The inputs and outputs can be speci
fied to occur at dispatch, any time during execution, at completion, or at deadline." and thus is restricting input/output to either be

  *   dispatch with no offset
  *   deadline with no offset
  *   start with an offset between 0 .. (completion - start)
  *   completion with an offset between 0 .. (start - completion)
where we assume that start <= completion?

Regarding 9.2.6 (57):
I don't understand this paragraph.
Can you give me an example for what case this paragraph is needed?

Below you can find a List of typo errors and inconsistencies I found during my reading.

Kind regards,
Thomas

  *   Typo Errors

     *   1.6 (7): "for which another hybrid semantics diagram with an identically labeled oblong box" - this sentence is doubled
     *   5.2 (C2): "calss" should be "calls"?
     *   7.1 (L4): This paragraph talks about systems, but (L4) about thread groups. I'm not sure if that's intended?
     *   8.3.2 (19): "This allows users to specify that a subset of ports to provide input." - remove "that"?
     *   8.3.2 (23): "The input of other ports that can trigger dispatch is not frozen." - this sentence is doubled
     *   8.4 (8): "Each provides subprogram access feature of a thread that represents an entrypoint to a remotely callable code sequence in the source text." - remove "that"?
     *   9 (1): this point exists twice!
     *   9.2.5 (38): "sampling, oversampling, and undersampling may occur nondeterministically due concurrency and preemption" - "... due TO..."? I'm not sure about this one
     *   A.2 Synchronized Component: "In other words, the thread a
fects the hyperperiod for mode switching of the property value is true." - "if" instead of "of"?
     *   A.2 Resumption Policy: "applies to" contains "system" twice
     *   A.9 (10): "... who many elements ..." - should be "how"?
     *   Page 98: In my copy this page is empty.

  *   Inconsistencies

     *   5.1 (3) talks about data being local and thus not shareable if de
fined within a thread or subprogram. 5.1 (15) instead talks only about data in subprograms being local and thus not shareable. Which one is right?
     *   8.3.2 (27): The fi
rst part mentions "Dispatch" to be a valid option for "Output Time" but doesn't include it in the following list. Is "Dispatch" a valid value or not?
     *   5.4 (6) & 8.4 (8): 5.4 (6) talks about calls to subprograms dispatching threads and 8.4 (8) about calls to subprograms requesting thread dispatch. Are those semantically equivalent? What if the subprogram is within a periodic thread? Is the call handled the next time the thread dispatches?
     *   9.2 (8): It states that "The inputs and outputs can be speci
fied to occur at dispatch, any time during execution, at completion, or at deadline.", but I'm technically able to de
ne Input and Output to happen at any time between Dispatch and Deadline via Output Time and Input Time. Shouldn't then Output Time/Input Time somehow be restricted in order to this paragraph?
     *   9.2 (L12) & 9.2 (L15): 9.2 (L12) is unnecessary because of 9.2 (L15).
     *   A.1 Allowed Connection Type: can be applied to bus or device, but the explaining text only talks about its e
ect on busses?
     *   Is it intended that some properties do not defi
ne a default, but in their textual explanation a default is given? For example A.1 Preemptive Scheduler: the text states: "By default, if this property is not specfii
ed, the processor owns a preemptive scheduler.", which I would interpret as default value = true.
     *   A.2 Dispatch Able: Within the textual explanation Zero Compute Execution Time is mentioned, which I couldn't fi
nd anywhere.
     *   A.2 Subprogram Call Type: "In case of a semi-synchronous call the user of the result is may be suspended until the result is available." - "is" or "may"?
     *   A.3 Deadline: The default is per defi
nition "Period" which is only mandatory for threads with a periodic dispatch. What if a thread is sporadic or aperiodic and no Period is given?
     *   A.4 Latency: De
finition states that its type is "Time Range", explanatory text below states, that its type is "Time. Which one is right?"
     *   A.4 Queue Size: the explanatory text below states that this property "speci
fies the size of the queue for [...] a data component being shared via data access", but the "applies to" section doesn't contain "data". Which one is right?
     *   A.4 Transmission Type: The "applies to" section only contains "data port", but the explanatory text below also talks about event ports and event data ports. Which one is right?
     *   A.6 Activate Entrypoint Call Sequence: The "applies to" section only contains "thread" and "device", but the explanatory text below also talks about subprograms, event ports and event data ports. Which one is right?
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the aadl-modeling mailing list