• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 23
  • 9
  • 2
  • Tagged with
  • 34
  • 24
  • 19
  • 18
  • 17
  • 14
  • 11
  • 9
  • 9
  • 9
  • 8
  • 8
  • 8
  • 7
  • 7
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
21

Calcul du pire temps d'exécution : méthode formelle s'adaptant à la sophistication croissante des architectures matérielles / Computation of the worst case execution time : formal analysis method that fits the increasing complexity of the hardware architecture

Benhamamouch, Bilel 02 May 2011 (has links)
Afin de garantir qu'un programme respectera toutes ses contraintes temporelles, nous devons être capable de calculer une estimation fiable de son temps d'exécution au pire cas (WCET: worst case execution time). Cependant, identifier une borne précise du pire temps d'exécution devient une tâche très complexe du fait de la sophistication croissante des processeurs. Ainsi, l'objectif de nos travaux de recherche a été de définir une méthode formelle qui puisse s'adapter aux évolutions du matériel. Cette méthode consiste à développer un modèle du processeur cible, puis à l'exécuter symboliquement afin d'associer à chaque trace d'exécution un temps d'exécution au pire cas. Une méthode de fusionnement est également prévue afin d'éviter une possible explosion combinatoire. Cette méthode a pour principale contrainte de ne pas introduire trop d'imprécision sur les temps calculés. / To ensure that a program will respect all its timing constraints we must be able to compute a safe estimation of its worst case execution time (WCET). However with the increasing sophistication of the processors, computing a precise estimation of the WCET becomes very difficult. In this report, we propose a novel formal method to compute a precise estimation of the WCET that can be easily parameterized by the hardware architecture. Assuming that we developed an executable timed model of the hardware, we use symbolic execution to precisely infer the execution time for a given instruction flow. We also merge the states relying on the loss of precision we are ready to accept, in order to avoid a possible states explosion.
22

Architecture multi-coeurs et temps d'exécution au pire cas / Multicore architectures and worst-case execution time

Lesage, Benjamin 21 May 2013 (has links)
Les tâches critiques en systèmes temps-réel sont soumises à des contraintes temporelles et de correction. La validation d'un tel système repose sur l'estimation du comportement temporel au pire cas de ses tâches. Le partage de ressources, inhérent aux architectures multi-cœurs, entrave le calcul de ces estimations. Le comportement temporel d'une tâche dépend de ses rivales du fait de l'arbitrage de l'accès aux ressources ou de modifications concurrentes de leur état. Cette étude vise à l'estimation de la contribution temporelle de la hiérarchie mémoire au pire temps d'exécution de tâches critiques. Les méthodes existantes, pour caches d'instructions, sont étendues afin de supporter caches de données privés et partagés, et permettre l'analyse de hiérarchies mémoires riches. Le court-circuitage de cache est ensuite utilisé pour réduire la pression sur les caches partagés. Nous proposons à cette fin différentes heuristiques basées sur la capture de la réutilisation de blocs de cache entre différents accès mémoire. Notre seconde proposition est la politique de partitionnement Preti qui permet l'allocation d'un espace sans conflits à une tâche. Preti favorise aussi les performances de tâches non critiques concurrentes aux temps-réel dans les systèmes de criticité hybride. / Critical tasks in the context of real-time systems submit to both timing and correctness constraints. Whence, the validation of a real-time system rely on the estimation of its tasks’ Worst case execution times. Resource sharing, as it occurs on multicore architectures, hinders the computation of such estimates. The timing behaviour of a task is impacted by its concurrents, whether because of resource access arbitration or concurrent modifications of a resource state. This study focuses on estimating the contribution of the memory hierarchy to tasks’ worst case execution time. Existing analysis methods, defined for instruction caches, are extended to support private and shared data caches, hence allowing for the analysis of rich memory hierarchies. Cache bypass is then used to reduce the pressure laid by concurrent tasks on shared caches levels. We propose different bypass heuristics, based on the capture of cache blocks’ reuse between memory accesses. Our second proposal is the Preti partitioning scheme which allows for the allocation to tasks of a cache space, free from inter-task conflicts. Preti offers the added benefit of providing for average-case performance to non-critical tasks concurrent to real-time ones on hybrid criticality systems.
23

Des codes correcteurs pour sécuriser l'information numérique

Herbert, Vincent 05 December 2011 (has links) (PDF)
Les codes correcteurs d'erreurs sont utilisés pour reconstituer les données numériques, qui sont sujettes à des altérations lors de leur stockage et de leur transport. Il s'agit là de l'utilisation principale des codes correcteurs mais ils peuvent encore être employés en cryptographie. Ils sont dans ce contexte un outil permettant, entre autres choses, de chiffrer des données et d'authentifier des personnes. Ces différents aspects sont traités dans ce document. Pour commencer, nous étudions la classe de codes cycliques possédant un ensemble de définition de la forme {1, 2^i+1, 2^j+1}, où i et j désignent des entiers positifs distincts. Nous concentrons notre attention sur la caractérisation des codes trois-correcteurs appartenant à cette classe ainsi que sur la distribution de poids de ces codes. Nous améliorons l'algorithme de Schaub, qui donne une minoration de la distance minimale des codes cycliques. Nous mettons en oeuvre cet algorithme pour calculer l'immunité spectrale de fonctions booléennes. Cette quantité est reliée à la distance minimale de codes cycliques et est importante pour garantir la sécurité dans certains cryptosystèmes de chiffrement à flot. Dans un second temps, nous proposons une solution pour accélérer le calcul des racines de polynômes dans des corps finis de caractéristique deux. Ce calcul est la phase la plus lente du déchiffrement des cryptosystèmes de type McEliece basés sur les codes de Goppa binaires classiques. Nous fournissons une analyse de la complexité de l'algorithme sous-jacent baptisé BTZ. Nous achevons nos travaux par une étude des protocoles d'authentification à bas coût, dérivés du protocole HB, en adoptant une approche basée sur le problème du décodage par syndrome, plutôt que par l'approche standard, fondée sur le problème LPN.
24

Aide au tolérancement tridimensionnel : modèle des domaines

Mansuy, Mathieu 25 June 2012 (has links) (PDF)
Face à la demande de plus en plus exigeante en terme de qualité et de coût de fabrication des produits manufacturés, la qualification et quantification optimal des défauts acceptables est primordial. Le tolérancement est le moyen de communication permettant de définir les variations géométriques autorisé entre les différents corps de métier intervenant au cours du cycle de fabrication du produit. Un tolérancement optimal est le juste compromis entre coût de fabrication et qualité du produit final. Le tolérancement repose sur 3 problématiques majeures: la spécification (normalisation d'un langage complet et univoque), la synthèse et l'analyse de tolérances. Nous proposons dans ce document de nouvelles méthodes d'analyse et de synthèse du tolérancement tridimensionnel. Ces méthodes se basent sur une modélisation de la géométrie à l'aide de l'outil domaine jeux et écarts développé au laboratoire. La première étape consiste à déterminer les différentes topologies composant un mécanisme tridimensionnel. Pour chacune de ces topologies est définie une méthode de résolution des problématiques de tolérancement. Au pire des cas, les conditions de respect des exigences fonctionnelles se traduisent par des conditions d'existence et d'inclusions sur les domaines. Ces équations de domaines peuvent ensuite être traduites sous forme de système d'inéquations scalaires. L'analyse statistique s'appuie sur des tirages de type Monte-Carlo. Les variables aléatoires sont les composantes de petits déplacements des torseur écarts défini à l'intérieur de leur zone de tolérance (modélisée par un domaine écarts) et les dimensions géométriques fixant l'étendue des jeux (taille du domaine jeux associé). A l'issue des simulations statistiques, il est possible d'estimer le risque de non-qualité et les jeux résiduels en fonction du tolérancement défini. Le développement d'une nouvelle représentation des domaines jeux et écarts plus adapté, permet de simplifier les calculs relatifs aux problématiques de tolérancement. Le traitement local de chaque topologie élémentaire de mécanisme permet d'effectuer le traitement global des mécanismes tridimensionnels complexes avec prise en compte des jeux.
25

Triangulation de Delaunay et arbres multidimensionnels

Lemaire, Christophe 19 December 1997 (has links) (PDF)
Les travaux effectués lors de cette thèse concernent principalement la triangulation de Delaunay. On montre que la complexité en moyenne - en termes de sites inachevés - du processus de fusion multidimensionnelle dans l'hypothèse de distribution quasi-uniforme dans un hypercube est linéaire en moyenne. Ce résultat général est appliqué au cas du plan et permet d'analyser de nouveaux algorithmes de triangulation de Delaunay plus performants que ceux connus à ce jour. Le principe sous-jacent est de diviser le domaine selon des arbres bidimensionnels (quadtree, 2d-tree, bucket-tree. . . ) puis de fusionner les cellules obtenues selon deux directions. On étudie actuellement la prise en compte de contraintes directement pendant la phase de triangulation avec des algorithmes de ce type. De nouveaux algorithmes pratiques de localisation dans une triangulation sont proposés, basés sur la randomisation à partir d'un arbre binaire de recherche dynamique de type AVL, dont l'un est plus rapide que l'algorithme optimal de Kirkpatrick, au moins jusqu'à 12 millions de sites K Nous travaillons actuellement sur l'analyse rigoureuse de leur complexité en moyenne. Ce nouvel algorithme est utilisé pour construire " en-ligne " une triangulation de Delaunay qui est parmi les plus performantes des méthodes " en-ligne " connues à ce jour.
26

Maîtrise de la dimension temporelle de la qualité de service dans les réseaux

MARTIN, Steven 06 July 2004 (has links) (PDF)
Les nouvelles applications sur Internet nécessitent des garanties de qualité de service (QoS) de la part du réseau. Nous nous intéressons à deux paramètres de QoS : le temps de réponse et la gigue de bout-en-bout. Nous proposons un ordonnancement, noté FP/DP, à base de priorités fixes (FP), départageant les paquets ex aequo selon leurs priorités dynamiques (DP). La priorité fixe d'un flux reflète son degré d'importance et sa priorité dynamique est un paramètre temporel. FP/FIFO et FP/EDF sont deux exemples d'ordonnancement FP/DP. Nous déterminons des bornes déterministes sur les paramètres de QoS considérés, en utilisant l'approche par trajectoire. En monoprocesseur, nous améliorons les résultats existants et prouvons que FP/EDF domine FP/FIFO sous certaines conditions. En distribué, nous apportons de nouveaux résultats et montrons que l'approche par trajectoire est beaucoup moins pessimiste que l'approche holistique. Nos résultats sont appliqués dans une architecture DiffServ/MPLS.
27

Définition et réglage de correcteurs robustes d'ordre fractionnaire / Definition and tuning of robust fractional order controllers

Tenoutit, Mammar 01 July 2013 (has links)
Les applications du calcul fractionnaire en automatique se sont considérablement développées ces dernières années, surtout en commande robuste. Ce mémoire est une contribution à la commande robuste des systèmes d'ordre entier à l'aide d'un correcteur PID d'ordre fractionnaire.Le conventionnel régulateur PID, unanimement apprécié pour le contrôle des processus industriels, a été adapté au cas fractionnaire sous la forme PInDf grâce à l'introduction d'un modèle de référence d'ordre non entier, réputé pour sa robustesse vis-à-vis des variations du gain statique.Cette nouvelle structure a été étendue aux systèmes à retard sous la forme d'un Prédicteur de SMITH fractionnaire. Dans leur forme standard, ces correcteurs sont adaptés à la commande des systèmes du premier et du second ordre, avec ou sans retard pur.Pour des systèmes plus complexes, deux méthodologies de synthèse du correcteur ont été proposées, grâce à la méthode des moments et à l'approche retour de sortie.Pour les systèmes dont le modèle est obtenu à partir d'une identification, la boucle fermée doit en outre être robuste aux erreurs d'estimation. Un modèle pire-cas, déduit de la matrice de covariance de l'estimateur et des domaines d'incertitudes fréquentielles, a été proposé pour la synthèse du correcteur.Les différentes simulations numériques montrent l'efficacité de cette méthodologie pour l'obtention d'une boucle fermée robuste aux variations du gain statique et aux incertitudes d'identification. / The application of fractional calculus in automatic control have received much attention these last years, mainly in robust control. This PhD dissertation is a contribution to the control of integer order systems using a fractional order PID controller.The classical PID, well known for its applications to industrial plants, has been adapted to the fractional case as a PInDf controller, thanks to a fractional order reference model, characterized by its robustness to static gain variations.This new controller has been generalized to time delay systems as a fractional SMITH Predictor. In standard case, these controllers are adapted to first and second order systems, with or without a time delay. For more complex systems, two design methodologies have been proposed, based on the method of moments and on output feedback approach.For systems whose model is obtained by an identification procedure, the closed loop has to be robust to estimation errors. So, a worst-case model, derived from the covariance matrix of the estimator and the frequency uncertainty domains, has been proposed for the design of the controller.The different numerical simulations demonstrate that this methodology is able to provide robustness to static gain variations and to identification uncertainties.
28

Worst-case delay analysis of core-to-IO flows over many-cores architectures / Analyse des délais pire cas des flux entre coeur et interfaces entrées/sorties sur des architectures pluri-coeurs

Abdallah, Laure 05 April 2017 (has links)
Les architectures pluri-coeurs sont plus intéressantes pour concevoir des systèmes en temps réel que les systèmes multi-coeurs car il est possible de les maîtriser plus facilement et d’intégrer un plus grand nombre d’applications, potentiellement de différents niveau de criticité. Dans les systèmes temps réel embarqués, ces architectures peuvent être utilisées comme des éléments de traitement au sein d’un réseau fédérateur car ils fournissent un grand nombre d’interfaces Entrées/Sorties telles que les contrôleurs Ethernet et les interfaces de la mémoire DDR-SDRAM. Aussi, il est possible d’y allouer des applications ayant différents niveaux de criticités. Ces applications communiquent entre elles à travers le réseau sur puce (NoC) du pluri coeur et avec des capteurs et des actionneurs via l’interface Ethernet. Afin de garantir les contraintes temps réel de ces applications, les délais de transmission pire cas (WCTT) doivent être calculés pour les flux entre les coeurs ("inter-core") et les flux entre les coeurs et les interfaces entrées/sorties ("core-to-I/O"). Plusieurs réseaux sur puce (NoCs) ciblant les systèmes en temps réel dur ont été conçus en s’appuyant sur des extensions matérielles spécifiques. Cependant, aucune de ces extensions ne sont actuellement disponibles dans les architectures de réseaux sur puce commercialisés, qui se basent sur la commutation wormhole avec la stratégie d’arbitrage par tourniquet. En utilisant cette stratégie de commutation, différents types d’interférences peuvent se produire sur le réseau sur puce entre les flux. De plus, le placement de tâches des applications critiques et non critiques a un impact sur les contentions que peut subir les flux "core-to-I/O". Ces flux "core-to-I/O" parcourent deux réseaux de vitesses différentes: le NoC et Ethernet. Sur le NoC, la taille des paquets autorisés est beaucoup plus petite que la taille des trames Ethernet. Ainsi, lorsque la trame Ethernet est transmise sur le NoC, elle est divisée en plusieurs paquets. La trame sera supprimée de la mémoire tampon de l’interface Ethernet uniquement lorsque la totalité des données aura été transmise. Malheureusement, la congestion du NoC ajoute des délais supplémentaires à la transmission des paquets et la taille de la mémoire tampon de l’interface Ethernet est limitée. En conséquence, ce comportement peut aboutir au rejet des trames Ethernet. L’idée donc est de pouvoir analyser les délais de transmission pire cas sur les NoC et de réduire leurs délais afin d’éviter ce problème de rejet. Dans cette thèse, nous montrons que le pessimisme de méthodes existantes de calcul de WCTT et les stratégies de placements existantes conduisent à rejeter des trames Ethernet en raison d’une congestion interne sur le NoC. Des propriétés des réseaux utilisant la commutation "wormhole" ont été définies et validées afin de mieux prendre en compte les conflits entre les flux. Une stratégie de placement de tâches qui prend en compte les communications avec les I/O a été ensuite proposée. Cette stratégie vise à diminuer les contentions des flux qui proviennent de l’I/O et donc de réduire leurs WCTTs. Les résultats obtenus par la méthode de calcul définie au cours de cette thèse montrent que les valeurs du WCTT des flux peuvent être réduites jusqu’à 50% par rapport aux valeurs de WCTT obtenues par les méthodes de calcul existantes. En outre, les résultats expérimentaux sur des applications avioniques réelles montrent des améliorations significatives des délais de transmission des flux "core-to-I/O", jusqu’à 94%, sans impact significatif sur ceux des flux "intercore". Ces améliorations sont dues à la stratégie d’allocation définie qui place les applications de manière à réduire l’impact des flux non critiques sur les flux critiques. Ces réductions de WCTT des flux "core-to-I/O" évitent le rejet des trames Ethernet. / Many-core architectures are more promising hardware to design real-time systems than multi-core systems as they should enable an easier mastered integration of a higher number of applications, potentially of different level of criticalities. In embedded real-time systems, these architectures will be integrated within backbone Ethernet networks, as they mostly provide Ethernet controllers as Input/Output(I/O) interfaces. Thus, a number of applications of different level of criticalities could be allocated on the Network-on-Chip (NoC) and required to communicate with sensors and actuators. However, the worst-case behavior of NoC for both inter-core and core-to-I/O communications must be established. Several NoCs targeting hard real-time systems, made of specific hardware extensions, have been designed. However, none of these extensions are currently available in commercially available NoC-based many-core architectures, that instead rely on wormhole switching with round-robin arbitration. Using this switching strategy, interference patterns can occur between direct and indirect flows on many-cores. Besides, the mapping over the NoC of both critical and non-critical applications has an impact on the network contention these core-to-I/O communications exhibit. These core-to-I/O flows (coming from the Ethernet interface of the NoC) cross two networks of different speeds: NoC and Ethernet. On the NoC, the size of allowed packets is much smaller than the size of Ethernet frames. Thus, once an Ethernet frame is transmitted over the NoC, it will be divided into many packets. When all the data corresponding to this frame are received by the DDR-SDRAM memory on the NoC, the frame is removed from the buffer of the Ethernet interface. In addition, the congestion on the NoC, due to wormhole switching, can delay these flows. Besides, the buffer in the Ethernet interface has a limited capacity. Then, this behavior may lead to a problem of dropping Ethernet frames. The idea is therefore to analyze the worst case transmission delays on the NoC and reduce the delays of the core-to-I/O flows. In this thesis, we show that the pessimism of the existing Worst-Case Traversal Time (WCTT) computing methods and the existing mapping strategies lead to drop Ethernet frames due to an internal congestion in the NoC. Thus, we demonstrate properties of such NoC-based wormhole networks to reduce the pessimism when modeling flows in contentions. Then, we propose a mapping strategy that minimizes the contention of core-to-I/O flows in order to solve this problem. We show that the WCTT values can be reduced up to 50% compared to current state-of-the-art real-time packet schedulability analysis. These results are due to the modeling of the real impact of the flows in contention in our proposed computing method. Besides, experimental results on real avionics applications show significant improvements of core-to-I/O flows transmission delays, up to 94%, without significantly impacting transmission delays of core-to-core flows. These improvements are due to our mapping strategy that allocates the applications in such a way to reduce the impact of non-critical flows on critical flows. These reductions on the WCTT of the core-to-I/O flows avoid the drop of Ethernet frames.
29

Analyse temporelle des systèmes temps-réels sur architectures pluri-coeurs / Many-Core Timing Analysis of Real-Time Systems

Rihani, Hamza 01 December 2017 (has links)
La prédictibilité est un aspect important des systèmes temps-réel critiques. Garantir la fonctionnalité de ces systèmespasse par la prise en compte des contraintes temporelles. Les architectures mono-cœurs traditionnelles ne sont plussuffisantes pour répondre aux besoins croissants en performance de ces systèmes. De nouvelles architectures multi-cœurssont conçues pour offrir plus de performance mais introduisent d'autres défis. Dans cette thèse, nous nous intéressonsau problème d’accès aux ressources partagées dans un environnement multi-cœur.La première partie de ce travail propose une approche qui considère la modélisation de programme avec des formules desatisfiabilité modulo des théories (SMT). On utilise un solveur SMT pour trouverun chemin d’exécution qui maximise le temps d’exécution. On considère comme ressource partagée un bus utilisant unepolitique d’accès multiple à répartition dans le temps (TDMA). On explique comment la sémantique du programme analyséet le bus partagé peuvent être modélisés en SMT. Les résultats expérimentaux montrent une meilleure précision encomparaison à des approches simples et pessimistes.Dans la deuxième partie, nous proposons une analyse de temps de réponse de programmes à flot de données synchroness'exécutant sur un processeur pluri-cœur. Notre approche calcule l'ensemble des dates de début d'exécution et des tempsde réponse en respectant la contrainte de dépendance entre les tâches. Ce travail est appliqué au processeur pluri-cœurindustriel Kalray MPPA-256. Nous proposons un modèle mathématique de l'arbitre de bus implémenté sur le processeur. Deplus, l'analyse de l'interférence sur le bus est raffinée en prenant en compte : (i) les temps de réponseet les dates de début des tâches concurrentes, (ii) le modèle d'exécution, (iii) les bancsmémoires, (iv) le pipeline des accès à la mémoire. L'évaluation expérimentale est réalisé sur desexemples générés aléatoirement et sur un cas d'étude d'un contrôleur de vol. / Predictability is of paramount importance in real-time and safety-critical systems, where non-functional properties --such as the timing behavior -- have high impact on the system's correctness. As many safety-critical systems have agrowing performance demand, classical architectures, such as single-cores, are not sufficient anymore. One increasinglypopular solution is the use of multi-core systems, even in the real-time domain. Recent many-core architectures, such asthe Kalray MPPA, were designed to take advantage of the performance benefits of a multi-core architecture whileoffering certain predictability. It is still hard, however, to predict the execution time due to interferences on sharedresources (e.g., bus, memory, etc.).To tackle this challenge, Time Division Multiple Access (TDMA) buses are often advocated. In the first part of thisthesis, we are interested in the timing analysis of accesses to shared resources in such environments. Our approach usesSatisfiability Modulo Theory (SMT) to encode the semantics and the execution time of the analyzed program. To estimatethe delays of shared resource accesses, we propose an SMT model of a shared TDMA bus. An SMT-solver is used to find asolution that corresponds to the execution path with the maximal execution time. Using examples, we show how theworst-case execution time estimation is enhanced by combining the semantics and the shared bus analysis in SMT.In the second part, we introduce a response time analysis technique for Synchronous Data Flow programs. These are mappedto multiple parallel dependent tasks running on a compute cluster of the Kalray MPPA-256 many-core processor. Theanalysis we devise computes a set of response times and release dates that respect the constraints in the taskdependency graph. We derive a mathematical model of the multi-level bus arbitration policy used by the MPPA. Further,we refine the analysis to account for (i) release dates and response times of co-runners, (ii)task execution models, (iii) use of memory banks, (iv) memory accesses pipelining. Furtherimprovements to the precision of the analysis were achieved by considering only accesses that block the emitting core inthe interference analysis. Our experimental evaluation focuses on randomly generated benchmarks and an avionics casestudy.
30

Static analysis of program by Abstract Interpretation and Decision Procedures / Analyse statique par interprétation abstraite et procédures de décision

Henry, Julien 13 October 2014 (has links)
L'analyse statique de programme a pour but de prouver automatiquement qu'un programme vérifie certaines propriétés. L'interprétation abstraite est un cadre théorique permettant de calculer des invariants de programme. Ces invariants sont des propriétés sur les variables du programme vraies pour toute exécution. La précision des invariants calculés dépend de nombreux paramètres, en particulier du domaine abstrait et de l'ordre d'itération utilisés pendant le calcul d'invariants. Dans cette thèse, nous proposons plusieurs extensions de cette méthode qui améliorent la précision de l'analyse.Habituellement, l'interprétation abstraite consiste en un calcul de point fixe d'un opérateur obtenu après convergence d'une séquence ascendante, utilisant un opérateur appelé élargissement. Le point fixe obtenu est alors un invariant. Il est ensuite possible d'améliorer cet invariant via une séquence descendante sans élargissement. Nous proposons une méthode pour améliorer un point fixe après la séquence descendante, en recommençant une nouvelle séquence depuis une valeur initiale choisie judiscieusement. L'interprétation abstraite peut égalementêtre rendue plus précise en distinguant tous les chemins d'exécution du programme, au prix d'une explosion exponentielle de la complexité. Le problème de satisfiabilité modulo théorie (SMT), dont les techniques de résolution ont été grandement améliorée cette décennie, permettent de représenter ces ensembles de chemins implicitement. Nous proposons d'utiliser cette représentation implicite à base de SMT et de les appliquer à des ordres d'itération de l'état de l'art pour obtenir des analyses plus précises.Nous proposons ensuite de coupler SMT et interprétation abstraite au sein de nouveaux algorithmes appelés Modular Path Focusing et Property-Guided Path Focusing, qui calculent des résumés de boucles et de fonctions de façon modulaire, guidés par des traces d'erreur. Notre technique a différents usages: elle permet de montrer qu'un état d'erreur est inatteignable, mais également d'inférer des préconditions aux boucles et aux fonctions.Nous appliquons nos méthodes d'analyse statique à l'estimation du temps d'exécution pire cas (WCET). Dans un premier temps, nous présentons la façon d'exprimer ce problème via optimisation modulo théorie, et pourquoi un encodage naturel du problème en SMT génère des formules trop difficiles pour l'ensemble des solveurs actuels. Nous proposons un moyen simple et efficace de réduire considérablement le temps de calcul des solveurs SMT en ajoutant aux formules certaines propriétés impliquées obtenues par analyse statique. Enfin, nous présentons l'implémentation de Pagai, un nouvel analyseur statique pour LLVM, qui calcule des invariants numériques grâce aux différentes méthodes décrites dans cette thèse. Nous avons comparé les différentes techniques implémentées sur des programmes open-source et des benchmarks utilisés par la communauté. / Static program analysis aims at automatically determining whether a program satisfies some particular properties. For this purpose, abstract interpretation is a framework that enables the computation of invariants, i.e. properties on the variables that always hold for any program execution. The precision of these invariants depends on many parameters, in particular the abstract domain, and the iteration strategy for computing these invariants. In this thesis, we propose several improvements on the abstract interpretation framework that enhance the overall precision of the analysis.Usually, abstract interpretation consists in computing an ascending sequence with widening, which converges towards a fixpoint which is a program invariant; then computing a descending sequence of correct solutions without widening. We describe and experiment with a method to improve a fixpoint after its computation, by starting again a new ascending/descending sequence with a smarter starting value. Abstract interpretation can also be made more precise by distinguishing paths inside loops, at the expense of possibly exponential complexity. Satisfiability modulo theories (SMT), whose efficiency has been considerably improved in the last decade, allows sparse representations of paths and sets of paths. We propose to combine this SMT representation of paths with various state-of-the-art iteration strategies to further improve the overall precision of the analysis.We propose a second coupling between abstract interpretation and SMT in a program verification framework called Modular Path Focusing, that computes function and loop summaries by abstract interpretation in a modular fashion, guided by error paths obtained with SMT. Our framework can be used for various purposes: it can prove the unreachability of certain error program states, but can also synthesize function/loop preconditions for which these error states are unreachable.We then describe an application of static analysis and SMT to the estimation of program worst-case execution time (WCET). We first present how to express WCET as an optimization modulo theory problem, and show that natural encodings into SMT yield formulas intractable for all current production-grade solvers. We propose an efficient way to considerably reduce the computation time of the SMT-solvers by conjoining to the formulas well chosen summaries of program portions obtained by static analysis.We finally describe the design and the implementation of Pagai,a new static analyzer working over the LLVM compiler infrastructure,which computes numerical inductive invariants using the various techniques described in this thesis.Because of the non-monotonicity of the results of abstract interpretation with widening operators, it is difficult to conclude that some abstraction is more precise than another based on theoretical local precision results. We thus conducted extensive comparisons between our new techniques and previous ones, on a variety of open-source packages and benchmarks used in the community.

Page generated in 0.0552 seconds