From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Ada.Execution_Time
Date: Fri, 17 Dec 2010 13:50:26 +0200
Date: 2010-12-17T13:50:26+02:00 [thread overview]
Message-ID: <8n1142Fto2U1@mid.individual.net> (raw)
In-Reply-To: <1n3o55xjdjr9t.1u33kb75y2jfl$.dlg@40tude.net>
Dmitry A. Kazakov wrote:
> On Fri, 17 Dec 2010 10:49:26 +0200, Niklas Holsti wrote:
>
>> Dmitry A. Kazakov wrote:
>>> CPU_Time has no physical meaning. 2s might be 2.5s
>>> real time or 1 year real time.
>> CPU_Time values have physical meaning after being summed over all tasks.
>> The sum should be the real time, as closely as possible.
>
> 1. Not tasks, but threads + kernel services + kernel drivers + CPU
> frequency slowdowns => a) wrong; b) out of Ada scope => cannot be mandated
I believe we are talking about the intended meaning of
Ada.Execution_Time.CPU_Time, not about how far it can be precisely
"mandated" (standardized).
Appendix D is about real-time systems, and I believe it is aimed in
particular at systems built with Ada tasks and the Ada RTS. In such
systems there may or may not be CPU time -- "overhead" -- that is not
included in the CPU_Time of any task. See the last sentence in RM D.14
11/2: "It is implementation defined which task, if any, is charged the
execution time that is consumed by interrupt handlers and run-time
services on behalf of the system". In most systems there will be some
such non-task overhead, but in a "pure Ada" system it should be small
relative to the total CPU_Time of the tasks.
By "CPU frequency slowdowns" I assume you mean a system that varies the
CPU clock frequency, for example to reduce energy consumption when load
is low. This do not necessarily conflict with Ada.Execution_Time and the
physical meaning of CPU_Time, although it may make implementation
harder. One implementation could be to drive the CPU-time counter by a
fixed clock (a timer clock), not by the CPU clock.
> 2. Not so anyway under many OSes => again, cannot be mandated
Whether or not all OSes support the concepts of Ada.Execution_Time is
irrelevant to a discussion of the intended meaning of CPU_Time.
> 3. The intended purpose of CPU_Time has nothing to do with this constraint.
> Nobody is interested in knowing if the actual sum is close or not to the
> real time duration.
Real-time task scheduling and schedulability analysis is *all* about
adding up task execution times (CPU_Time values, in principle) and
comparing the sums to real-time deadlines (durations). I do believe
there are some people, here and there, who are interested in such things...
In practice, since tasks in real-time Ada systems are usually created
once at system start and are thereafter repeatedly activated (triggered)
for each job (each deadline), the total CPU_Time of a task is less
relevant for scheduling decisions than is the increase in CPU_Time since
the last activation of the task. Using the services of
Ada.Execution_Time, that increment is represented as a Time_Span. From
this point of view, it is understandable that Ada.Execution_Time does
not provide an addition operation "+" (Left, Right : CPU_Time) return
CPU_Time.
> It is a simulation time, which *could* be projected to
> the real time in order to estimate potential CPU load.
"Simulation", "projection"... convey no meaning to me.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2010-12-17 11:50 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-12 4:19 Ada.Execution_Time BrianG
2010-12-12 5:27 ` Ada.Execution_Time Jeffrey Carter
2010-12-12 16:56 ` Ada.Execution_Time Jeffrey Carter
2010-12-12 21:59 ` Ada.Execution_Time BrianG
2010-12-12 22:08 ` Ada.Execution_Time BrianG
2010-12-13 9:28 ` Ada.Execution_Time Georg Bauhaus
2010-12-13 22:25 ` Ada.Execution_Time Randy Brukardt
2010-12-13 22:42 ` Ada.Execution_Time J-P. Rosen
2010-12-14 3:31 ` Ada.Execution_Time Jeffrey Carter
2010-12-14 15:42 ` Ada.Execution_Time Robert A Duff
2010-12-14 16:17 ` Ada.Execution_Time Jeffrey Carter
2010-12-14 19:10 ` Ada.Execution_Time Warren
2010-12-14 20:36 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-14 20:48 ` Ada.Execution_Time Jeffrey Carter
2010-12-14 8:17 ` Ada.Execution_Time Vinzent Hoefler
2010-12-14 15:51 ` Ada.Execution_Time Adam Beneschan
2010-12-14 15:53 ` Ada.Execution_Time Robert A Duff
2010-12-14 17:17 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-14 17:45 ` Ada.Execution_Time Robert A Duff
2010-12-14 18:23 ` Ada.Execution_Time Adam Beneschan
2010-12-14 21:02 ` Ada.Execution_Time Randy Brukardt
2010-12-15 22:52 ` Ada.Execution_Time Keith Thompson
2010-12-15 23:14 ` Ada.Execution_Time Adam Beneschan
2010-12-17 0:44 ` Ada.Execution_Time Randy Brukardt
2010-12-17 17:54 ` Ada.Execution_Time Warren
2010-12-20 21:28 ` Ada.Execution_Time Keith Thompson
2010-12-21 3:23 ` Ada.Execution_Time Robert A Duff
2010-12-21 8:04 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-21 17:19 ` Ada.Execution_Time Robert A Duff
2010-12-21 17:43 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-14 19:43 ` Ada.Execution_Time anon
2010-12-14 20:09 ` Ada.Execution_Time Adam Beneschan
2010-12-15 0:16 ` Ada.Execution_Time BrianG
2010-12-15 19:17 ` Ada.Execution_Time jpwoodruff
2010-12-15 21:42 ` Ada.Execution_Time Pascal Obry
2010-12-16 3:54 ` Ada.Execution_Time jpwoodruff
2010-12-17 7:11 ` Ada.Execution_Time Stephen Leake
2010-12-15 21:40 ` Ada.Execution_Time Simon Wright
2010-12-15 23:40 ` Ada.Execution_Time BrianG
2010-12-15 22:05 ` Ada.Execution_Time Randy Brukardt
2010-12-16 1:14 ` Ada.Execution_Time BrianG
2010-12-16 5:46 ` Ada.Execution_Time Jeffrey Carter
2010-12-16 16:13 ` Ada.Execution_Time BrianG
2010-12-16 11:37 ` Ada.Execution_Time Simon Wright
2010-12-16 17:24 ` Ada.Execution_Time BrianG
2010-12-16 17:45 ` Ada.Execution_Time Adam Beneschan
2010-12-16 21:13 ` Ada.Execution_Time Jeffrey Carter
2010-12-17 0:35 ` New AdaIC site (was: Ada.Execution_Time) Randy Brukardt
2010-12-16 13:08 ` Ada.Execution_Time Peter C. Chapin
2010-12-16 17:32 ` Ada.Execution_Time BrianG
2010-12-16 18:17 ` Ada.Execution_Time Jeffrey Carter
2010-12-16 8:45 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-16 16:49 ` Ada.Execution_Time BrianG
2010-12-16 17:52 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-17 8:49 ` Ada.Execution_Time Niklas Holsti
2010-12-17 9:32 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-17 11:50 ` Niklas Holsti [this message]
2010-12-17 13:10 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-18 21:20 ` Ada.Execution_Time Niklas Holsti
2010-12-19 9:57 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-25 11:31 ` Ada.Execution_Time Niklas Holsti
2010-12-26 10:25 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-27 12:44 ` Ada.Execution_Time Niklas Holsti
2010-12-27 15:28 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-27 20:11 ` Ada.Execution_Time Niklas Holsti
2010-12-27 21:34 ` Ada.Execution_Time Simon Wright
2010-12-28 10:01 ` Ada.Execution_Time Niklas Holsti
2010-12-28 14:17 ` Ada.Execution_Time Simon Wright
2010-12-27 21:53 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 14:14 ` Ada.Execution_Time Simon Wright
2010-12-28 15:08 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 16:18 ` Ada.Execution_Time Simon Wright
2010-12-28 16:34 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-31 0:40 ` Ada.Execution_Time BrianG
2010-12-31 9:09 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 14:46 ` Ada.Execution_Time Niklas Holsti
2010-12-28 15:42 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 16:27 ` Ada.Execution_Time (see below)
2010-12-28 16:55 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 19:41 ` Ada.Execution_Time (see below)
2010-12-28 20:03 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-28 22:39 ` Ada.Execution_Time Simon Wright
2010-12-29 9:07 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-27 17:24 ` Ada.Execution_Time Robert A Duff
2010-12-27 22:02 ` Ada.Execution_Time Randy Brukardt
2010-12-27 22:43 ` Ada.Execution_Time Robert A Duff
2010-12-27 22:11 ` Ada.Execution_Time Randy Brukardt
2010-12-29 12:48 ` Ada.Execution_Time Niklas Holsti
2010-12-29 14:30 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-29 16:19 ` Ada.Execution_Time (see below)
2010-12-29 16:51 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-29 19:57 ` Ada.Execution_Time (see below)
2010-12-29 21:20 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-30 5:13 ` Ada.Execution_Time Randy Brukardt
2010-12-30 13:37 ` Ada.Execution_Time Niklas Holsti
2010-12-29 20:32 ` Ada.Execution_Time Niklas Holsti
2010-12-29 21:21 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-30 13:34 ` Ada.Execution_Time Niklas Holsti
2010-12-30 19:23 ` Ada.Execution_Time Niklas Holsti
2010-12-30 5:06 ` Ada.Execution_Time Randy Brukardt
2010-12-30 23:49 ` Ada.Execution_Time Niklas Holsti
2010-12-31 23:34 ` Ada.Execution_Time Randy Brukardt
2011-01-01 13:52 ` Ada.Execution_Time Niklas Holsti
2011-01-01 14:42 ` Ada.Execution_Time Simon Wright
2011-01-01 16:01 ` Ada.Execution_Time Simon Wright
2011-01-01 19:18 ` Ada.Execution_Time Niklas Holsti
2011-01-03 21:27 ` Ada.Execution_Time Randy Brukardt
2011-01-06 22:55 ` Ada.Execution_Time Niklas Holsti
2011-01-07 6:25 ` Ada.Execution_Time Randy Brukardt
2011-01-01 15:54 ` Ada.Execution_Time Simon Wright
2011-01-03 21:33 ` Ada.Execution_Time Randy Brukardt
2011-01-05 15:55 ` Ada.Execution_Time Brad Moore
2010-12-17 8:59 ` Ada.Execution_Time anon
2010-12-19 3:07 ` Ada.Execution_Time BrianG
2010-12-19 4:01 ` Ada.Execution_Time Vinzent Hoefler
2010-12-19 11:00 ` Ada.Execution_Time Niklas Holsti
2010-12-21 0:37 ` Ada.Execution_Time Randy Brukardt
2010-12-21 1:20 ` Ada.Execution_Time Jeffrey Carter
2010-12-19 12:27 ` Ada.Execution_Time Dmitry A. Kazakov
2010-12-21 0:32 ` Ada.Execution_Time Randy Brukardt
2010-12-19 22:54 ` Ada.Execution_Time anon
2010-12-20 3:14 ` Ada.Execution_Time BrianG
2010-12-22 14:30 ` Ada.Execution_Time anon
2010-12-22 20:09 ` Ada.Execution_Time BrianG
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox