<?xml version="1.0" encoding="utf-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hal="http://hal.archives-ouvertes.fr/" xmlns:gml="http://www.opengis.net/gml/3.3/" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" version="1.1" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 http://api.archives-ouvertes.fr/documents/aofr-sword.xsd">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>HAL TEI export of hal-01489293</title>
      </titleStmt>
      <publicationStmt>
        <distributor>CCSD</distributor>
        <availability status="restricted">
          <licence target="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 - Universal</licence>
        </availability>
        <date when="2026-05-24T16:35:03+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">Static Analysis of Embedded Real-Time Concurrent Software with Dynamic Priorities</title>
            <author role="aut">
              <persName>
                <forename type="first">Antoine</forename>
                <surname>Miné</surname>
              </persName>
              <email type="md5">df246b594d6d3ee8b9b11b824635b973</email>
              <email type="domain">lip6.fr</email>
              <idno type="idhal" notation="string">antoine-mine</idno>
              <idno type="idhal" notation="numeric">2206</idno>
              <idno type="halauthorid" notation="string">2252-2206</idno>
              <idno type="ORCID">https://orcid.org/0000-0002-6375-3179</idno>
              <idno type="IDREF">https://www.idref.fr/111391636</idno>
              <idno type="ISNI">http://isni.org/isni/0000000356394363</idno>
              <idno type="VIAF">https://viaf.org/viaf/188586588</idno>
              <affiliation ref="#struct-391379"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Antoine</forename>
                <surname>Miné</surname>
              </persName>
              <email type="md5">df246b594d6d3ee8b9b11b824635b973</email>
              <email type="domain">lip6.fr</email>
            </editor>
            <funder ref="#projanr-34416"/>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2017-03-14 13:57:24</date>
              <date type="whenModified">2023-04-11 15:16:28</date>
              <date type="whenReleased">2017-03-17 16:43:50</date>
              <date type="whenProduced">2016-09-11</date>
              <date type="whenEndEmbargoed">2017-03-14</date>
              <ref type="file" target="https://hal.sorbonne-universite.fr/hal-01489293v1/document">
                <date notBefore="2017-03-14"/>
              </ref>
              <ref type="file" subtype="author" n="1" target="https://hal.sorbonne-universite.fr/hal-01489293v1/file/article_ok.pdf" id="file-1489293-1554081">
                <date notBefore="2017-03-14"/>
              </ref>
              <ref type="externalLink" target="https://doi.org/10.1016/j.entcs.2017.02.002"/>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="116635">
                <persName>
                  <forename>Antoine</forename>
                  <surname>Miné</surname>
                </persName>
                <email type="md5">df246b594d6d3ee8b9b11b824635b973</email>
                <email type="domain">lip6.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">hal-01489293</idno>
            <idno type="halUri">https://hal.sorbonne-universite.fr/hal-01489293</idno>
            <idno type="halBibtex">mine:hal-01489293</idno>
            <idno type="halRefHtml">&lt;i&gt;6th International Workshop on Numerical and Symbolic Abstract Domains (NSAD 2016)&lt;/i&gt;, Sep 2016, Edimbourg, United Kingdom. pp.3-39, &lt;a target="_blank" href="https://dx.doi.org/10.1016/j.entcs.2017.02.002"&gt;&amp;#x27E8;10.1016/j.entcs.2017.02.002&amp;#x27E9;&lt;/a&gt;</idno>
            <idno type="halRef">6th International Workshop on Numerical and Symbolic Abstract Domains (NSAD 2016), Sep 2016, Edimbourg, United Kingdom. pp.3-39, &amp;#x27E8;10.1016/j.entcs.2017.02.002&amp;#x27E9;</idno>
            <availability status="restricted">
              <licence target="https://about.hal.science/hal-authorisation-v1/">HAL Authorization<ref corresp="#file-1489293-1554081"/></licence>
            </availability>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="UPMC" corresp="SORBONNE-UNIVERSITE">Université Pierre et Marie Curie</idno>
            <idno type="stamp" n="CNRS">CNRS - Centre national de la recherche scientifique</idno>
            <idno type="stamp" n="LIP6" corresp="SORBONNE-UNIVERSITE">Laboratoire d'Informatique de Paris 6</idno>
            <idno type="stamp" n="UPMC_POLE_1" corresp="UPMC">UPMC Pôle 1</idno>
            <idno type="stamp" n="SORBONNE-UNIVERSITE">Sorbonne Université</idno>
            <idno type="stamp" n="SU-SCIENCES" corresp="SORBONNE-UNIVERSITE">Faculté des Sciences de Sorbonne Université</idno>
            <idno type="stamp" n="SU-TI">Sorbonne Université - Texte Intégral</idno>
            <idno type="stamp" n="ANR">ANR</idno>
            <idno type="stamp" n="ALLIANCE-SU"> Alliance Sorbonne Université</idno>
          </seriesStmt>
          <notesStmt>
            <note type="audience" n="2">International</note>
            <note type="invited" n="1">Yes</note>
            <note type="popular" n="0">No</note>
            <note type="peer" n="1">Yes</note>
            <note type="proceedings" n="1">Yes</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">Static Analysis of Embedded Real-Time Concurrent Software with Dynamic Priorities</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Antoine</forename>
                    <surname>Miné</surname>
                  </persName>
                  <email type="md5">df246b594d6d3ee8b9b11b824635b973</email>
                  <email type="domain">lip6.fr</email>
                  <idno type="idhal" notation="string">antoine-mine</idno>
                  <idno type="idhal" notation="numeric">2206</idno>
                  <idno type="halauthorid" notation="string">2252-2206</idno>
                  <idno type="ORCID">https://orcid.org/0000-0002-6375-3179</idno>
                  <idno type="IDREF">https://www.idref.fr/111391636</idno>
                  <idno type="ISNI">http://isni.org/isni/0000000356394363</idno>
                  <idno type="VIAF">https://viaf.org/viaf/188586588</idno>
                  <affiliation ref="#struct-391379"/>
                </author>
              </analytic>
              <monogr>
                <meeting>
                  <title>6th International Workshop on Numerical and Symbolic Abstract Domains (NSAD 2016)</title>
                  <date type="start">2016-09-11</date>
                  <date type="end">2016-09-11</date>
                  <settlement>Edimbourg</settlement>
                  <country key="GB">United Kingdom</country>
                </meeting>
                <imprint>
                  <publisher>Elsevier</publisher>
                  <biblScope unit="serie">Electronic Notes in Theoretical Computer Science</biblScope>
                  <biblScope unit="volume">331</biblScope>
                  <biblScope unit="pp">3-39</biblScope>
                  <date type="datePub">2017-03</date>
                </imprint>
              </monogr>
              <idno type="doi">10.1016/j.entcs.2017.02.002</idno>
              <ref type="publisher">http://nsad16.di.univr.it/</ref>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <keywords scheme="author">
                <term xml:lang="en">priority ceiling protocol</term>
                <term xml:lang="en">real-time scheduling</term>
                <term xml:lang="en">deadlocks</term>
                <term xml:lang="en">data-races</term>
                <term xml:lang="en">run-time errors</term>
                <term xml:lang="en">concurrency</term>
                <term xml:lang="en">safety</term>
                <term xml:lang="en">verification</term>
                <term xml:lang="en">abstract interpretation</term>
                <term xml:lang="en">static analysis</term>
              </keywords>
              <classCode scheme="halDomain" n="info.info-pf">Computer Science [cs]/Performance [cs.PF]</classCode>
              <classCode scheme="halTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halOldTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halTreeTypology" n="COMM">Conference papers</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>In previous work, we developed a sound static analysis by abstract interpretation to check the absence of run-time errors in concurrent programs, focusing on embedded C programs composed of a fixed set of threads in a shared memory. The method is thread-modular: it considers each thread independently, analyzing them with respect to an abstraction of the effect of the other threads, so-called interference, which are also inferred automatically as part of analyzing the threads. The analysis thus proceeds in a series of rounds that reanalyze all threads, gathering an increasing set of interference, until stabilization. We proved that this method is sound and covers all possible thread interleavings. This analysis was integrated into the Astrée industrial-scale static analyzer, deployed in avionics and automotive industries. In this article, we consider the more specific case of programs running under a priority-based real-time scheduler, as is often the case in embedded systems. In such programs, higher priority threads cannot be preempted by lower priority ones (except when waiting explicitly for some resource). The programmer exploits this property to reduce the reliance on locks when protecting critical sections. We show how our analysis can be refined through partitioning in order to take into account the real-time hypothesis, remove spurious interleavings, and gain precision on programs that rely on priorities. Our analysis supports in particular dynamic priorities: we handle explicit modifications of the priorities by the program, as well as implicit ones through the priority ceiling protocol. We illustrate our construction formally on an idealized language. Following previous work, we first provide a concrete semantics in thread-modular denotational form that is complete for safety properties, and then show how to apply classic abstractions to obtain an effective static analyzer, able to detect all run-time errors, data-races, as well as deadlocks. Finally, we briefly discuss our implementation inside the Astrée analyzer and ongoing experimentation, with results limited for now to small programs.</p>
            </abstract>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="researchteam" xml:id="struct-391379" status="OLD">
          <orgName>Algorithmes, Programmes et Résolution</orgName>
          <orgName type="acronym">APR</orgName>
          <date type="start">2008-10-01</date>
          <date type="end">2017-12-31</date>
          <desc>
            <address>
              <country key="FR"/>
            </address>
          </desc>
          <listRelation>
            <relation active="#struct-233" type="direct"/>
            <relation active="#struct-93591" type="indirect"/>
            <relation name="UMR7606" active="#struct-441569" type="indirect"/>
          </listRelation>
        </org>
        <org type="laboratory" xml:id="struct-233" status="OLD">
          <idno type="RNSR">199712651U</idno>
          <idno type="ROR">https://ror.org/05krcen59</idno>
          <orgName>Laboratoire d'Informatique de Paris 6</orgName>
          <orgName type="acronym">LIP6</orgName>
          <date type="start">1997-01-01</date>
          <date type="end">2017-12-31</date>
          <desc>
            <address>
              <addrLine>4 Place JUSSIEU 75252 PARIS CEDEX 05</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.lip6.fr/</ref>
          </desc>
          <listRelation>
            <relation active="#struct-93591" type="direct"/>
            <relation name="UMR7606" active="#struct-441569" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-93591" status="OLD">
          <idno type="ROR">https://ror.org/02en5vm52</idno>
          <orgName>Université Pierre et Marie Curie - Paris 6</orgName>
          <orgName type="acronym">UPMC</orgName>
          <date type="end">2017-12-31</date>
          <desc>
            <address>
              <addrLine>4 place Jussieu - 75005 Paris</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.upmc.fr/</ref>
          </desc>
        </org>
        <org type="regroupinstitution" xml:id="struct-441569" status="VALID">
          <idno type="IdRef">02636817X</idno>
          <idno type="ISNI">0000000122597504</idno>
          <idno type="ROR">https://ror.org/02feahw73</idno>
          <orgName>Centre National de la Recherche Scientifique</orgName>
          <orgName type="acronym">CNRS</orgName>
          <date type="start">1939-10-19</date>
          <desc>
            <address>
              <country key="FR"/>
            </address>
            <ref type="url">https://www.cnrs.fr/</ref>
          </desc>
        </org>
      </listOrg>
      <listOrg type="projects">
        <org type="anrProject" xml:id="projanr-34416" status="VALID">
          <idno type="anr">ANR-11-INSE-0014</idno>
          <idno type="program">Ingénierie Numérique et Sécurité</idno>
          <orgName>AstréeA</orgName>
          <desc>Analyse statique de logiciels temps-réel asynchrones embarqués</desc>
          <date type="start">2011</date>
        </org>
      </listOrg>
    </back>
  </text>
</TEI>