• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 15
  • 10
  • 2
  • Tagged with
  • 30
  • 30
  • 17
  • 17
  • 12
  • 8
  • 6
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 4
  • 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

La mise au point de système de programmation grâce à un couplage de machines virtuelles

Lefèvre, Patrick 05 July 1972 (has links) (PDF)
No description available.
2

Mise en œuvre d'un langage à mobilité forte

Epardaud, Stephane 18 February 2008 (has links) (PDF)
Afin de résoudre les problèmes liés à l'intégration d'un nombre croissant d'appareils programmables, nous proposons un langage d'agents mobiles. Ces agents mobiles sont capables de migrer d'un appareil ou ordinateur à l'autre afin d'exploiter au mieux ses ressources, ce qui permet de profiter au mieux des capacités de chaque appareil à partir d'un unique programme. Ce langage est ULM: Un Langage pour la Mobilité. Nous présentons dans cette thèse ses fonctionnalités, ses particularités, ainsi que sa mise en œuvre. ULM est un dérivé du langage Scheme, auquel nous avons ajouté les fonctionnalités liées à la mobilité ainsi qu'à l'interaction entre les agents mobiles. ULM possède un ensemble de primitives permettant la création d'agents à mobilité forte, avec un ordonnancement coopératif déterministe, et des primitives de contrôles telles que la suspension ou la préemption faible. Nous présentons dans cette thèse l'intégration de ces primitives dans le langage Scheme, ainsi que leur interaction et l'ajout de certaines nouvelles primitives telles que la préemption forte ou la migration sûre. Nous présentons ensuite la sémantique dénotationnelle du langage et sa mise en œuvre au moyen d'un compilateur vers code-octet, et de deux machines virtuelles: une écrite en Bigloo Scheme pour exécution sur des ordinateurs traditionnels, l'autre écrite en Java ME pour les téléphones portables. Nous présentons ensuite l'utilisation possible d'ULM comme remplacement de programmes écrits pour des boucles d'évènements, l'interface entre ULM et des langages externes, quelques exemples d'utilisation d'ULM, puis les travaux futurs avant de conclure.
3

Un langage dédié à l'administration d'infrastructures virtualisées / A domain specific language for virtualized infrastructures

Pottier, Rémy 19 September 2012 (has links)
Avec l’émergence de l’informatique dans les nuages, la capacité d’hébergement des centres de données ne cesse d’augmenter afin de répondre à une demande de plus en plus forte. La gestion, appelée l’administration, d’un centre de données entraîne des opérations fréquentes sur des machines virtuelles (VM) ainsi que sur des serveurs. De plus, chaque VM hébergée possède des besoins spécifiques au regard de sa qualité de service, de ses ressources et de son placement qui doit être compatible avec les mécanismes de tolérance aux pannes et la configuration réseau. Les outils de « l’Infrastructure As A Service » tels que Open Nebula et Vmware vSphere simplifient la création et le déploiement de VM. Cependant, l’administration d’une infrastructure virtualisée repose encore sur des changements manuels décidés par les administrateurs. Cette approche n’est plus pertinente pour la gestion d’infrastructures virtualisées de milliers de VM. En effet, les administrateurs ne peuvent pas manipuler des ensembles importants de VM tout en assurant la compatibilité des reconfigurations exécutées avec les besoins des VM. De nouvelles approches d’administration d’infrastructures proposent l’automatisation de certaines tâches d’administration. L’outil décrit dans ce document utilise des langages dédiés pour répondre aux besoins d’administration infrastructures virtualisées de taille conséquente. Dans un premier temps, l’outil propose aux administrateurs des opérations d’introspection pour observer l’organisation des ressources déployées sur l’infrastructure et les reconfigurations habituelles comme le démarrage, l’arrêt et le redémarrage de VM et de serveurs. Dans un second temps les administrateurs définissent le placement des VM à partir de règles de placement. À partir de ces règles, l’outil d’administration vérifie chaque reconfiguration et chaque ajout de règles exécutés par l’administrateur. Si une reconfiguration ou une règle est invalide, l’outil détecte un conflit et avertit l’administrateur de l’échec de l’opération. L’outil d’administration, à l’aide d’algorithmes d’ordonnancement peut calculer un plan de reconfigurations résolvant les conflits. Ces algorithmes peuvent aussi être utilisés pour mettre en place des politiques d’ordonnancement comme la consolidation ou l’équilibrage de charge. / With the emergence of cloud computing, the hosting capacity of the data centers has been continuously growing to support the non stop increasing clients demand. Managing a data center implies to regularly manipulate both virtual machines (VM) and servers. Each hosted VM has specific expectations regarding its quality of service, its resource requirements and its placement that may be compatible with fault tolerance mechanisms and the networking configuration. Infrastructure As A Service solutions such as Open Nebula and VMWare vSphere extremely simplify creations and deployments of VM but virtualized infrastructure management is still relying on manual changes on the environment. This approach is no longer compatible with an infrastructure composed of thousand of VM. Indeed, a system administrator can not manipulate a large set of VMinsuring that its reconfigurations are compatible with the expected VM requirements. This situation has led to new approaches for the infrastructure management employing automation to replace the traditional manual approach. The tool described in this document deals with VM management from Domain Specific Languages. On the one hand, this tool proposes to administrators introspection operations to monitor the infrastructure resources and common reconfigurations including starting, halting, rebooting, of serversand VM. On the other hand, administrators define the VM placement from placement rules. Then, the system checks, according to active rules, the validity of all reconfigurations and rules performed by administrators. If a reconfiguration or a rule is invalid, the administrative tool detects conflicts and warns administrators. To resolve a conflict, the system, by interacting with scheduling algorithms, computes a reconfiguration plan that satisfies all rules.The reconfiguration plan can also apply scheduling policies as consolidation or load balancing with respect to placement rules.
4

Une machine virtuelle en héritage multiple basée sur le hachage parfait / A virtual machine with multiple inheritance, based on perfect hashing

Pagès, Julien 14 December 2016 (has links)
Cette thèse traite des langages à objets en héritage multiple et typage statique exécutés avec des machines virtuelles. Des analogies sont à faire avec Java bien que ce langage ne soit pas en héritage multiple.Une machine virtuelle est un système d'exécution d'un programme qui se différencie des classiques compilateurs et interpréteurs par une caractéristique fondamentale : le chargement dynamique. Les classes sont alors découvertes au fil de l'exécution.Le but de la thèse est d'étudier et de spécifier une machine virtuelle pour un langage à objets en héritage multiple, pour ensuite spécifier et implémenter des protocoles de compilation/recompilation. Ces derniers devront mettre en place les optimisations et les inévitables mécanismes de réparations associés.Nous présenterons d'abord l'architecture et les choix réalisés pour implémenter la machine virtuelle : ceux-ci utilisent le langage Nit en tant que langage source ainsi que le hachage parfait, une technique d'implémentation de l'héritage multiple.Ensuite nous présenterons les spécifications pour implémenter des protocoles de compilation/recompilation ainsi que les expérimentations associées.Dans ce cadre, nous avons présenté une extension des analyses de préexistence et de types concrets, pour augmenter les opportunités d'optimisations sans risque. Cette contribution dépasse la problématique de l'héritage multiple. / This thesis is about object-oriented languages in multiple inheritance and static typing executed by virtual machines.We are in the context of a Java-like language and system but in multiple inheritance.A virtual machine is an execution system which is different from static compilers and interpreters since they are in dynamic loading.This characteristic makes classes to be discovered during the execution.The thesis' goal is to study, specify and implement a virtual machine for an object-oriented language in multiple inheritance and then in a second step to specify and implement compilation/recompilation protocols.These protocols are in charge of optimizations and unavoidable repairing.We will present the architecture of the virtual machine : the used language is Nit, and perfect hashing as the multiple inheritance implementation technique. Then we will present the protocols and the experiments.In this thesis, we have presented an extension of preexistence and concrete types analysis to increase optimization opportunities. This contribution is not limited to multiple inheritance object-oriented languages.
5

Etude et Réalisation d'un Système d'Aide à la Mise au Point en Programmation Logique

Debarbieri, Christian 25 April 1990 (has links) (PDF)
L'apparition d'interprètes sur de gros systèmes, tels Prolog-Dec10, puis des premiers compilateurs Prolog basés sur le fonctionnement de la machine virtuelle de Warren contribuèrent à la renommée du langage ainsi qu'a sa diffusion dans les universités puis l'industrie comme un puissant langage de l'Intelligence Artificielle [Warren-77, 83]. Le langage Prolog est fondé sur une restriction de la logique du premier ordre : l'ensemble des clauses de Horn. Le fait d'utiliser la logique du premier ordre comme langage de programmation était révolutionnaire parce que, jusqu'en 1972, une des utilisations de la logique en informatique était pour écrire des spécifications formelles et déclaratives. Kowalski nous montre dans son papier sur ce langage [Kowalski-74] que la logique des clauses de Horn possède une interprétation opérationnelle qui la rend très efficace comme fondement d'un langage de programmation, puis il effectue une preuve de la complétude de la méthode de dérivation sur laquelle se fondent tous les interprètes Prolog. De plus, la définition d'une sémantique formelle d'un langage de programmation logique [Emden-Kowalski-76] permet de définir une sémantique du point fixe pour les programmes utilisant les clauses de Hom comme syntaxe formelle, mais elle permet aussi de démontrer qu'elle était identique au modèle minimal d'une sémantique opérationnelle. Cet aspect est aussi étudié dans le cadre de la norme Prolog en cours de rédaction [Deransart&all-85].
6

Gossip et la convergence dans les réseaux d'équipements virtualisés

Héroux, Martin 02 1900 (has links) (PDF)
L'Internet du futur devra certainement utiliser la virtualisation, car elle permet un passage flexible vers de nouveaux modèles de réseau, offre une abstraction des ressources, permet une meilleure utilisation de ces ressources ainsi que le partage de ces ressources. La virtualisation des serveurs est déjà utilisée depuis plusieurs années dans les centres de données et sur Internet. L'abstraction du matériel, le partage des ressources et les facilités de déploiement ont permis d'évoluer vers le modèle des services infonuagiques. On pense donc que l'Internet du futur doit passer par une virtualisation des équipements de réseau pour emprunter un chemin similaire à celui des serveurs vers l'informatique en nuage. Pour faciliter la découverte des ressources d'un réseau d'équipements virtuels, il est préférable de ne pas contacter chaque équipement du réseau à tour de rôle. Pour accélérer la création d'un inventaire des ressources disponibles, il est nécessaire d'établir leur cartographie. Cette cartographie des ressources associées à leur nœud physique sera appelée topologie puisqu'elle tiendra compte des liaisons entre les ressources et les nœuds du réseau. Le contexte de cette recherche est une approche de stabilisation rapide de la topologie des ressources mises en commun pour des réseaux dont les équipements ont été virtualisés. La centralisation d'une topologie globale d'un réseau comme Internet ne pourrait être possible. La fréquence des mises à jour et la quantité d'opérations de lecture demanderaient une infrastructure incroyablement puissante pour supporter des millions de clients concurrents. La décentralisation est une approche qui permet de répondre à cette demande en puissance par la distribution massive de la charge de travail entre plusieurs ordinateurs. De plus, elle permet d'accroitre la tolérance aux fautes, l'autoadaptation de la topologie, la réplication d'une large quantité de données et rapproche les informations vers les clients. À première vue, le modèle semble parfait, mais pour maintenir une telle topologie qui soit structurée autour d'un réseau, qui est lui-même en constante évolution, le modèle présente une complexité supplémentaire. En effet, pour maintenir une telle structure, il faut la mettre à jour à chaque changement. La décentralisation seule peut alors entraîner des connexions lentes entre deux nœuds qui sont relativement éloignés l'un de l'autre géographiquement et dont la latence entre ces liens peut être élevée. Ces connexions lentes peuvent ralentir les mises à jour de la topologie et donc ralentir la convergence (voir lexique) de l'information. L'utilisation d'une approche non structurée peut éliminer cette limitation. Chaque nœud participant à un système non structuré prend ses propres décisions. Ces décisions n'affectent pas les autres nœuds du système. Le travail présenté dans ce mémoire utilise un réseau qui reflète une des directions d'exploration des projets de GENI [1], PlanetLab [2], VINI [3], Cabo [4], etc. Ce réseau utilise des routeurs virtuels dont les nœuds physiques partagent leurs ressources informatiques. Une approche de mises à jour décentralisées et non structurées sera utilisée dans le but de gérer la topologie et de répondre aux exigences de distribution, de robustesse, de croissance et d'extensibilité de cette dernière. Dans le réseau de routeurs virtuels du présent travail, chaque nœud physique possède sa propre copie de la topologie des ressources partagées par les autres nœuds physiques du réseau. Le défi principal que relève ce mémoire est la convergence rapide de cette topologie des ressources partagées, appliquée à un grand réseau. Afin de réaliser les mises à jour de la topologie des ressources partagées, deux modèles d'architecture de système distribué ont été étudiés : le P2P (voir lexique) et le Gossip (voir lexique). Dans un premier temps, il sera démontré comment le modèle Gossip paraît être le mieux adapté au contexte du présent travail. Dans un deuxième temps, l'expérience du protocole P2P Gnutella a fait ressortir qu'il est préférable de profiter de la topologie du réseau sur lequel on s'exécute. Le protocole Gossip sera amélioré en ce sens. Cette nouvelle version démontrera comment l'utilisation de la topologie du réseau physique peut être utilisée comme levier pour améliorer sa performance. Finalement, il sera démontré en quoi l'amélioration apportée permet de stabiliser le temps de convergence d'une topologie décentralisée et non structurée indépendamment de la taille et de la latence d'un réseau, pourvu qu' il soit fortement maillé. ______________________________________________________________________________
7

Débogage symbolique multi-langages pour les plates-formes d'exécution généralistes

Ciabrini, Damien 03 October 2006 (has links) (PDF)
Cette thèse est consacrée à l'amélioration des débogueurs symboliques pour tenir compte des spécificités des langages de haut niveau, notamment leur compilation délicate vers des plates-formes d'exécution généralistes. Ces travaux ont conduit à la réalisation de Bugloo, un débogueur multi-langages pour la machine virtuelle Java. <br /><br />Deux nouveaux mécanismes de représentations virtuelles sont proposés pour éliminer les perturbations de débogage dues à la présence sur la pile de fonctions intermédiaires produites par la compilation des langages de haut niveau. Le premier utilise des règles fournies par les implanteurs de langage pour maintenir une correspondance entre le code source d'un programme et le code produit par sa compilation. Cela permet au débogueur de reconstruire une vue logique dans laquelle les détails de compilation ont été expurgés. Le second mécanisme sert à contrôler l'exécution pas-à-pas, afin de ne jamais s'arrêter dans les fonctions intermédiaires engendrées par le compilateur. Ces deux mécanismes ont été adaptés pour réaliser un profileur d'allocation mémoire produisant des statistiques dans lesquelles les fonctions intermédiaires sont masquées. <br /><br />Durant ces travaux, un support de débogage complet a été développé pour le langage Bigloo, un dialecte du langage fonctionnel Scheme. Des expérimentations similaires ont étés menées sur les langages ECMAScript et Python. Les résultats obtenus montrent que les techniques de représentations virtuelles développées s'appliquent efficacement quel que soit le schéma de compilation adopté, y compris lorsque les programmes sont composés de plusieurs langages de haut niveau.
8

Un langage dédié à l'administration d'infrastructures virtualisées

Pottier, Rémy 19 September 2012 (has links) (PDF)
Avec l'émergence de l'informatique dans les nuages, la capacité d'hébergement des centres de données ne cesse d'augmenter afin de répondre à une demande de plus en plus forte. La gestion,appelée l'administration, d'un centre de données entraîne des opérations fréquentes sur des machines virtuelles (VM) ainsi que sur des serveurs. De plus, chaque VM hébergée possède des besoins spécifiques au regard de sa qualité de service, de ses ressources et de son placement qui doit être compatible avec les mécanismes de tolérance aux pannes et la configuration ré-seau. Les outils de " l'Infrastructure As A Service " tels que Open Nebula et Vmware vSphere simplifient la création et le déploiement de VM. Cependant, l'administration d'une infrastructure virtualisée repose encore sur des changements manuels décidés par les administrateurs. Cette approche n'est plus pertinente pour la gestion d'infrastructures virtualisées de milliers de VM. En effet, les administrateurs ne peuvent pas manipuler des ensembles importants de VM tout en assurant la compatibilité des reconfigurations exécutées avec les besoins des VM. De nouvelles approches d'administration d'infrastructures proposent l'automatisation de certaines tâches d'administration. L'outil décrit dans ce document utilise des langages dédiés pour ré-pondre aux besoins d'administration infrastructures virtualisées de taille conséquente. Dans un premier temps, l'outil propose aux administrateurs des opérations d'introspection pour observer l'organisation des ressources déployées sur l'infrastructure et les reconfigurations habituelles comme le démarrage, l'arrêt et le redémarrage de VM et de serveurs. Dans un second temps les administrateurs définissent le placement des VM à partir de règles de placement. À partir de ces règles, l'outil d'administration vérifie chaque reconfiguration et chaque ajout de règles exécutés par l'administrateur. Si une reconfiguration ou une règle est invalide,l'outil détecte un conflit et avertit l'administrateur de l'échec de l'opération. L'outil d'administration, à l'aide d'algorithmes d'ordonnancement peut calculer un plan de reconfigurations résolvant les conflits. Ces algorithmes peuvent aussi être utilisés pour mettre en place des politiques d'ordonnancement comme la consolidation ou l'équilibrage de charge.
9

Gestion de ressources de façon "éco-énergétique" dans un système virtualisé : application à l'ordonnanceur de marchines virtuelles / Design and implementation of an energy-effcient resources manager in a virtualized system : case of virtuals machines scheduler

Mayap Kamga, Christine 26 June 2014 (has links)
Face au coût de la gestion locale des infrastructures informatiques, de nombreuses entreprises ont décidé de la faire gérer par des fournisseurs externes. Ces derniers, connus sous le nom de IaaS (Infrastructure as a Service), mettent des ressources à la disposition des entreprises sous forme de machine virtuelle (VM - Virtual Machine). Ainsi, les entreprises n'utilisent qu'un nombre limité de machines virtuelles capables de satisfaire leur besoin. Ce qui contribue à la réduction des coûts de l'infrastructure informatique des entreprises clientes. Cependant, cette externalisation soulève pour le fournisseur, les problèmes de respect d'accord de niveau de service (SLA - Service Layer Agreement) souscrit par le client et d'optimisation de la consommation énergétique de son infrastructure. Au regard de l'importance que revêt ces deux défis, de nombreux travaux de recherches se sont intéressés à cette problématique. Les solutions de gestion d'énergie proposées consistent à faire varier la vitesse d'exécution des périphériques concernés. Cette variation de vitesse est implémentée, soit de façon native parce que le périphérique dispose des mécaniques intégrés, soit par simulation à travers des regroupements (spatial et temporel) des traitements. Toutefois, cette variation de vitesse permet d'optimiser la consommation énergétique d'un périphérique mais, a pour effet de bord d'impacter le niveau de service des clients. Cette situation entraine une incompatibilité entre les politiques de variation de vitesse pour la baisse d'énergie et le respect de l'accord de niveau de service. Dans cette thèse, nous étudions la conception et l'implantation d'un gestionnaire de ressources "éco énergétique" dans un système virtualisé. Un tel gestionnaire doit permettre un partage équitable des ressources entre les machines virtuelles tout en assurant une utilisation optimale de l'énergie que consomment ces ressources. Nous illustrons notre étude avec un ordonnanceur de machines virtuelles. La politique de variation de vitesse est implantée par le DVFS (Dynamic Voltage Frequency Scaling) et l'allocation de la capacité CPU aux machines virtuelles l'accord de niveau de service à respecter. / Considering the cost of local management of the computing infrastructures, numerous companies decided to delegate theirs to providers. These latter are known as an Infrastructure as a Service (IaaS) and provide resources to companies in the form of virtual machine (VM). This decision to outsource contributes to lower the cost of IT infrastructure of the customer companies. However, it raises for the provider, the problems of the respect of the Service Layer agreement (SLA) of the customer and of the optimization of the energy consumption of his infrastructure. With regard to the importance of these two challenges, many research works have focused on this problem. The proposed energy management solutions consist in varying the execution speed of the affected devices. This variation of speed is implemented either natively because the device has integrated mechanics, or by simulation through a spatial or temporal batching requests. However, this variation of speed optimizes the energy consumption of a device but has the side effect of degrading the customers SLA. In this thesis, we study the design and the implementation of an energy-efficient resources manager in a virtualized system. Such a manager must ensure a fair share of resources among VMs while ensuring optimal use of the energy consumed by the resources. We illustrate our study thanks to a scheduler of VMs. The DVFS constitutes our energy management policy and the CPU capacity of the VMs the SLA to respect.
10

Continuous and Efficient Lock Profiling for Java on Multicore Architectures / Profilage continu et efficient de verrous pour Java pour les architectures multicœurs

David, Florian 08 July 2015 (has links)
Aujourd’hui, le traitement de grands jeux de données est généralement parallélisé et effectué sur des machines multi-cœurs. Cependant, les verrous peuvent sérialiser l'exécution de ces coeurs et dégrader la latence et le débit du traitement. Détecter ces problèmes de contention de verrous in-vitro (i.e. pendant le développement du logiciel) est complexe car il est difficile de reproduire un environnement de production, de créer une charge de travail réaliste représentative du contexte d’utilisation du logiciel et de tester toutes les configurations de déploiement possibles où s'exécutera le logiciel. Cette thèse présente Free Lunch, un profiler permettant d'identifier les phases de contention dues aux verrous in-vivo (i.e. en production). Free Lunch intègre une nouvelle métrique appelée Critical Section Pressure (CSP) évaluant avec précision l'impact de la synchronisation sur le progrès des threads. Free Lunch est directement intégré dans la JVM Hotspot pour minimiser le surcoût d'exécution et reporte régulièrement la CSP afin de pouvoir détecter les problèmes transitoires dus aux verrous. Free Lunch est évalué sur 31 benchmarks issus de Dacapo 9.12, SpecJVM08 et SpecJBB2005, ainsi que sur la base de données Cassandra. Nous avons identifié des phases de contention dans 6 applications dont certaines n'étaient pas détectées par les profilers actuels. Grâce à ces informations, nous avons amélioré la performance de Xalan de 15% en modifiant une seule ligne de code et identifié une phase de haute contention dans Cassandra. Free Lunch n’a jamais dégradé les performances de plus de 6% ce qui le rend approprié pour être déployé continuellement dans un environnement de production. / Today, the processing of large dataset is generally parallelised and performed on computers with many cores. However, locks can serialize the execution of these cores and hurt the latency and the processing throughput. Spotting theses lock contention issues in-vitro (i.e. during the development phase) is complex because it is difficult to reproduce a production environment, to create a realistic workload representative of the context of use of the software and to test every possible configuration of deployment where will be executed the software. This thesis introduces Free Lunch, a lock profiler that diagnoses phases of high lock contention due to locks in-vivo (i.e. during the operational phase). Free Lunch is designed around a new metric, the Critical Section Pressure (CSP), which aims to evaluate the impact of lock contention on overall thread progress. Free Lunch is integrated in Hotpost in order to minimize the overhead and regularly reports the CSP during the execution in order to detect temporary issues due to locks. Free Lunch is evaluated over 31 benchmarks from Dacapo 9.12, SpecJVM08 and SpecJBB2005, and over the Cassandra database. We were able to pinpoint the phases of lock contention in 6 applications for which some of these were not detected by existing profilers. With this information, we have improved the performance of Xalan by 15% just by rewriting one line of code and identified a phase of high lock contention in Cassandra during the replay of transactions after a crash of a node. Free Lunch has never degraded performance by more than 6%, which makes it suitable to be deployed continuously in an operational environment.

Page generated in 0.0604 seconds