<?xml version="1.0" encoding='ISO-8859-1'?>
<!--DOCTYPE component PUBLIC "-//OCERA//DTD component XML V1.0//EN" "file:component.dtd"-->

<component id="exec_timers" name="POSIX CPU Clocks">
  <title>POSIX Execution-Time Clocks</title>
  <info>
    <authorgroup>
      
      <author>
	<firstname>Josep</firstname>
	<surname>Vidal</surname>
	<affiliation>
	  <orgname>UPVLC</orgname>
	</affiliation>
	<email><ulink url="mailto:jvidal@disca.upv.es">jvidal@disca.upv.es</ulink></email>
      </author>
      
    </authorgroup>
    
    <reviewergroup>
      <author>
	<firstname>Ismael</firstname>
	<surname>Ripoll</surname>
	<affiliation>
	  <orgname>UPVLC</orgname>
	</affiliation>
	<email><ulink url="mailto:iripoll@disca.upv.es">iripoll@disca.upv.es</ulink></email>
      </author>
    </reviewergroup>

    <copyright>
      <year>2003</year>
      <holder>OCERA Consortium</holder>
    </copyright>

    <deliverable file="ms4-month24/WP5/D5.4.pdf" />
    <workpackage id="WP5" />

    <date start="01/09/2003" release="01/01/2004"/>

    <version cvs="sched/exectimers" value="0.1-1"/>  
<licenses>
  <license name="MPL" />
  <license name="GPL" />
  <license name="LGPL" />
  <license name="CeCILL" file="cecill.pdf" />
</licenses>
    <status value="Testing"/>

    <home-page url="http://www.ocera.org"/>
    <hardware processor="Independent"/>
    <platform rtlinux="3.2pre1"/>
    <componenttype value="LowLevel"/>

    <dependencies>
      <dependency version="3.2pre1">RTLinux</dependency>
      <dependency version=">=0.2">PSignals</dependency>
      <dependency version=">=0.2">PTimers</dependency>
    </dependencies>

    <keywords>Real-Time, POSIX, timers</keywords>

  </info>


  <!-- ================================================== Description -->
  <description>
   When performing a schedulability test, scheduling analysis relies on a
    known worst-case execution time (WCET).
    Nevertheless, estimating WCET is a difficult task due to
    the different execution paths within a program and today's
    computer architectures.  Without bound on execution time, a task could execute more
    than estimated, causing other tasks to loose its deadlines. This, on most
    hard real time application, may result in catastrophic consequences.

    This component tries to give a solution to this problem, implementing execution
    time timers within the task scheduler.
    This kind of timers may be used to detect execution time overruns
    in the application, and to limit their effects.

    As an example, if a timer is created using a CPU-Time clock
    of a particular thread, and a relative expiration time is given,
    it can be used to notify that a certain budget of execution time
    has elapsed, for that thread. If the timer is armed each time a
    thread is activated, and the relative expiration time is set to
    the thread's estimated worst-case execution time (plus some
    small amount to take into account the limited resolution and
    precision of the CPU-Time clock), then the timer will only
    expire if the thread suffers an execution time overrun.


  </description>

</component>

