[aadl-modeling]: Questions regarding subprograms/Input_/Output_Time/Paragraph 9.2.6 (57) and found errors during reading AS5506B
Thomas Driessen
thomas.driessen at ds-lab.org
Mon Jan 30 09:31:09 EST 2017
Hi Peter,
thank you very much for the detailed answer.
Kind regards,
Thomas
------ Originalnachricht ------
Von: "Peter Feiler" <phf at sei.cmu.edu>
An: "AADL Modeling" <aadl-modeling at lists.sei.cmu.edu>
Gesendet: 30.01.2017 15:17:27
Betreff: Re: [aadl-modeling]: Questions regarding
subprograms/Input_/Output_Time/Paragraph 9.2.6 (57) and found errors
during reading AS5506B
>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>
>
>An: "AADL Modeling" <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 offsetdeadline with no offsetstart 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 Errors1.6 (7): "for which another hybrid semantics diagram with
>>an identically labeled oblong box" - this sentence is doubled5.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 doubled8.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 oneA.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" twiceA.9 (10): "... who many elements ..." - should
>>be "how"?Page 98: In my copy this page is empty.Inconsistencies5.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