• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 18
  • 12
  • 2
  • Tagged with
  • 32
  • 32
  • 15
  • 13
  • 8
  • 7
  • 6
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 4
  • 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.
1

Détection de comportements à risque dans les applications en utilisant l'analyse statique / Detection of risky behavior in smartphone applications using static analysis

Martinez, Denis 02 February 2016 (has links)
Le monde des appareils mobiles permet aux utilisateurs d’installer des applications sur des terminaux personnels, mais pose des lacunes en termes de sécurité, car les utilisateurs n’ont ps les moyens de juger la dangerosité d’une application, et le risque de nuisibilité ne peut pas être limité après l’installation. Nous étudions l’analyse statique en tant qu’outil de détection de risques et de malware. Notre méthode se caractérise par un pilotage par règles, opérant sur des programmes partiels : l’un des objectifs est de proposer un langage spécifique au domaine pouvant exprimer un domaine abstrait et associer des comportements aux fonctions des librairies du système. L’expressivité est un atout important qui est obtenu au travers de l’abstraction. La technologie mobile évolue rapidement et de nouvelles manières de développer les appli- cations apparaissent fréquemment. Une analyse statique des applications doit absolument réagir rapidement à l’arrivée des nouvelles technologies, de sorte à ne pas se retrouver obsolète. Nous montrons de quelle manière il est possible de réaliser des analyses statiques que l’on peut réutiliser entre plusieurs plateformes de smartphones / The mobile device world allows users to install applications on theirpersonal devices, but typically falls short in terms of security, because theusers lack any ability to judge if an application will be dangerous, and thereis no way to limit the harmfulness of a program after it is installed.We explore static analysis as a tool for risk assessment and detection of malware behavior. Our method characterizes as a rule-driven, partial program approach: one of our goals is to provide a convenient, expressive domain-specific language to express an abstract domain and associate behavior to the library functions of the system.Expressivity is an important asset to have and it is obtained by the means of abstraction. The mobile technologies evolve fast and new ways to develop programs frequently appear.A real-world static analysis solution absolutely needs to react fast to the arrival of new technologies, in order not to fall into obsolescence. Weshow how it is possible to develop static analyses, and then to reuse them across mutiple smartphone platforms.
2

Ordonnancement hybride des applications flots de données sur des systèmes embarqués multi-coeurs / Hybrid scheduling of streaming applications to account for interprocessor communication in embedded manycores

Dkhil, Amira 14 April 2015 (has links)
Les systèmes embarqués sont de plus en plus présents dans l'industrie comme dans la vie quotidienne. Une grande partie de ces systèmes comprend des applications effectuant du traitement intensif des données: elles utilisent de nombreux filtres numériques, où les opérations sur les données sont répétitives et ont un contrôle limité. Les graphes "flots de données", grâce à leur déterminisme fonctionnel inhérent, sont très répandus pour modéliser les systèmes embarqués connus sous le nom de "data-driven". L'ordonnancement statique et périodique des graphes flot de données a été largement étudié, surtout pour deux modèles particuliers: SDF et CSDF. Dans cette thèse, on s'intéresse plus particulièrement à l'ordonnancement périodique des graphes CSDF. Le problème consiste à identifier des séquences périodiques infinies d'actionnement des acteurs qui aboutissent à des exécutions complètes à buffers bornés. L'objectif est de pouvoir aborder ce problème sous des angles différents : maximisation de débit, minimisation de la latence et minimisation de la capacité des buffers. La plupart des travaux existants proposent des solutions pour l'optimisation du débit et négligent le problème d'optimisation de la latence et propose même dans certains cas des ordonnancements qui ont un impact négatif sur elle afin de conserver les propriétés de périodicité. On propose dans cette thèse un ordonnancement hybride, nommé Self-Timed Périodique (STP), qui peut conserver les propriétés d'un ordonnancement périodique et à la fois améliorer considérablement sa performance en terme de latence. / One of the most important aspects of parallel computing is its close relation to the underlying hardware and programming models. In this PhD thesis, we take dataflow as the basic model of computation, as it fits the streaming application domain. Cyclo-Static Dataflow (CSDF) is particularly interesting because this variant is one of the most expressive dataflow models while still being analyzable at design time. Describing the system at higher levels of abstraction is not sufficient, e.g. dataflow have no direct means to optimize communication channels generally based on shared buffers. Therefore, we need to link the dataflow MoCs used for performance analysis of the programs, the real time task models used for timing analysis and the low-level model used to derive communication times. This thesis proposes a design flow that meets these challenges, while enabling features such as temporal isolation and taking into account other challenges such as predictability and ease of validation. To this end, we propose a new scheduling policy noted Self-Timed Periodic (STP), which is an execution model combining Self-Timed Scheduling (STS) with periodic scheduling. In STP scheduling, actors are no longer strictly periodic but self-timed assigned to periodic levels: the period of each actor under periodic scheduling is replaced by its worst-case execution time. Then, STP retains some of the performance and flexibility of self-timed schedule, in which execution times of actors need only be estimates, and at the same time makes use of the fact that with a periodic schedule we can derive a tight estimation of the required performance metrics.
3

Runtime mapping of dynamic dataflow applications on heterogeneous multiprocessor platforms / Déploiement à la volée d'appllications flot de données dynamiques sur plateforme multiprocesseurs hétérogène

Ngo, Dinh Thanh 19 June 2015 (has links)
La complexité et le nombre toujours plus grandissant des applications, notamment les standards vidéo, nécessite d’étudier des méthodes et outils pour leur déploiement sur des architectures elles aussi toujours plus complexes. En effet, afin d’atteindre les performances requises en matière de temps d’exécution ou consommation énergétique, les architectures modernes proposent des éléments de calculs hétérogènes, où chacun est spécialisé pour une fonction précise. Cette thèse s’appuie sur le modèle flot de données pour la spécification de l’application. Ce modèle permet d’exposer explicitement le parallélisme spatial et temporel de l’application à travers un réseau d’acteurs interconnectés par des canaux de type FIFO. Les acteurs, en charge du calcul, peuvent exhiber un comportement statique ou dynamique. Les derniers standards vidéo contraignent à s’appuyer sur les modèles dynamiques pour obtenir une spécification fonctionnelle. Les besoins de calcul sont alors dépendants des données à traiter. Le déploiement d’une application dynamique ne peut donc se faire à l’aide des approches statiques existantes dans la littérature. L’objectif de cette thèse est de proposer des algorithmes efficaces permettant de déployer à la volée une application flot de données dynamique sur une architecture multiprocesseurs hétérogène. La première contribution est un algorithme qui permet de trouver rapidement une solution de déploiement de l’application. La deuxième contribution est un algorithme basé sur les mouvements pour adapter en cours d’exécution le déploiement en réponse aux aspects dynamiques de l’application. / Modern multimedia applications are subject to an increasing complexity with widespread standards. This has led to the interest in dataflow approach that offers a powerful perspective on parallel com- putations at high level. In the meantime, the emergence of massively parallel architectures has revealed the trend towards heterogeneous Multi-Processor System-on-Chips (MPSoCs) to offer a better perfor- mance and energy tradeoff than their homogeneous counterparts. However, this also imposes challenges to the mapping of multimedia applications on such complex architectures. This thesis presents an adaptive methodology for mapping dataflow applications on heterogeneous MPSoCs. This thesis focuses on video decoders specified in RVC-CAL language, a dedicated dataflow language for video applications. Existing static approaches cannot capture all behaviors in dynamic dataflow applications. Thus, this requires to adapt the mapping according to the input data. The algorithm offers some adaptive parameters combined with our analyt- ical communication model to improve a performance while consider- ing load balancing. We evaluate our algorithms on a set of randomly generated benchmarks and real video decoders like MPEG4-SP and HEVC. Experimental results reveal that our mapping methodology is fast enough (in milliseconds) and the runtime remapping signifi- cantly improves the initial mapping. In the remapping process, we take the migration cost into account because the reconfiguration time also contributes to the overall performance.
4

Analyse du Flot des Données pour Tableaux en Présence de Contraintes Non-affines

Barthou, Denis 23 February 1998 (has links) (PDF)
L'analyse des dépendances de flot de données est une étape cruciale lors de la parallélisation. La description détaillée des dépendances entre opérations et pour chaque élément de tableau rend possible l'application de techniques de parallélisation performantes. Cependant, ce type d'analyse a deux principaux inconvénients~: son coût élevé et son domaine restreint à des dépendances affines en fonction des compteurs de boucles. On décrit d'abord dans cette thèse un algorithme polynômial pour le calcul des dépendances affines, dont la complexité et le domaine d'application sont meilleurs que ceux des méthodes existantes. Puis, dans la continuité des travaux de J.-F. Collard, on propose un cadre général pour l'analyse, éventuellement approchée, de n'importe quelle dépendance. Le modèle de programmes est formé des programmes sans procédure, comportant des accès quelconques aux éléments de tableaux. Une méthode itérative originale trouve des propriétés entre les contraintes non-affines du problème afin d'améliorer la précision du résultat. Notre méthode est capable de tirer parti de n'importe quelle caractérisation affine de ces contraintes et possède un critère d'optimalité de l'approximation. Enfin, plusieurs applications traditionnelles de l'analyse de flot de données sont adaptées à notre méthode approchée et nous détaillons plus particulièrement l'expansion mémoire, en donnant une méthode offrant un compromis entre surcoût à l'exécution, taille mémoire et degré de parallélisme.
5

Couplage à hautes performances de codes parallèles et distribués

Hamidi, Hamid-Reza 05 October 2005 (has links) (PDF)
L'accroissement rapide de la puissance des calculateurs actuels et leur interconnexion en grappes et grilles de calcul à l'aide de réseaux rapides, permettent d'envisager, en mode de production, l'utilisation de plusieurs codes de calculs numériques couplés pour la simulation de phénomènes physiques plus complexes. Dans le but d'obtenir des résultats toujours plus précis, un nouveau type de simulation numérique, dont l'objectif est de simuler plusieurs<br />physiques en même temps, est apparu. Ce type d'application est appelé "couplage de code". En effet, plusieurs codes (physiques) sont couplés ou interconnectés an qu'ils communiquent pour réaliser la simulation.<br />Cette thèse s'intéresse aux problématiques liées au couplage à hautes performances de codes parallèles et distribués. L'obtention des performances repose sur la conception d'applications distribuées dont certains composants sont parallélisés et dont les communications sont efcaces. L'idée de bas de cette thèse est d'utiliser un langage de programmation parallèle orienté flot de données (ici Athapascan) dans deux modèles de conception d'applications distribuées ; "modèle appel de procédure à distance (RPC)" et "modèle orienté flux de données (stream-oriented)". Les contributions apportées par ce travail de recherche sont les suivants :<br /><br />- Utilisation d'un langage de flot de données dans un grille RPC de calcul ;<br />Dans le cadre de projet HOMA, les extensions au modèle RPC ont porté d'une part sur la sémantique de contrôle et de communication et d'autre part sur les supports exécutifs pour mieux exploiter le parallélisme. Les résultats théoriques de ces extensions pour une implantation sur le bus logiciel CORBA à l'aide du moteur exécutif KAAPI d'Athapascan et pour l'architecture homogène comme grappe de PC, sont présentés sous la forme d'un modèle de coût d'exécution. Les expériences (élémentaires et sur une application réelle) ont validé ce modèle de coût.<br /><br />- Extension d'un modèle mémoire partagée pour couplage de codes ;<br />An d'étendre la sémantique d'accès aux données partagées du langage Athapascan, nous avons proposé la notion de "collection temporelle". Ce concept permet de décrire la sémantique d'accès de type flux de données. La "collection spatiale" permet de mieux exploiter les données parallèles. Pour préciser la sémantique associée à ces nouvelles notions, nous avons donné une nouvelle définition pour la donnée partagée. Puis dans le cadre de cette définition, nous avons défini trois types de données partagées ; "séquentielle", "collection temporelle" et "collection spatiale".
6

Athapascan-1 : interface générique pour l'ordonnancement dans un environnement d'exécution parallèle

Cavalheiro, Gerson Geraldo Homrich 22 November 1999 (has links) (PDF)
Dans les environnements d'exécution parallèle, la régulation de charge (ou l'ordonnancement applicatif) est le module responsable du contrôle de l'exécution d'un programme sur les ressources de l'architecture distribuée (processeurs et modules mémoire). En pratique, le choix de la stratégie de régulation la plus performante dépend non seulement de l'application mais doit aussi être adapté en fonction de l'architecture cible. Dès lors, la portabilité d'un code ne peut être assurée que si l'on peut modifier cette stratégie. Dans cette thèse, nous proposons l'utilisation de la description dynamique du flot de données comme l'élément central permettant de séparer le code applicatif de la régulation de charge. Sur cette proposition est basée la construction d'un environnement logiciel, modulaire et générique, qui rend possible la modification ou l'ajustement de la stratégie de régulation de charge. La spécification de cet environnement repose sur l'identification des interfaces de la régulation avec d'une part l'application et d'autre part l'architecture. Cette identification, centrée sur l'exploration macroscopique du flot de données, est originale: nous montrons qu'elle étend d'autres systèmes classiques de régulation de charge. Enfin, la validation expérimentale de cet environnement est réalisée grâce à son intégration dans l'interface de programmation Athapascan-1 de l'environnement Athapascan, du projet APACHE. Différentes stratégies d'ordonnancement, statiques, dynamiques et hybrides, ont ainsi été implantés. Nous présentons les performances de quelques unes de ces stratégies appliquées à des programmes Athapascan-1 sur différentes architectures.
7

Tolérance aux fautes et reconfiguration dynamique pour les applications distribuées à grande échelle

Besseron, Xavier 28 April 2010 (has links) (PDF)
Ce travail se place dans le cadre du calcul haute performance sur des plateformes d'exécution de grande taille telles que les grilles de calcul. Les grilles de calcul sont notamment caractérisées par (1) des changements fréquents des conditions d'exécution et, en particulier, par (2) une probabilité importante de défaillance due au grand nombre de composants. Pour exécuter une application efficacement dans un tel environnement, il est nécessaire de prendre en compte ces paramètres. Nos travaux de recherche reposent sur la représentation abstraite de l'application sous forme d'un graphe de flot de données de l'environnement de programmation parallèle et distribuée Athapascan/Kaapi. Nous utilisons cette représentation abstraite pour apporter des solutions aux problèmes (1) de reconfiguration dynamique et (2) de tolérance aux fautes. - Tout d'abord, nous proposons un mécanisme de reconfiguration dynamique qui gère, de manière transparente pour le programmeur de la reconfiguration, les problèmes d'accès concurrents sur l'état de l'application et la cohérence mutuelle des états en cas de reconfiguration distribuée. - Ensuite, nous présentons un protocole de tolérance aux fautes original qui permet d'effectuer une reprise partielle de l'application en cas de panne. Pour cela, il détermine l'ensemble des tâches de calcul strictement nécessaires à la reprise de l'application. Ces contributions sont évaluées en utilisant les logiciels Kaapi et X-Kaapi sur la plateforme de calcul Grid'5000.
8

Compilation efficace d'un langage déclaratif synchrone : le générateur de code Lustre-V3

Raymond, Pascal 20 November 1991 (has links) (PDF)
Ce travail porte sur la production de code séquentiel à partir du langage flot de données synchrone Lustre. La difficulté essentielle provient de l'aspect déclaratif du langage. En effet, il n'y a pas d'instruction de contrôle dans le langage Lustre ; toute la structure de contrôle du code objet doit donc être synthétisée par le compilateur. Cette synthèse consiste à construire un automate fini en simulant exhaustivement le comportement des variables booléennes du programme. Le code produit est particulièrement rapide ; en effet, la plupart des calculs booléens sont effectués une fois pour toute dès la compilation. En contrepartie, l'aspect exhaustif de cette démarche provoque parfois une véritable explosion de la taille du code. Ce problème peut être dû à la complexité intrinsèque du programme source ; il faut dans ce cas chercher un compromis entre rapidité et taille mémoire. Mais l'explosion peut être causée par la méthode de construction, qui produit très souvent des automates non minimaux ; nous avons donc étudié et développé un algorithme original qui construit à coup sûr des automates minimaux. Cet algorithme fait appel à de nombreuses manipulations symboliques de fonctions booléennes, que nous avons pu implémenter efficacement grâce à une représentation basée sur les graphes binaires de décision.
9

Compiling for a multithreaded dataflow architecture : algorithms, tools, and experience / Compilation pour une architecture multi-thread à flot de données : algorithmes, outils et retour d'expérience

Li, Feng 20 May 2014 (has links)
Quelque-soit le multiprocesseur et son architecture, la facilité de leur programmation demeure une difficulté majeure. Une croyance bien installée est que l’exploitation correcte et efficace du parallélisme dans une application est une question pour les concepteurs d’outils de développement logiciel. Selon cette vision, nous avons besoin de techniques de compilation plus sophistiqués pour partitionner une application en threads simultanés. Mais de nombreux experts revendiquent que l'architecture joue un rôle tout aussi important: il faut opérer un changement fondamental dans l'architecture de processeurs avant que l’on puisse espérer des progrès importants au niveau de leur programmabilité. Notre approche favorise la convergence de ces points de vue. La convergence entre le calcul parallèle “en flot de données” avec l'architecture de von Neumann est porteuse de nombreuses promesses. En particulier en termes de tolérance à la latence, en termes d’exploitation d'un haut degré de parallélisme, le tout pour un très faible coût de changement de contexte entre threads. Les architectures à flot de données multithread exigent un haut degré de parallélisme pour tolérer la latence. D'autre part, le partitionnement d’un programme en un grand nombre de threads à grain fin est une source d'erreurs commune pour les développeurs. Pour reconcilier ces faits, nous nous efforçons de faire progresser l'état de l'art dans le partitionnement automatique de threads, conjointement avec le support du langage de programmation pour l’exploitation de parallélisme à plus gros grain, tout en préservant un concurrence déterministe. Cette thèse présente un algorithme général de partitionnement de threads, pour transformer du code séquentiel en un programme exprimant du parallélisme en flot de données. Notre algorithme fonctionne sur le Program Dependence Graph (PDG) et la forme en assignation unique statique (Static Single Assignment, SSA), pour extraire du parallélisme de tâche, pipeline, et de données, en présence de flot de contrôle arbitraire. Nous avons conçu une nouvelle représentation intermédiaire pour faciliter la génération de code, et son exécution parallèle en flot de données. Nous avons également mis en œuvre ces algorithmes dans un prototype fondé sur GCC, et contribué au développement d’une plateforme de simulation permettant d’explorer la parallélisation en flot de données à grande échelle. Ces extensions et l'architecture simulée permettent l'exploration de modèles innovants de mémoire pour le parallélisme en flot de données. Ces outils et modèles ont également été évalués sur des applications réalistes. / Across the wide range of multiprocessor architectures, all seem to share one common problem: they are hard to program. It is a general belief that parallelism is a software problem, and that perhaps we need more sophisticated compilation techniques to partition the application into concurrent threads. Many experts also make the point that the underlining architecture plays an equally important architecture before one may expect significant progress in the programmability of multiprocessors. Our approach favors a convergence of these viewpoints. The convergence of dataflow and von Neumann architecture promises latency tolerance, the exploitation of a high degree of parallelism, and light thread switching cost. Multithreaded dataflow architectures require a high degree of parallelism to tolerate latency. On the other hand, it is error-prone for programmers to partition the program into large number of fine grain threads. To reconcile these facts, we aim to advance the state of the art in automatic thread partitioning, in combination with programming language support for coarse-grain, functionally deterministic concurrency. This thesis presents a general thread partitioning algorithm for transforming sequential code into a parallel data-flow program targeting a multithreaded dataflow architecture. Our algorithm operates on the program dependence graph and on the static single assignment form, extracting task, pipeline, and data parallelism from arbitrary control flow, and coarsening its granularity using a generalized form of typed fusion. We design a new intermediate representation to ease code generation for an explicit token match dataflow execution model. We also implement a GCC-based prototype. We also evaluate coarse-grain dataflow extensions of OpenMP in the context of a large-scale 1024-core, simulated multithreaded dataflow architecture. These extension and simulated architecture allow the exploration of innovative memory models for dataflow computing. We evaluate these tools and models on realistic applications.
10

Obfuscation par expressions mixtes arithmético-booléennes : reconstruction, analyse et outils de simplification / Obfuscation with Mixed Boolean-Arithmetic Expressions : reconstruction, analysis and simplification tools

Eyrolles, Ninon 30 June 2017 (has links)
L'obfuscation de logiciels est une technique de protection deprogrammes qui transforme du code pour rendre son analyse plusdifficile. Les expressions mixtes arithmético-booléennes (MBA) sontprésentées comme une bonne obfuscation du flot de données. Le domainede l'obfuscation MBA étant assez jeune, il bénéficie de peu delittérature sur la conception et l'analyse de telles expressionsobfusquées. Ainsi, beaucoup de sujets intéressants apparaissent lors deson étude, autant sur l'obfuscation que sur la désobfuscation (ousimplification) d'expressions MBA.Durant nos recherches, nous avons structuré le sujet de l'obfuscationMBA, le reliant à d'autres domaines comme la cryptographie ou laréécriture. Nous avons également reconstruit une techniqued'obfuscation MBA à partir d'échantillons publics. Nous avons étudié ce quesignifie simplifier une expression obfusquée, et défininos propres métriques de simplicité pour les expressions MBA. L'étudede la simplification MBA a entraîné l'implémentation de deux outils dedésobfuscation, qui ont simplifié avec succès plusieurs examplespublics d'expressions obfusquées. Finalement, nous avons évalué larésilience de l'obfuscation MBA par rapport à nos algorithmes desimplification (ainsi que d'autres techniques de désobfuscation), etnous avons conclu que la technique d'obfuscation MBA offrait peu derésilience en l'état. Nous avons donc proposé quelques pistes pouraméliorer ce type d'obfuscation. / Software obfuscation is a software protection technique thattransforms code in order to make its analysis more difficult. MixedBoolean-Arithmetic (MBA) expressions are presented as a strongobfuscation in the context of data flow obfuscation. As the domainaround MBA obfuscation is quite young, there is little literatureon the conception and analysis of such obfuscated expressions.Therefore many interesting subjects arise during its study, both around theobfuscation and deobfuscation (or simplification) of MBA expressions.During our work, we structured the subject of MBA obfuscation, linkingit to other topics like cryptography or rewriting. We also reconstructedan MBA obfuscation technique from public samples. We studied themeaning of simplifying an obfuscated expression, and definedour own simplicity metrics for MBA expressions. The study of MBAsimplification yielded the implementation of two deobfuscation toolsthat successfully simplified several public examples of obfuscatedexpressions. Finally, we assessed the resilience of the MBAobfuscation with regard to our simplification algorithms (as well asother deobfuscation techniques), concluding that this obfuscationtechnique offers little resilience as it is, and we proposed a few ideasto help improve this type of obfuscation.

Page generated in 0.6025 seconds