Mécanismes pour la migration de processus

Dimension: px
Commencer à balayer dès la page:

Download "Mécanismes pour la migration de processus"

Transcription

1 Université Joseph Fourier Institut National Polytechnique de Grenoble U.F.R. Informatiques & Mathématiques Appliquées ENSIMAG I.M.A.G. DEA D INFORMATIQUE : SYSTEMES ET COMMUNICATIONS Projet présenté par : Sahra Bouchenak-Khelladi Mécanismes pour la migration de processus Extension de la machine virtuelle Java Effectué au laboratoire : INRIA Rhônes-Alpes Projet SIRAC Date : 12 juin 1998 Jury : Didier Bert Jacques Briat Andrzej Duda Sacha Krakowiak UFR Informatique et Mathématiques Appliquées Service scolarité Adresse locale : 60, avenue de la Chimie Domaine Universitaire Saint Martin d ères/gières Adresse postale : B.P Grenoble cedex 9 Tel. : Fax :

2

3 Remerciements Je tiens à remercier Monsieur Roland Balter de m avoir reçue au sein du projet Sirac. Je tiens à remercier également le Professeur Sacha Krakowiak pour son soutien tout le long de ce stage de DEA. Et je remercie particulièrement Messieurs Xavier Rousset de Pina et Daniel Hagimont pour leur soutien permanent et pour les discussions qui ont animé ce stage.

4

5 Mécanismes pour la migration de processus Extension de la machine virtuelle Java Sommaire Introduction La migration de processus Définitions élémentaires Processus et contexte d exécution Qu est-ce que la migration de processus Motivations Algorithme général de migration de processus Travaux antérieurs Classification des travaux sur la migration de processus Degrés de mobilité Hétérogénéité Portabilité Alternatives à la migration de processus Processus clone Agents mobiles et langages sûrs et interprétés Problèmes rencontrés lors de la réalisation de la migration de processus Hétérogénéité Maintien de la validité des canaux ouverts Maintien des communications entre processus Conception de mécanismes de migration de processus dans Java Objectifs de la réalisation Contexte de réalisation Le langage Java Un langage orienté-objet Un langage interprété La machine virtuelle Java Positionnement par rapport aux travaux antérieurs Problèmes et solutions Principes des mécanismes de migration à réaliser... 17

6 3 Machine Virtuelle Java Introduction Présentation générale Exemple introductif Structure de la machine virtuelle Java Zones de données d exécution Le registre pc La pile Java Le tas La zone de méthodes Le constant pool Les piles de méthodes natives Frames Les variables locales Les piles d opérandes La liaison dynamique Fonctionnement de la machine virtuelle Java Démarrage de la machine virtuelle Chargement Liaison Initialisation Terminaison de la machine virtuelle Threads Java Structure du contexte d exécution d un thread Java Réalisation de mécanismes de migration de threads Java Mécanismes de migration Mécanisme d extraction du contexte d exécution d un thread Traitements utilisant la pile Java Traitements utilisant le tas d objets Traitements utilisant la zone de méthodes Mécanisme de transfert d un contexte d exécution Traitements utilisant la pile Java Traitements utilisant le tas d objets Traitements utilisant la zone de méthodes Mécanisme d intégration d un contexte d exécution à un nouveau thread Traitements utilisant la pile Java Traitements utilisant le tas d objets Traitements autour de la zone de méthodes Lancement de l exécution du nouveau thread Mécanisme d adaptation de la migration Adaptation lors de l extraction du contexte d exécution Adaptation lors du transfert du contexte d exécution Adaptation lors de l intégration du contexte d exécution Traitement de l hétérogénéité Principe du traitement Traitement restrictif Etapes de réalisation Evaluation des mécanismes proposés Hypothèses de base... 37

7 5.2 Validation des hypothèses de base Validation de la migration forte Validation de l hétérogénéité Validation de l adaptabilité Manipulation d objets de type Socket Manipulation d objets de type Fichier Utilisation des mécanismes proposés Agents mobiles Clone de thread à distance Sauvegarde de l état pour reprise après panne Conclusion...43 Annexe...45 Annexe 1 : Liste des instructions de byte code Java Références bibliographiques...49 Bibliographie complémentaire...53

8

9 Introduction Introduction Ce rapport présente le travail que j ai effectué durant mon stage de DEA. Je commence par introduire les motivations et les objectifs de ce stage, le projet Sirac dans lequel s est déroulé ce stage, la démarche adoptée pour aborder le problème et enfin, le plan de la suite de ce rapport. Motivations et objectifs La nécessité d équilibrer la charge de calcul et de permettre à une application de résister aux pannes a conduit des équipes de recherche universitaires et industrielles à s intéresser aux mécanismes permettant de déplacer un programme en cours d exécution d un site à un autre. Ces travaux ont abouti à la mise en œuvre de mécanismes, dits de mobilité, permettant à un processus de migrer [Barak83] [Milojicic93] ou aux objets d un langage de programmation d être déplacés [Jul88]. Cependant la mobilité est difficile à implanter. Elle pose des problèmes délicats de sécurité. Elle est coûteuse à utiliser et est peu compatible avec l hétérogénéité des sites. Enfin, elle impose des limitations au modèle d objets proposé. En conséquence le champ des applications envisagées pour l utilisation de ces techniques a longtemps été restreint, d autant plus que, la mobilité n étant pas une nécessité absolue pour répondre aux besoins des applications réparties [Chess87], peu de systèmes la permettent. Le développement d'internet et du Web a changé ces conditions et donné un nouvel essor aux travaux sur la mobilité. En effet, dans cet environnement, les performances d une application peuvent dépendre grandement de celles des communications fournies par l Internet. La latence et le débit sur l Internet étant très variables [Mukherjee94], le transfert d un processus peut non seulement apparaître comme étant d un coût raisonnable, mais peut même être considéré comme un outil d adaptation d un programme aux variations de son environnement [Ranganathan94]. Les problèmes résultant de l hétérogénéité et des difficultés d implantation sont partiellement résolus grâce à l utilisation de langages interprétés tels que Java [Arnold96], Tcl [Ousterhout94] ou Telescript [General Magic95]. C est dans ce cadre que s insère notre stage de DEA. Nos objectifs sont d'analyser les différents problèmes à résoudre pour permettre à des processus de migrer d'une machine vers une autre et d identifier les mécanismes de base qui, intégrés à la machine Java, permettraient à des processus Java de migrer d'une machine vers une autre. Les mécanismes que nous désirons fournir devront pouvoir s'adapter aux besoins des applications. Notre choix s est porté sur l extension de la machine virtuelle Java en raison, d une part, de sa grande diffusion et, d autre part, de l abstraction d un environnement homogène fournie par cette machine. 1

10 Introduction Cadre de travail Ce stage de DEA s est effectué au sein du projet SIRAC (Systèmes Informatiques Répartis pour Applications Coopératives) qui est un projet de l IMAG, de l INRIA (Unité de Recherche Rhône-Alpes), de l INPG, de l UJF et de l Université de Savoie. Un des axes de recherche du projet Sirac est la construction d applications réparties. L objectif de cet axe de recherche est de fournir des outils et des services pour le développement et l exécution d applications réparties. Deux directions sont actuellement explorées : Intégration et extension d applications existantes. Ce thème vise à fournir des outils permettant de construire des applications réparties par assemblage de composants existants ou de configurer ces applications à la demande et de les déployer sur des plates-formes d usage courant. Applications réparties sur l Internet. L objectif de ce thème est de fournir des services systèmes pour permettre d utiliser efficacement l Internet comme environnement d exécution d applications réparties. Les services visés en priorité concernent la gestion d objets partagés, la gestion de la sécurité et la gestion de l exécution répartie (migration du code et des données). Mes travaux de DEA se sont effectués au sein de ce dernier thème, Applications réparties sur l Internet. Ils concernent, plus précisément, la gestion de l exécution répartie et le déplacement de l exécution que nous détaillons par la suite. Démarche suivie La démarche que nous avons adoptée pour aborder le problème de la migration de processus est composée de trois étapes : L étude des travaux antérieurs concernant la migration de processus, depuis les systèmes homogènes tels que le Système V [Theimer85] jusqu aux plates-formes à agents mobiles telles que la plate-forme MOA [Milojicic98]. L étude de la structure et du fonctionnement de la machine virtuelle Java et, plus particulièrement, le traitement des flots d exécution (threads). La spécification et la réalisation d extensions de la machine virtuelle Java qui fournissent, d une part, des mécanismes de migration de processus et, d autre part, les principes de l adaptation de ces mécanismes aux besoins de l application les utilisant. Dans la dernière étape, nous avons décidé d opérer par phases successives afin de vérifier la faisabilité de chacun des mécanismes proposés. Une première phase de la réalisation a permis d interrompre un processus en cours d exécution sur une machine virtuelle Java et de créer, sur cette même machine, un nouveau processus capable, après activation, de poursuivre l exécution du premier à partir du point où il avait été arrêté. Ceci n est certes qu une étape préliminaire mais elle ouvre la voie à des mécanismes plus complets qui sont en cours de mise en œuvre. Plan du rapport Nous présentons, dans un premier temps, les travaux antérieurs concernant la migration de processus. Puis, nous décrivons les principes des mécanismes de migration de 2

11 Introduction processus que nous nous proposons d intégrer à la machine virtuelle Java. Pour cela, nous présentons la structure et le fonctionnement de la machine virtuelle Java. Nous décrivons, ensuite, la réalisation des mécanismes proposés et de leur évaluation. Nous concluons ce rapport en rappelant les principaux résultats obtenus et dégageons quelques perspectives ouvertes par ce travail. 3

12

13 1 La migration de processus Chapitre 1 1 La migration de processus Ce premier chapitre introduit les principes qui sont à la base de la migration de processus. Après avoir rappelé la définition des principaux concepts liés aux processus et à leur migration, nous analysons les objectifs qui motivent la migration et dressons un bref état des travaux qui la concernent. Enfin, nous essayons de dégager de l état de l art les principales difficultés rencontrées lors de la mise en œuvre des mécanismes de migration. 1.1 Définitions élémentaires Voici un rappel de certaines définitions élémentaires concernant le processus, le contexte d exécution d un processus et la migration de processus Processus et contexte d exécution Le processus est un concept clé de tous les systèmes d exploitation. La notion de processus fournit un modèle pour représenter l activité résultant de l exécution d un programme sur une machine [Krakowiak85]. Le contexte d exécution d un processus, appelé aussi état d exécution d un processus, est l ensemble des informations que les actions du processus peuvent consulter ou modifier. Le contexte d un processus résultant de l exécution d un programme varie d un système à un autre [Tanenbaum94]. En général, il comprend des informations relatives à la gestion des processus, à la gestion de la mémoire associée au processus ou à la gestion des fichiers manipulés par le processus : Gestion des processus. Les informations relatives à la gestion des processus spécifient diverses propriétés du processus telles que l identificateur du processus, la date de son lancement, son état (prêt, élu ou bloqué), le compteur de programme indiquant la prochaine instruction à exécuter et le pointeur de pile indiquant le sommet de la pile associée au processus. Gestion de la mémoire. Les informations relatives à la gestion de la mémoire sont constituées principalement du programme exécutable, des données manipulées et de la pile d exécution. Gestion des fichiers. Ces informations comprennent, par exemple, les identificateurs des fichiers manipulés par le processus. Contrairement aux processus qui forment des entités distinctes et qui ont chacun leurs ressources et leur environnement, les processus légers (threads) d un même processus partagent le même espace d adressage. 5

14 1 La migration de processus Qu est-ce que la migration de processus La migration de processus est le déplacement d un processus en cours d exécution d une machine source vers une machine destination, ces deux machines étant reliées par un réseau de communication et n utilisant pas de mémoire partagée. La migration de processus d une machine source vers une machine destination consiste à interrompre le processus qui s exécute sur la machine source pour extraire son contexte d exécution, à transférer ce contexte vers la machine destination, à créer, sur la machine destination, un nouveau processus auquel on affectera le contexte d exécution transféré et à mettre à jour les liens de communication avec les autres processus. Une fois ceci fait, le processus sur la machine source doit être détruit tandis que le processus sur la machine destination est lancé et représente le processus déplacé. La Figure 1-1 illustre brièvement le mécanisme de migration de processus. Il existe différentes stratégies de migration de processus. Cette différence est due principalement au contexte d exécution considéré et transféré lors de la migration. En effet, le contenu du contexte d exécution transféré diffère d un mécanisme à l autre ou, plus exactement, d un degré de migration à un autre (voir section ). Processus avant Transfert du contexte Processus après migration migration Machine source Machine destination Processus communiquants Figure 1-1 : Migration de processus 1.2 Motivations La migration de processus possède différents domaines d utilisation, on peut en citer quelques-uns : Disponibilité du système. Dans un système réparti, lorsque certaines machines deviennent indisponibles, les utilisateurs peuvent souhaiter que leurs applications continuent à s exécuter correctement. La disponibilité du système peut être améliorée en déplaçant les applications des machines qui sont suspectées de devenir indisponibles vers des machines encore disponibles. Administration du système. L administration de systèmes répartis peut nécessiter le déplacement de certains services d un site à un autre, lors de reconfiguration du système par exemple. Elle peut, dans certains cas, exiger la réinitialisation d une machine sans pour autant interrompre les applications en cours d exécution sur cette machine. Ces déplacements d applications peuvent être réalisés grâce au mécanisme de migration de processus. Calcul mobile. Lorsqu un utilisateur connecte son ordinateur portable à un réseau, il peut vouloir transférer une application qui est en cours d exécution, sur une station de travail 6

15 1 La migration de processus fixe, vers son ordinateur portable puis la retransférer vers le site d origine lors de la déconnexion de son ordinateur du réseau. Localité. Dans un système réparti, une application peut accéder à une donnée se trouvant sur un site distant ou communiquer avec une autre application se trouvant sur un site distant. Ce type d opération exige des communications et des transferts d informations à travers le réseau, ce qui peut être coûteux dans le cas d accès distants fréquents. Le déplacement de l application vers le site où se trouve la donnée utilisée ou vers le site où se trouve l application avec laquelle elle communique transforme les accès à travers le réseau en accès locaux et réduit ainsi le temps d exécution de l opération souhaitée. Partage de ressources. Grâce à la migration, un processus peut se déplacer, en cours d exécution, vers un site distant et profiter ainsi des ressources physiques de ce site telles que la mémoire ou le disque dur. Il peut aussi profiter de la ressource CPU dans le cas de la répartition dynamique de charge. En effet, pour qu un processus ait le plus de temps CPU possible, il faut qu il s exécute sur la machine qui fournit le plus de capacité de calcul. Les machines les plus rapides et les machines les moins chargées sont les plus intéressantes. Dans un système réparti, la migration permet à un processus de profiter des ressources du système qui sont sous-utilisées, en le déplaçant vers la machine appropriée. 1.3 Algorithme général de migration de processus Il existe différentes techniques de réalisation du mécanisme de migration de processus mais la plupart de ces techniques passent par les principales étapes suivantes [Milojicic97] : 1. Le processus est détaché du site source en suspendant son exécution et en suspendant momentanément ses communications. 2. Le contexte d exécution du processus est extrait, le contenu de ce contexte étant dépendant de la stratégie de migration choisie (voir section ). 3. Un nouveau processus est créé sur le site destination ; le contexte d exécution extrait sera ultérieurement affecté à ce processus et ce processus représentera le processus déplacé. 4. La communication est redirigée en renvoyant les messages au nouveau processus pour que ceux-ci soient traités après la migration. 5. Le contexte d exécution extrait est envoyé au nouveau processus pour y être intégré. Pour des raisons de performance, certaines mécanismes de migration n exigent pas le transfert de tout le contexte d exécution avant la fin de la migration. La technique COR (Copy-On-Reference) [Zayas87] et la technique de pré-copie [Theimer85] sont de telles techniques. Le principe de la technique COR est de ne transférer les pages mémoire appartenant au contexte d un processus qu au moment où celles-ci sont référencées par le processus déplacé. Ceci permet de réduire la durée de transfert du contexte d un processus mais augmente le temps d exécution après migration puisqu il y a traitement des fautes de pages. La technique de pré-copie, quant à elle, a pour principe de transférer vers le site destination l espace d adressage du processus avant la migration de celui-ci, ce qui permet de réduire le temps de traitement de la migration. 6. Le nouveau processus continue l exécution dès que la partie de son contexte nécessaire à son exécution est reçue. A partir de ce moment, la migration prend fin. Une partie du contexte du processus sur le site source peut être maintenue, dans le cas d un transfert retardé ; une fois tout le contexte transmis, le processus sur le site source peut être définitivement arrêté. 7

16 1 La migration de processus 1.4 Travaux antérieurs Dans cette partie, nous établissons, tout d abord, une classification des différents travaux réalisés dans le domaine de la migration de processus. Nous présentons ensuite certains mécanismes servant d alternatives au mécanisme de migration de processus. Car pour des raisons de complexité de réalisation du mécanisme de migration ou pour des raisons de coût d une opération de migration de processus, il peut être préférable d utiliser un autre mécanisme représentant une alternative au mécanisme de migration de processus et moins coûteux que celui-ci Classification des travaux sur la migration de processus Différentes recherches ont été menées dans le cadre de la migration de processus et différents systèmes expérimentaux ont été réalisés. Une étude des principales techniques développées dans le domaine peut être trouvée dans [Nuttall94]. Ces travaux peuvent être classés selon plusieurs critères tels que le degré de la mobilité, l hétérogénéité du système ou la portabilité du mécanisme de migration réalisé. Nous détaillons, ci-dessous, chacun de ces trois critères Degrés de mobilité Il existe différents degrés de mobilité : l exécution à distance et le code à la demande, la migration faible et la migration forte. La Figure 1-2 illustre brièvement ces différents degrés de mobilité. déplacement du code et déplacement du code et déplacement du code, des données initiales des données courantes des données courantes et de l état d exécution mobilité Exécution à distance Code à la demande Mobilité du code Migration faible Migration forte Migration Figure 1-2 : Degrés de mobilité Dans le cas de l exécution à distance, une exécution de programme qui n a pas encore commencé est transférée vers un site distant. Dans ce cas, les informations transférées lors du déplacement sont principalement le code à exécuter et les valeurs initiales des données manipulées. Il n y a pas de transfert des valeurs courantes des données (appelées état des données) ni de l état d exécution d un processus puisque le déplacement se fait avant le début de l exécution (pas de processus créé sur la machine d origine). L exécution à distance est basée sur le mécanisme de RPC (appel de procédure à distance) [Birrell84]. Le système Utopia [Zhou94] a utilisé une telle exécution et le projet Tacoma [Johansen95] a réalisé une plate-forme à agents mobiles en Tcl/Tk fournissant ce type de mobilité pour ses agents. 8

17 1 La migration de processus Contrairement à l exécution à distance, où c est généralement le site source qui décide de transférer une exécution vers le site destination, le code à la demande permet au site destination de ramener un code et ses données initiales du site source pour qu il s exécute sur le site destination. Les Applets Java [Sun94] utilisent un tel mécanisme. La migration faible permet d interrompre un processus, en cours d exécution, sur un site source, de transférer son code et l état courant de ses données vers la machine destination et de reprendre son exécution sur la machine destination. Il est important de noter qu après une telle migration, l exécution du code sur la machine destination reprend depuis le début tout en tenant compte des nouvelles valeurs des données. Les Aglets [IBM96] sont des agents mobiles dont la mobilité est réalisée par migration faible. La migration forte, quant à elle, permet de transférer non seulement le code et l état des données du processus à déplacer, mais aussi l état d exécution de ce processus, ce qui permet de reprendre l exécution de ce dernier, sur le site destination, au point même où il a été interrompu. Sumatra [Ranganathan97] et MAP [Perret97] sont des plates-formes à agents mobiles fournissant une telle mobilité pour leurs agents Hétérogénéité Considérons maintenant l aspect hétérogénéité. Les premiers travaux réalisés dans le cadre de la migration de processus ont été faits dans des systèmes homogènes (des systèmes dont les machines sont de même architecture). DEMOS/MP [Powell83] est l un des premiers systèmes réalisant la migration de processus ; c est un système implanté sur des machines homogènes. Les recherches menées dans le domaine se sont ensuite intéressées à la réalisation de la migration de processus dans des systèmes hétérogènes. La complexité d une telle réalisation dépend, en particulier, du fait que la représentation de l état d exécution d un processus soit dépendante ou indépendante de la machine (la représentation d une information est dépendante de la machine si cette représentation change d une architecture à une autre). Dans le cas où la représentation de l état d exécution d un processus est dépendante de la machine, comme pour le code natif par exemple, réaliser la migration d un processus sur des machines hétérogènes revient à effectuer des traductions entre des représentations différentes de l état du processus pour le transfert de celui-ci d une machine à une autre. Emerald [Steengaard95] et Tui [Smith96] sont des systèmes qui proposent des mécanismes de migration de processus entre machines hétérogènes. Dans le cas où la représentation de l état d exécution d un processus est indépendante de la machine, comme pour le code interprété par exemple, la réalisation d un mécanisme de migration de processus dans un système hétérogène devrait être la même que celle de la migration dans un système homogène Portabilité Intéressons-nous à présent à un autre critère qui est le critère de portabilité. Les travaux de recherche menés dans le cadre de la migration de processus ont suivi deux voies principales : réalisation du mécanisme de migration dans un système existant ou implémentation d un nouveau système fournissant, entre autres fonctionnalités, la migration de processus. La première voie consiste à réaliser un mécanisme de migration de processus audessus d un système existant et répandu, sans modifier ce dernier, ce qui permet d assurer la portabilité du mécanisme de migration fourni. Les travaux réalisés par Freedman [Freedman91] ont suivi cette politique, en fournissant un mécanisme de migration de processus au-dessus du système UNIX. La seconde voie consiste à réaliser un nouveau système qui fournit, entre autres mécanismes, la migration de processus. Cette solution permet de réaliser une migration plus 9

18 1 La migration de processus complète du processus. Elle présente tout de même l inconvénient de réduire l utilisation du mécanisme de migration proposé car celui-ci n est pas fourni dans un système standard et répandu. Les systèmes Sprite [Douglis91] et V [Theimer85] suivent cette politique Alternatives à la migration de processus La réalisation d un mécanisme de migration peut être relativement complexe et une opération de migration de processus peut être coûteuse. Pour remédier à ce problème, d autres solutions ont été explorées [Milojicic97]. Ces autres mécanismes, que nous allons présenter maintenant, offrent une alternative à la migration de processus Processus clone Un processus père peut créer un processus fils qui est son propre clone et qui hérite de son état ; ceci peut être fait grâce au mécanisme de fork. Un fork à distance, suivi d un arrêt du processus père, ressemble tout à fait à une migration de processus. Ce mécanisme de fork à distance a été utilisé dans plusieurs systèmes tels que le système UNIX proposé par Zajcew [Zajcew93]. Mais la complexité et le coût d une telle opération sont similaires à ceux d une opération de migration de processus Agents mobiles et langages sûrs et interprétés Les agents mobiles deviennent de plus en plus populaires dans l environnement du Web [Berners-Lee94]. La mobilité dans le Web implique des problèmes de sécurité plus que des problèmes de performances puisque celles-ci sont masquées par le coût des communications dans un réseau à grande distance. Les agents mobiles sont réalisés au-dessus de langages sûrs et interprétés tels que les langages Java [Arnold96], Telescript [General Magic95] ou Tcl/Tk [Ousterhout94]. Dans des systèmes à agents mobiles tels que Mole [Baumann96] écrit en Java, Telescript ou AgentTcl [Gray96] écrit en Tcl/Tk, le problème d hétérogénéité est masqué grâce au langage interprété utilisé. 1.5 Problèmes rencontrés lors de la réalisation de la migration de processus Les principaux problèmes rencontrés lors de la mise en œuvre d un mécanisme de migration de processus concernent l hétérogénéité du système, le maintien de la validité des canaux ouverts utilisés par un processus et le maintien des communications entre processus lors de la migration d un processus. Nous détaillons ci-dessous chacun de ces problèmes Hétérogénéité La réalisation d un mécanisme de migration de processus dans un système de machines hétérogènes présente une difficulté particulière dans le cas où la représentation du code et des données du processus est dépendante de la machine sur laquelle s exécute ce processus. Dans ce cas, la représentation de l état d un processus sur une machine source n est pas comprise par la machine destination si celle-ci n est pas de la même architecture que la première. Il existe deux solutions principales pour remédier à ce problème. Soit l état du processus est traduit directement de la représentation du site source vers la représentation du site destination ; et dans ce cas, il faut autant de traducteurs qu il existe de couples d architectures différentes. Soit l état du processus est représenté dans un format 10

19 1 La migration de processus intermédiaire, indépendant de la machine et compris par toutes les machines ; et dans ce cas, il faut deux traductions pour chaque transfert d état. Le mécanisme de migration fourni par le système Emerald [Steengaard95] utilise un format intermédiaire pour représenter l état du processus à déplacer Maintien de la validité des canaux ouverts Un autre problème rencontré lors de la réalisation d un mécanisme de migration de processus concerne le maintien de la validité des canaux ouverts utilisés par un processus qui se déplace. Nous appelons canal ouvert toute entité qui est dépendante du système sous-jacent et qui n est plus valide dans un autre système. Un canal ouvert peut être un descripteur de fichier, un canal de communication (socket), un sémaphore, une file d attente ou une zone mémoire partagée. Que se passe-t-il lorsqu un processus qui s exécute sur une machine source et qui accède à un fichier local à cette machine, se déplace vers une machine destination où il doit continuer à accéder à ce fichier? Le descripteur de fichier, utilisé par le processus sur la machine source, n a plus de sens sur la machine destination. Le même problème se pose avec les autres types de canaux ouverts. Une solution à ce problème est de garder des liens de poursuite entre les sites par lesquels passe un processus qui se déplace. Ces liens de poursuite permettent à un processus, déplacé d une machine source vers une machine destination, d accéder depuis la machine destination au canal ouvert se trouvant sur la machine source (par accès distant). Ainsi, le processus déplacé peut accéder à distance à un fichier. Cette solution n est pas applicable dans le cas où une panne peut survenir sur le site source ou sur la liaison réseau entre le site source et le site destination, car les liens de poursuite ne sont alors plus valides. Une autre solution à ce problème est de fournir une identification universelle des canaux ouverts ; avec une telle solution, un même canal ouvert possède le même identificateur sur toutes les machines. Le système Charlotte [Artsy89], qui fournit un mécanisme de migration de processus, fournit aussi un système de gestion de fichiers répartis et donc, une identification universelle des fichiers dans ce système. Un autre exemple d utilisation de cette technique est le micro-noyau Chorus [Rozier88] où un mécanisme de migration de processus est fourni [O Connor93] et où une identification universelle des canaux de communication (appelés ports) est réalisée Maintien des communications entre processus Le maintien des communications entre processus est un autre problème rencontré lors de la migration de processus. En effet, que se passe-t-il lorsqu un message arrive à un processus alors que celui-ci est en cours de migration? Ces messages risquent d être perdus si aucun traitement spécifique n est fait. Une solution à ce problème est de considérer que le processus qui est en cours de migration est dans un état particulier, où il n accepte pas de messages provenant d autres processus. Dans ce cas, avant le déplacement d un processus, les processus communiquant avec lui doivent être mis au courant pour ne pas envoyer de message au cours de la migration. Une autre solution est de retarder momentanément l acheminement des messages au processus destinataire, le temps que celui-ci ait terminé sa migration ; les messages lui seront ensuite renvoyés vers sa nouvelle localisation. 11

20

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

La JVM. La machine virtuelle Java. La JVM. La JVM

La JVM. La machine virtuelle Java. La JVM. La JVM La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Préparé par : George Crump, analyste senior Préparé le : 03/10/2012 L investissement qu une entreprise fait dans le domaine de

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Concept de machine virtuelle

Concept de machine virtuelle Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010. Guillaume ANSEL M2 ISIDIS 2009-2010 / ULCO Dossier d étude sur la virtualisation LA VIRTUALISATION 18/01/2010 Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques.

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

La carte à puce. Jean-Philippe Babau

La carte à puce. Jean-Philippe Babau La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

NOTIONS DE RESEAUX INFORMATIQUES

NOTIONS DE RESEAUX INFORMATIQUES NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Itium XP. Guide Utilisateur

Itium XP. Guide Utilisateur Itium XP 06/2007 - Rev. 3 1 Sommaire 1 Sommaire... 2 2 Généralités... 3 3 ItiumSysLock... 4 3.1 Enregistrer l état actuel du système... 4 3.2 Désactiver ItiumSysLock... 5 3.3 Activer ItiumSysLock... 5

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

DG-ADAJ: Une plateforme Desktop Grid

DG-ADAJ: Une plateforme Desktop Grid DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Mise en place Active Directory / DHCP / DNS

Mise en place Active Directory / DHCP / DNS Mise en place Active Directory / DHCP / DNS Guillaume Genteuil Période : 2014 Contexte : L entreprise Diamond Info localisé en Martinique possède une cinquantaine de salariés. Basé sur une infrastructure

Plus en détail

Symantec Backup Exec 11d

Symantec Backup Exec 11d TABLE DES MATIERES 1. Qu est-ce que Backup Exec 11d?...2 2. En termes d avantages, qu apporte principalement la version Backup Exec 11d?...2 3. Quelles sont les grandes nouveautés, en termes de fonctionnalités,

Plus en détail

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP Université de Strasbourg Licence Pro ARS UFR de Mathématiques et Informatique Année 2009/2010 1 Adressage IP 1.1 Limites du nombre d adresses IP 1.1.1 Adresses de réseaux valides Réseaux Locaux TP 04 :

Plus en détail

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D. 2013 Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D. Table des matières 1 Introduction (Historique / définition)... 3 2 But de la virtualisation... 4 3 Théorie : bases et typologie des solutions techniques...

Plus en détail

L A T O U R D E P E I L Z Municipalité

L A T O U R D E P E I L Z Municipalité V I L L E D E L A T O U R D E P E I L Z Municipalité PRÉAVIS MUNICIPAL N 16/2014 le 10 décembre 2014 Concerne : Demande de crédit de Fr. 550'000.-- pour le renouvellement et migration de l infrastructure

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

VMWare Infrastructure 3

VMWare Infrastructure 3 Ingénieurs 2000 Filière Informatique et réseaux Université de Marne-la-Vallée VMWare Infrastructure 3 Exposé système et nouvelles technologies réseau. Christophe KELLER Sommaire Sommaire... 2 Introduction...

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi Nicolas Geoffray 1, Gaël Thomas 1, Gilles Muller 1, Pierre Parrend 2, Stéphane Frénot 3, Bertil Folliot 1 nicolas.geoffray@lip6.fr

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Administration de systèmes

Administration de systèmes Administration de systèmes Windows NT.2000.XP.2003 Copyright IDEC 2002-2004. Reproduction interdite. Sommaire... 2 Eléments logiques et physiques du réseau... 5 Annuaire et domaine... 6 Les utilisateurs

Plus en détail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE 2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Manuel du Desktop Sharing

Manuel du Desktop Sharing Brad Hards Traduction française : Ludovic Grossard Traduction française : Damien Raude-Morvan Traduction française : Joseph Richard 2 Table des matières 1 Introduction 5 2 Le protocole de mémoire de trame

Plus en détail

L importance de la «virtualisation de l espace de travail utilisateur» dans la virtualisation des postes de travail Whitepaper

L importance de la «virtualisation de l espace de travail utilisateur» dans la virtualisation des postes de travail Whitepaper res Software // Whitepaper L importance de la «virtualisation de l espace de travail utilisateur» dans la virtualisation des postes de travail Whitepaper IT, the way you need it 2 Contenu : Résumé...3

Plus en détail

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7 PROCÉDURE D INSTALLATION Cegid Business V9 COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7 Sommaire 1. Introduction 2. Installation de SQL Server 2005 ou 2008 3. Installation de Cegid Business

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE 123 UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE Résumé Cet article décrit la création d un centre serveur sous le système d exploitation Linux, avec le serveur web Apache, ainsi que le développement d un

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Ingénérie logicielle dirigée par les modèles

Ingénérie logicielle dirigée par les modèles Ingénérie logicielle dirigée par les modèles Destercq Lionel & Dubuc Xavier 17 décembre 2009 Table des matières 1 Introduction 1 2 Diagrammes de classes 1 2.1 Principal..............................................

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Gestion des sauvegardes

Gestion des sauvegardes Gestion des sauvegardes Penser qu un système nouvellement mis en place ou qui tourne depuis longtemps ne nécessite aucune attention est illusoire. En effet, nul ne peut se prémunir d événements inattendus

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Planifier la migration des applications d entreprise dans le nuage

Planifier la migration des applications d entreprise dans le nuage TM Planifier la migration des applications d entreprise dans le nuage Guide de vos options de migration : nuage privé et public, critères d évaluation des applications et meilleures pratiques de migration

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Mobile OGSI.NET: Grid Computing on Mobile Devices

Mobile OGSI.NET: Grid Computing on Mobile Devices Mobile OGSI.NET: Grid Computing on Mobile Devices David C.Chu Université de Californie, Berkeley Marty Humphrey Université de Virginie Publié en Novembre 2004 lors de la 5ième conférence IEEE/ACM International

Plus en détail

Initiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr

Initiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr Initiation à Excel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex Plan de cette année

Plus en détail