Réalisation d un OS 32 bits pour PC(x86)
|
|
- Édouard St-Gelais
- il y a 8 ans
- Total affichages :
Transcription
1 État de l art associé au projet tuteuré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy <mcheramy@etud.insa-toulouse.fr> Benjamin Hautbois <bhautboi@etud.insa-toulouse.fr> Nicolas Floquet <nfloquet@etud.insa-toulouse.fr> Simon Vernhes <vernhes@etud.insa-toulouse.fr> 4ème année Informatique Résumé du projet Les systèmes d exploitations sont au coeur du fonctionnement des ordinateurs. Cette partie logicielle fait le lien entre le matériel et les applications que nous utilisons au quotidien. Un non initié, ne se doute probablement pas de la complexité et de l importance des mécanismes mis en place pour le bon fonctionnement du système. Nous verrons à travers ce rapport, que les systèmes d exploitations sont activement développés et que les différents mécanismes utilisés font l objet de nombreuses recherches à l heure actuelle. L aboutissement de nos recherches nous permettra l écriture d un système d exploitation 32 bits pour architecture Intel x86 dans le cadre des projets tutorés de 4ème année Informatique à l INSA de Toulouse. Nous avons décidé d axer nos recherches sur l étude des différents types de noyaux de système d exploitation dans un premier temps, puis nous nous concentrerons sur le cas des micro-noyaux qui constituent selon nous un type de noyau très intéressant et prometteur. Dans cette seconde partie, nous détaillerons les principaux éléments mis en jeu même s ils ne sont pas toujours spécifiques à ce type de noyau. L objectif de notre projet tutoré est de réaliser un système d exploitation utilisant un micro-noyau. Celui-ci sera capable de lancer plusieurs processus simultanément. Cela implique donc l écriture d un ordonnanceur, d une gestion de la mémoire de manière sécurisée et du chargement en mémoire d un programme. D un point de vue utilisateur, notre système fournira une Interface Homme-Machine très rudimentaire. État de l art associé au projet tuteuré Page 1
2 Table des matières 1 Introduction à la notion de système d exploitation Présentation Les différents types de systèmes d exploitation Évolution Noyaux de systèmes d exploitations Introduction Types de noyaux existants Noyaux monolithiques non modulaires Noyaux monolithiques modulaires Micro-Noyaux Noyaux hybrides Exo-noyaux Les micro-noyaux Les différents éléments qui constituent un micro-noyau Ordonnanceur Rôle d un ordonnanceur et principales caractéristiques Algorithmes Vocabulaire Communication Inter-Processus (IPC) Fichier Signaux Socket Message queue Sémaphore Mémoire partagé Message passing Mémoire Unité de gestion de mémoire Mémoire segmentée Mémoire paginée Mémoire virtuelle paginée Algorithmes de pagination Protection de la mémoire Vocabulaire Pilotes Système de fichiers Conclusion 16 5 Bibliographie 17 État de l art associé au projet tuteuré Page 2
3 1 Introduction à la notion de système d exploitation 1.1 Présentation Un système d exploitation est la couche logicielle qui s exécute entre le matériel et les applications. Cette couche peut avoir plusieurs rôles, parmi les plus importants on trouvera : fournir une interface de programmation simplifiée, grâce aux appels système. Notamment pour fournir une abstraction par rapport au matériel. Mais aussi permettre aux différentes applications de communiquer entres elles (communication inter-processus). gérer l exécution des tâches : on parlera de système d exploitation mono-tâche si celui si ne peut en exécuter qu une à la fois, et de système d exploitation multi-tâche si celui-ci peut gérer plusieurs tâches en même temps. Dans ce cas, il se chargera alors d allouer à chaque tâche un temps d utilisation du processeur, on parlera d ordonnancement. protéger le système des erreurs que pourraient provoquer les applications. 1.2 Les différents types de systèmes d exploitation Dans l absolu, il pourrait exister un type de système d exploitation pour chaque utilisation que l on voudrait en faire. Dans la réalité il se trouve que les systèmes d exploitations les plus courants peuvent rentrer dans certaines catégories. On distinguera dans un premier temps les systèmes mono-tâche des systèmes multi-tâche. Ensuite, selon si le système d exploitation permet une gestion de différents utilisateurs avec des droits attribués, ou ne gère qu un seul utilisateur, on parlera de système multi-utilisateur, ou de système mono-utilisateur. Ces deux distinctions sont, à l heure actuelle, un peu désuètes, étant donné qu il existe de moins en moins de systèmes d exploitation ne permettant pas la gestion de plusieurs tâches et de plusieurs utilisateurs. Il existe cependant une dernière catégorie de systèmes d exploitation qui gagne de l importance de nos jours. En effet, si la plupart des systèmes peuvent convenir au grand public dans un usage qui n est pas critique, certaines applications comme l aéronautique réclament d importantes contraintes sur le temps d exécution des taches. On appellera systèmes d exploitation temps-réel les systèmes d exploitation permettant de répondre rigoureusement à ces contraintes. Les systèmes d exploitation les plus connus (Windows, MacOS, Linux) sont multi-tâches et multi-utilisateurs, Windows et Linux offrent cependant des déclinaisons orientées temps-réel (telles que Windows CE et RTLinux). 1.3 Évolution Au cours de l histoire de l informatique le rôle des systèmes d exploitations a grandement évolué. [1] Premiers ordinateurs chers et rares, la programmation se faisait à bas niveau et on exécutait un seul programme à la fois. Pas de véritables besoin de recourir à une couche telle qu un système d exploitation Apparition de la multiprogrammation. On se rend compte que les programmes sont fortement ralentis par les entrées/sorties. L idée émerge donc d exécuter plusieurs applications en même temps (afin de profiter du temps de calcul autrement perdu lorsque le premier programme attend les E/S). Ceci entraine le besoin d avoir un dispositif pour gérer la répartition des ressources en puissance calcul, c est la naissance des premiers systèmes d exploitation basiques Apparition de la micro-informatique. La démocratisation de l informatique apporte de nouveaux enjeux tels que la possibilité d avoir plusieurs utilisateurs sur la même machine. Il s agit également de l arrivée des interfaces graphiques On commence à voir apparaitre des systèmes d exploitation là où on ne se attendait pas à les voir. Désormais il n est pas rare que nos téléphones portables voire même nos téléviseurs tournent sur ce qui a tout d un système d exploitation. Dans les années à venir les systèmes d exploitation tels que nous les connaissons seront surement amenés à changer. Les services tels que le mail et la bureautique migrant de plus en plus vers Internet, il est probable que nous rencontrions bientôt des systèmes d exploitation minimalistes à l instar de ChromeOS, conçus pour s appuyer sur cette tendance dite du Cloud Computing. État de l art associé au projet tuteuré Page 3
4 2 Noyaux de systèmes d exploitations 2.1 Introduction La plupart des systèmes d exploitation respectent une organisation en couches. Chaque couche apporte un niveau d abstraction supplémentaire sur lequel la couche suivante peut s appuyer [2]. Dans l ensemble on identifie (de la couche d abstraction la plus élevée jusqu au matériel lui-même) : L espace utilisateur (user space) : il s agit du niveau dans lequel s exécutent les applications, si le système d exploitation offre une interface de communication avec l utilisateur (qu elle soit graphique ou non) elle s exécute à ce niveau. Cette interface est appelée le Shell. L espace noyau (kernel space) : il s agit du niveau dans lequel s exécutent les composants du système d exploitation (le noyau), ce niveau peut être lui aussi découpé en couches, l organisation de ces couches dépend du type de noyau. Les applications qui tournent dans l espace noyau n ont aucune restriction et il est donc important de tester de manière intensive ces applications pour ne pas compromettre la stabilité du système tout entier. Le matériel : il ne fait pas parti du système d exploitation, le noyau est responsable de fournir une couche d abstraction pour celui-ci, grâce aux pilotes. Chaque différent type de noyau définit où les différentes fonctionnalités du système d exploitation doivent se trouver (dualité entre espace noyau et espace utilisateur). 2.2 Types de noyaux existants Noyaux monolithiques non modulaires Dans un noyau monolithique, les fonctions du système et les pilotes sont regroupés dans le kernel space généré à la compilation. L avantage d avoir les drivers dans le noyau est de limiter le nombre d appels système qui sont lents. Les inconvénients sont un kernel énorme et donc difficile à maintenir. De plus, il faut charger un noyau avec tous les drivers même ceux qui ne sont que rarement utilisés. Un autre problème des noyaux monolithiques est la sécurité et la stabilité du système : une erreur dans un module met en danger la stabilité de tout le système. Exemples : MS-DOS et Linux avant la version Noyaux monolithiques modulaires Pour palier le problème de noyau trop gros, seules les fonctions fondamentales du noyau sont gardés dans un bloc monolithique. Les pilotes de périphériques sont séparés sous la forme de module qui pourront être chargés à chaud. Le problème de stabilité n est pas résolu par les modules puisqu ils sont toujours dans le kernel space contrairement aux Micro-Noyaux. Exemples : Linux et BSD Micro-Noyaux Pour obtenir un noyau plus facilement maintenable mais aussi beaucoup plus stable, les micro-noyaux déplacent la plupart des fonctionnalités dans l user-space. Ces fonctionnalités sont alors regroupés sous forme de petits serveurs indépendants. La section 2.3 expose plus en détails les différents aspects des micro-noyaux. Exemples : Le noyau L4 (utilisé par Hurd depuis 2004) et Singularity (projet expérimental de Microsoft). État de l art associé au projet tuteuré Page 4
5 2.2.4 Noyaux hybrides Les noyaux hybrides combinent les avantages des noyaux monolithiques et des micro-noyaux. En effet, la première génération de micro-noyaux était certes intéressant mais avait pour défaut d être beaucoup trop lente à cause des nombreux appels systèmes. L idée des noyaux hybrides est donc de prendre les avantages et l idée de base des micro-noyaux mais de faire revenir dans le kernel certaines fonctions non essentielles mais gourmandes en appels système. Exemples : Les noyaux de la famille Windows NT (2000, XP, Vista, 7) Exo-noyaux Un Exo-noyau reprend l idée d un micro-noyau mais en la poussant un peu plus à l extrême. La théorie part du principe que le noyau qui est placé entre la couche hardware et l user-space va trop ralentir la machine (notamment à cause des nombreux appels systèmes, des changements de contexte). L idée des exo-noyaux est donc d avoir un noyau vraiment minimaliste laissant les applications accéder aux ressources hardware directement en leur offrant seulement une protection lors de ces accès. Chaque application pourrait lier une bibliothèque de type libos qui gérerait par exemple les fichiers, les ipc, la communication réseau, etc. Ces bibliothèques remplaceraient les différentes fonctionnalités offertes généralement par le noyau. 2.3 Les micro-noyaux Un micro-noyau n implémente que des mécanismes basiques comme la gestion de la mémoire virtuelle, un ordonnanceur et la communication inter-processus. Tous les mécanismes plus évolués (tel que la gestion des systèmes de fichiers, les drivers, accès au réseau...) sont séparés dans différents serveurs (assimilable aux daemons UNIX) et sont exécutés dans l espace utilisateur. Dans un telle configuration, on voit bien que la gestion de la communication entre les processus va être primordial. En effet, toutes les actions qui habituellement nécessitent un appel système va maintenant nécessiter le dialogue avec le serveur responsable de l action que le processus désire accomplir. Prenons l exemple de l écriture sur le disque dur : il va donc falloir communiquer avec le serveur capable d écrire sur le disque dur, tout ceci en réalisant de nombreux appels systèmes pour la communication inter-processus. Il est donc très important de veiller à obtenir de très bonnes performances pour les IPC [3]. Avantages Stabilité : un maximum de services tournent en user space et bénéficient de la protection de la mémoire [4]. Sécurité : Limitation des accès matériels. Simplicité : Faible dépendance entre les modules, protection mémoire. Portabilité : Grace à une meilleure séparation des modules et un nombre de ligne réduit. (Minix, un microkernel écrit par Tanenbaum possède seulement 5000 lignes de codes). Inconvénients Lent : nombreux appels système couteux en temps. Contestation de la simplicité : définition de nombreuses API [5]. État de l art associé au projet tuteuré Page 5
6 3 Les différents éléments qui constituent un micro-noyau 3.1 Ordonnanceur Rôle d un ordonnanceur et principales caractéristiques Le rôle de l ordonnanceur dans un système d exploitation multi-tâche est de choisir le processus à exécuter sur le ou les processeurs de l ordinateur. Il existe de nombreuses stratégies différentes pour ordonnancer les processus et le choix d un algorithme d ordonnancement va avoir un grand impact sur le comportement du système en terme de performances et de réactivité. Ce choix peut varier en fonction des contraintes que nous imposons à notre système, ainsi, par exemple, un système temps réel impose des contraintes supplémentaires sur les temps d exécution alors que pour un système d exploitation grand public, on souhaite avant tout un système réactif. Dans cette partie, nous allons étudier différents algorithmes en mettant en avant leurs qualités et leurs défauts. Avant de lister ces algorithmes, il est important de lister les critères d évaluation d un ordonnanceur : Utilisation du processeur au maximum Capacité de traitement : quantité de processus terminés par unité de temps Temps de restitution : temps entre la soumission d un job et date de terminaison Temps d attente : somme des temps d attente des processus Temps de réponse : temps entre la soumission d une requête et la réponse Nous verrons que certains algorithmes sont dit à temps partagé, cela signifie que plusieurs processus peuvent être exécutés en même temps par alternance afin d éviter qu un processus très long puisse bloquer les autres processus. Pour cela, l ordonnanceur va arrêter l exécution d un processus pour en relancer un autre et ainsi de suite. Cela a pour conséquence d apporter une sensation de réactivité au système mais de perdre en performance brut à cause de ces changements de contexte. Ce temps perdu est appelé overhead. Parmi les ordonnanceurs à temps partagés, on peut faire la distinction entre ceux qui sont préemptifs et ceux qui ne le sont pas. Un ordonnanceur préemptif est un ordonnanceur capable d interrompre l exécution d un processus pour placer sur le processeur un processus prioritaire. Dans ce dernier cas, il faut veiller à ne pas créer de famines, c est à dire des processus à qui on ne donne jamais de temps d exécution car ils ne sont pas assez prioritaires Algorithmes FIFO / FCFS L algorithme FIFO (First In First Out) ou FCFS (First Come First Served) est l un des algorithmes les plus simple qu il soit. L idée est d ajouter chaque processus dans une file et d exécuter chaque processus par ordre d arrivée. Avantages : Minimisation de l overhead dû aux changements de contextes. Très simple à implémenter. Inconvénients : Problème du temps partagé avec les gros processus. Pas de priorités. Shortest job first (SJF) / Plus court d abord L algorithme SJF ressemble au FIFO mais au lieu d exécuter les processus par ordre d arrivée, on choisi d exécuter celui qui sera le plus court. Mais le problème est de déterminer le temps d exécution d un processus avant de l exécuter et pour cela il faut se baser sur une estimation. Avantages : On favorise les processus courts ce qui augmente le débit de processus traités et donc la réactivité Faible overhead État de l art associé au projet tuteuré Page 6
7 Inconvénients : Problème du temps partagé si un gros processus trouvé l opportunité de se lancer. Risques de famine (un processus trop long pourrait ne jamais être exécuté s il y a toujours un plus court) Pour réduire le problème de temps partagé avec de gros processus, il existe une variante appelée Shortest remaining time qui apporte la notion de préemption. Ainsi, si un processus très long est lancé à un moment, il ne pourra pas bloquer l arrivée de nouveaux processus rapides d exécution. Augmentant ainsi la réactivité du système mais en augmentant l overhead en particulier s il y a beaucoup de création de processus. Earliest deadline first scheduling (EDF) Dans le même ordre d idée, on peut décider d exécuter en premier le processus qui nécessite d être fini le plus rapidement. Cet algorithme est utilisé pour les systèmes temps réel. C est un ordonnancement préemptif avec priorité dynamique : le processus le plus prioritaire est celui dont la date de fin et la plus proche. C est à dire que plus le travail doit être réalisé rapidement, plus il est prioritaire. Cependant, il est assez complexe à mettre en œuvre et il se comporte mal en cas de surcharge du système ce qui fait qu il est finalement peu utilisé [6]. L algorithme Brain Fuck Scheduler (BFS) qui est disponible sous Linux et qui a fait parler de lui en 2009 pour ses performances parfois meilleures que l ordonnanceur par défaut (CFS) est en partie basé sur une estimation de la date de fin. Round-Robin / Tourniquet L algorithme Round-Robin est très intéressant dans la mesure où il est à la base de plusieurs algorithmes plus sophistiqués. C est un système à temps partagé et bien qu il ne soit pas préemptif, certains algorithmes ont rajouté la notion de priorité au Round-Robin et l ont rendu préemptif. L idée générale est la suivante : Lorsque le processus est créé, il se met en fin de la liste. Lorsque le processus a accès au processeur, il ne peut l utiliser que pendant un certain Quantum de temps q. À l expiration de ce quantum de temps, ou s il a fini avant (ou s il est bloqué en entrée/sortie), il laisse automatiquement sa place pour le processus suivant. S il y a n processus dans la file d attente avant la création, on sait que le processus aura accès au processeur dans moins de n q. Le choix du quantum q va permettre de choisir le comportement de notre système. En effet, si q = 4 ms et si changer de processus prend 1 ms, on perd 20% du temps en changement de contexte! En pratique, le choix du quantum se fait entre 10 et 100ms. Pour résumer : Un quantum trop court implique beaucoup de changements de contexte (overhead), Un quantum trop long fait tendre le système vers un algorithme de type FIFO (FIFO si q est supérieur au temps d exécution des processus). Fixed priority pre-emptive scheduling Les concepts utilisés par cet algorithme sont : Chaque processus possède une priorité fixe. L ordonnanceur exécute toujours le processus de plus haute priorité et peut interrompre l exécution d un processus pour accepter un processus de plus haute priorité (préemption). De manière optionnelle, l ordonnanceur peut interrompre l exécution d un processus au bout d un certain temps pour éviter qu un processus s accapare tout le CPU. Ce type d algorithme est utilisé dans les systèmes temps réel mais son principal inconvénient est le risque de famine. Une solution à ce problème serait d augmenter la priorité d un processus avec le temps (vieillissement) mais ce ne serait alors plus le même ordonnanceur! État de l art associé au projet tuteuré Page 7
8 Files multi-niveaux à retour / Multilevel feedback queue Un ordonnanceur de type files multi-niveaux à retour est un ordonnanceur qui va faire tourner en temps partagé plusieurs ordonnanceurs différents. Pour mieux comprendre le principe commençons par le cas le plus simple d un système à deux niveaux : On classe les processus en 2 catégories : premier plan (interactif, court) arrière plan (calculs longs) Chaque catégorie possède sa file avec un ordonnancement différent : premier plan : Round Robin arrière plan : FIFO Puis nous allons ordonnancer ces deux files par tranches de temps : Nous allons par exemple donner 80% du temps à la file en arrière plan et 20% du temps à la file au premier plan. Si un processus au premier plan semble être trop long, il peut être changé de file. Ce choix de tranches de temps au lieu d un système basé sur des priorités est fait pour éviter les risques de famines. En effet, s il y a toujours un processus interactif à exécuter, les processus en arrière plan ne seraient jamais exécutés. Il est tout à fait possible d étendre le système à n files : Ainsi, de manière générale un ordonnanceur de files multi-niveaux à retour est défini selon les paramètres suivants : Nombre de files Politique d ordonnancement pour chaque file Méthode déterminant la promotion d un processus vers une file d attente plus prioritaire Méthode déterminant la destitution d un processus dans une file moins prioritaire Méthode déterminant dans quelle file placer un nouveau processus On peut alors avoir une file avec les processus qui ont besoin d un très bon temps de réponse avec un quantum faible, une file pour les processus classiques avec un quantum moyen, ainsi qu une file pour les taches de fond avec un quantum très grand ou encore en FIFO. Et nous pourrions choisir comme politique de changement de file : On place le nouveau processus dans la file la plus réactive et prioritaire et si à la fin du quantum le processus n est pas terminé, on le déplace dans la file moins prioritaire, etc. Enfin, si le processus passe à l état bloqué (attente d une entrée-sortie par exemple), il est alors promu à la file plus prioritaire. Autres Ordonnanceurs Lottery scheduling : on donne un certain nombre de tickets de loterie aux processus en fonction de leur priorité puis on tire au hasard un ticket pour élire le processus qui pourra utiliser le CPU. Il n y a théoriquement pas de risque de famine car la probabilité de tirer un ticket n est jamais nulle. Rate-Monotonic Scheduling : Il attribue la priorité la plus forte à la tâche qui possède la plus petite période. C est destiné aux systèmes temps réel et c est utilisé dans RTEMS. Swappable Schedulers : L idée serait d avoir un ordonnanceur par utilisateur comme ça on peut fournir la possibilité à l utilisateur de choisir son scheduler en fonction de ce qu il veut faire. L utilisateur root utiliserait toujours du round robin. O(1) scheduler : Ordonnanceur utilisé dans les noyaux linux de la version à la version Ordonnancement à temps constant (Gigue nulle). Repose sur un sytème de priorité dynamique calculée à partir du temps passé en attente [7]. Completely Fair Scheduler (CFS) : Ordonnanceur utilisé par le noyau Linux depuis la version L ordonnanceur choisi le processus qui manque de temps d allocation au processus comparé au cas du multi-tâche idéal (ie. chaque processus est lancé en parallèle des autres et à la même vitesse.) ULE scheduler : Ordonnanceur utilisé par FreeBSD 8.0. Optimisé pour gérer au mieux les architectures à plusieurs processeurs [8]. État de l art associé au projet tuteuré Page 8
9 3.1.3 Vocabulaire Préemption : la préemption est la capacité d un système d exploitation multi-tâche à exécuter ou stopper une tâche planifiée en cours en faveur d une tâche de priorité supérieure. (meilleure réactivité) Famine : Les processus de plus basse priorité ne peuvent jamais s exécuter. (Solution classique : augmenter la priorité avec le temps : vieillissement) Overhead / Surcoût : Temps supplémentaire nécessaire au mécanisme utilisé. Ex : commutation de contexte pour changer de tâche active. Jitter / Gigue : dans le cas d un ordonnanceur, cela représente les variations du temps d ordonnancement en fonction du nombre de processus à traiter. 3.2 Communication Inter-Processus (IPC) La communication inter-processus regroupe un ensemble de mécanismes essentiels à un système d exploitation multi-tâche. Ces mécanismes peuvent permettre la communication et la synchronisation entre plusieurs processus concurrents du système. La communication inter-processus est un aspect qui doit être étudié avec précaution sur un système à micronoyau car c est un mécanisme qui devient fondamental pour assurer la communication entres les différents services. La communication est donc un facteur limitant à la performance du micro-noyau. Nous allons donc détailler les différents mécanismes de communication et de synchronisation et nous attacher à présenter les différents avantages et inconvénient de chacun. Ces mécanismes sont complémentaires et il convient de choisir celui qui correspond le mieux aux besoins de l application Fichier Une première solution pour partager des données entre processus est de le faire à travers un fichier. Il faut cependant généralement le coupler avec un autre mécanisme pour la synchronisation. Avantages Simple Possibilité de stocker beaucoup d informations (stockage sur disque dur) Inconvénient Lent Signaux Il s agit d une méthode de notification asynchrone. Il s agit donc d un simple envoi de signal. Un mécanisme de type handler doit être implémenté par le processus receveur de signaux pour traiter ceux-ci. Un processus peut aussi choisir d ignorer le signal. Un signal peut interrompre n importe qu elle action (non atomique), même un appel système. Il peut donc résulter certaines erreurs en cas de non synchronisation entre les actions de l handler et celles du processus luimême. Avantages Très rapide Inconvénient Peu d informations véhiculées État de l art associé au projet tuteuré Page 9
10 3.2.3 Socket Il s agit d un système permettant la création d un canal de communication entre 2 processus de différent type : Stream : habituellement asymétrique (Client/Serveur) mais communication bidirectionnelle sous forme de flux de données. Une connexion doit être établie au préalable. Une fragmentation possible des paquets transmis. Exemple : TCP Datagram : ne demande pas qu une connexion soit établie au préalable. Déséquencement et perte de paquet possible. Sequenced : même chose que stream mais sans fragmentation raw : envoie des paquet directement au niveau liaison en évitant l encapsulation des protocoles applicatifs du système d exploitation. Avantages Polyvalent Inconvénient Lent Message queue Utilisation d une file de message pour communiquer entre processus ou threads. Chaque message est associé à un type et une taille explicite. Lors de la récupération d un message dans la file, on peut choisir le type de message que l on veut. Les fonctions de lectures peuvent être bloquantes ou non bloquantes. Avantages Sélection du type de message à lire Sémaphore Un sémaphore permet de protéger l accès aux ressources critiques. 2 méthodes : P(s) / Wait(s) : mise en attente d un jeton V(s) / Signal(s) : rendre un jeton Un Sémaphore peut-être initialisé avec plusieurs jetons et peut permettre de résoudre certains problèmes, typiquement celui du dîner des philosophes mais aussi celui des lecteurs/rédacteurs Mémoire partagé Il s agit d une zone mémoire partagé entre plusieurs processus. Elle permet d éviter la redondance d informations. Avantages Accès très rapide à une donnée partageable entre plusieurs processus Inconvénient demande une synchronisation externe pour l accès à une mémoire partagée (ce qui ralentit le mécanisme) Message passing Il s agit d un système très simple de communication. Un processus (p1) envoie un message à une autre processus (p2) et attend (fonction bloquante) la réception de ce message par p2, puis p1 attend la réponse de p2. C est une méthode d implémentation d un protocole de communication, utilisé par exemple par SOAP. État de l art associé au projet tuteuré Page 10
11 3.3 Mémoire Dans un ordinateur, il existe différents types de mémoire. Idéalement il n y aurait qu un seul type de mémoire qui serait rapide, peu onéreux, peu encombrant et possédant une grande capacité de stockage (non volatile). Malheureusement on constate que les mémoires les plus rapides ne sont pas persistantes et que plus elles sont rapides et plus elles sont chères [9]. Type de mémoire Taille typique Vitesse typique Registres 256 octets 0.5 ns Cache L1 16 Kio 1 ns Cache L2 2 Mio 2 ns Mémoire centrale 2 Gio 10 ns Disque dur 300 Gio 10 ms Tab. 1 Vitesses typiques des différents types de mémoire. En simplifiant quelques peu, cette mémoire est hiérarchisée de telle sorte que la couche de mémoire plus rapide sert de mémoire cache à la mémoire plus lente (Tab. 1). Le système d exploitation s occupe de gérer la gestion mémoire centrale et le disque dur, généralement à travers des mécanismes de mémoire virtuelle. Nous nous intéressons donc ici à la gestion de la mémoire centrale par le système d exploitation. Pour cela nous allons expliquer les différents concepts mis en place. Certains termes sont explicités en fin de partie Unité de gestion de mémoire L unité de gestion de mémoire (ou MMU de Memory Management Unit) est un composant physique de l architecture d un ordinateur. Autrefois séparée du processeur, elle est désormais intégrée. Son rôle principal consiste à faire de la translation d adresse, c est-à-dire gérer la segmentation et la pagination pour traduire une adresse virtuelle en adresse linéaire physique. La MMU remplit également un rôle important dans la sécurisation d un système d exploitation, car elle est en mesure de lever des exceptions en cas d accès non autorisés à la mémoire (menant à une erreur de segmentation par exemple) Mémoire segmentée Un segment est un espace de la mémoire continue définit par l adresse du début et sa longueur. L adresse logique 0 représente la base du segment. Chaque segment est décrit par un descripteur de segment (structure à 8 octets) et est utilisé avec le sélecteur de segment pour permettre la traduction de l adresse. Le descripteur de segment contient toutes les informations nécessaires pour la traduction d adresse et le sélecteur de segment permet de récupérer le descripteur dans la table GDT 1 ou LDT. La protection de la mémoire est assurée par le flag DPL du descripteur (et le Request Privilege Level du sélecteur), chaque segment a un niveau de 0 à 3. Chaque processus dispose de sa table de descripteurs afin de savoir quels sont les zones mémoires autorisées en lecture ou écriture et ainsi interdire à un processus d écrire sur la mémoire d un autre. Les segments se chevauchent car l adresse de base du segment est codé sur 16 bits tandis que sa longueur peut aller jusqu à 32 bits. Une zone mémoire peut être adressé par plusieurs couples segment/offset. Le problème principal de la mémoire segmentée est la fragmentation externe : il est difficile de trouver un espace mémoire pour loger un segment tout en limitant les espaces non utilisables, car trop petits, entre les segments. Réordonner les segments pour réduire la fragmentation est une opération coûteuse Mémoire paginée Les pages sont des segments de petite taille ayant la particularité d être de taille fixe. Elles sont accompagnées d un mécanisme permettant un adresse linéaire. La pagination sert à palier les insuffisances de la segmentation, c est à dire : 1 Global Descriptor Table (GDT) : structure de données utilisées dans l architecture x86 pour référencer les descripteurs de segment. État de l art associé au projet tuteuré Page 11
12 la faible granularité (si la mémoire d un programme est mise sur un unique segment), le risque de fragmentation, le manque de transparence pour les langages de haut niveau. La mémoire physique est découpée en cadres de page qui pourront accueillir des pages. Les cadres ont bien entendu la même taille et dans le cas le plus fréquent, les cadres de page et les pages ont une taille de 4 Kio (cas des processeurs x86). Nous nous placerons dans ce cas pour la suite des explications tout en gardant en tête que cette taille n est pas imposée et qu il est tout à fait possible de trouver d autres tailles de page. Nous ferons aussi l hypothèse que les adresses mémoires son codées sur 32 bits. La distinction entre pages et cadres de page permet de mettre en place un mécanisme de mémoire virtuelle qui sera expliqué par la suite. Il peut en effet il y avoir plus de pages que de cadres de page. Chaque processus dispose d un espace d adresse de 4 Gio soit 1024 * 1024 pages. L association entre pages et cadres de page sera assurée par l unité de pagination (MMU). Si chaque processus devait posséder une table de l ensemble des pages (a priori un tableau de plus d un million d entrées en grande partie vide) cela consommerait énormément de place en mémoire. Pour le prouver il suffit d imaginer un système avec 150 processus (nombre raisonnable pour un station de travail) : Chaque processus contient une table contenant pages. Chaque page étant définie par une adresse de 32 bits (4 octets), cela nous donne une table de 4 Mio. Soit au total 600 Mio pour l ensemble des tables de 150 processus. Pour palier ce problème, une structure à deux niveaux est mise en place. On dispose donc de : Un tableau de 1024 adresses, de niveau 1, nommé catalogue de pages, 1 à 1024 tableaux de 1024 adresses, de niveau 2, nommé table de pages. Chacun de ces tableaux tient dans un cadre de page (1024*32 bits = 4 Kio). Une adresse n est donc plus définie par un numéro de page et d un décalage à l intérieur de cette page mais est définie comme ceci : les 10 bits de poids fort de l adresse désignent une entrée du tableau de niveau 1 contenant l adresse d une table de pages, les 10 bits suivants de l adresse désignent une entrée de cette table de pages. Cette entrée donne l adresse physique de la frame associée à la page, les 12 bits de poids faible donnent le déplacement dans la page. Dans les tables de pages, les entrées font 32 bits mais seuls 20 bits sont nécessaires puisque ce sont des adresses de cadre de page or il n y a que 2 20 pages. Les 12 bits restant servent donc à placer divers indicateurs, notamment le bit de présence. En cas d accès à une page dont le bit de présence est éteint une exception de type défaut de page est levée. Ceci peut être du à : une page n ayant pas de cadre de page car stockée ailleurs (cf mémoire virtuelle) une page non allouée par le programme. Concernant les problèmes de fragmentation, la pagination remplace la fragmentation externe par une fragmentation interne (page non complète). Au final il est cependant préférable d utiliser le mécanisme de pagination. Il est aussi possible de combiner segmentation et pagination pour obtenir une mémoire paginée segmentée. Le principe repose sur une mémoire découpée en segments mais possédant un redécoupage en pages Mémoire virtuelle paginée Comme nous venons de le voir, il peut il y avoir plus de pages que de cadres de page. Pour rappel, les cadres de page constituent un découpage de la mémoire physique ce qui signifie que l on va pouvoir utiliser d autres supports pour mémoriser des informations et donc étendre la taille de la mémoire. La possibilité d utiliser le disque dur comme zone mémoire est appelée swap. Il faut bien garder en tête que le disque dur est environ 1000 fois plus lent que la mémoire vive et qu il faut donc limiter ses accès ce qui amène donc à une réflexion autour des algorithmes à mettre en place. Le principe de la mémoire virtuelle paginée est le suivant : État de l art associé au projet tuteuré Page 12
13 La mémoire virtuelle est découpée en pages de taille fixe La mémoire physique est découpée en cadres de page de la même taille Lors d un accès mémoire, le système d exploitation demande à la MMU de traduire l adresse virtuelle en adresse physique. Soit la MMU y arrive et dans ce cas la donnée est disponible sur le bus de donnée. Soit la MMU lève une exception qui doit être traitée par l OS : Le système d exploitation va voir si l adresse pointe vers une zone mémoire appartenant à la mémoire virtuelle tel que le swap. S il ne trouve pas, il lève une erreur (segfault). S il trouve, il va essayer de déplacer l information dans la mémoire physique ( demande paging ). S il n y a plus de place dans la mémoire physique il va ce qu on appelle swaper : il va déplacer des informations jugées moins souvent utilisées dans le swap pour faire de la place dans la mémoire physique (l algorithme qui va choisir la zone mémoire à swaper va induire des différences de performance sur le système). Remarque : Il existe aussi la mémoire virtuelle segmentée qui repose sur le même principe que la mémoire virtuelle paginée. Cependant ce mécanisme est contraignant car les segments représentent de grandes zones mémoires contigües difficiles à remplacer Algorithmes de pagination Le but des algorithmes de pagination est de gérer la mémoire de manière à accéder aux données le plus vite possible. En effet lorsqu un système utilise la mémoire virtuelle, il faut limiter au maximum les lectures et écritures sur le disque dur qui est très lent. Choisir quelles pages garder dans la mémoire vive et quelles pages déplacer vers le swap pour faire de la place est un exercice difficile car il n est pas évident de prévoir quelles données les programmes vont avoir besoin à l avenir. Ce choix repose sur l une des stratégies présentées : FIFO : La page déplacée vers le swap correspond à la page amené en mémoire il y a le plus longtemps. Cet algorithme n est pas efficace mais présente l intérêt d être extrêmement simple. Son implémentation repose sur une file (structure FIFO). Seconde chance : Une variante de FIFO est l algorithme de la seconde chance : si la page est la plus ancienne mais qu elle a été accédée alors on la repositionne au début de la file après l avoir démarquée. Si la page la plus ancienne n a pas été accédée alors elle est choisie. Autres noms de cette stratégie : FINUFO et Algorithme de l Horloge (Clock). LFU (Least Frequently Used) : La page choisie par cette stratégie est celle qui a été la moins accédée. À chaque accès à une page, un compteur propre à cette page est incrémenté. Pour choisir la page, il faut parcourir l ensemble des compteurs. Mais une zone mémoire qui aurait été utilisée de manière intensive à un certain moment ne sera pas choisie. De plus il faut gérer de nombreux compteurs qui risqueraient de dépasser leur capacité. LRU (Least Recently Used) : Cet algorithme va choisir la page qui a été accédée il y a le plus longtemps. Pour cela, l algorithme utilise une liste contenant les pages ordonnées par date d accès : à chaque utilisation d une page, celle-ci est remontée en haut de la liste. NRU (Not Recently Used) : L algorithme élimine les pages n ayant pas été utilisées recemment Pour cela il utilise le bit R des pages, ce bit est regulierement remis à 0 et passe à 1 lorsqu une page est utilisée. Lorsque l algorithme doit eliminer une page il en choisi si possible une ayant le bit à 0. On peut l ameliorer en utilisant 4 etats au lieu de 2 1. Non référencées, non modifiées. 2. Non référencées, modifiées. État de l art associé au projet tuteuré Page 13
14 3. Référencées, non modifiées. 4. Référencées, modifiées. On choisira alors d écarter en priorité les pages dans l etat 1 puis 2 puis 3... Cet algorithme est relativement efficace mais necessite de modifier souvent l etat des bits ce qui peut être couteux. Aléatoire : Enfin, il est tout à fait possible de choisir la page aléatoirement. Mais comme on peut s en douter, ce n est pas une stratégie très efficace Protection de la mémoire Protection de la mémoire par la MMU Il existe plusieurs façons de gérer la segmentation : Basic Flat Model, Protected Flat Model et Multi-Segment Model. La dernière offre une meilleure protection : Chaque processus possède sa table de descripteur de segments et ses propres segments (certains peuvent être partagés entre processus). Ainsi, il n est pas possible pour un processus d accéder à une zone mémoire en dehors d un de ses segments, la MMU ne fera pas la traduction! Cependant, la pagination étant souvent utilisée et proposant un mécanisme de protection similaire, il n est pas forcément nécessaire de mettre en place un mécanisme complexe pour gérer la segmentation. Ainsi, c est le Basic Flat Model qui est le plus souvent utilisé. Autres protections L architecture Intel propose plusieurs solution en hardware pour protéger la mémoire. Au delà des interruptions proposées par la MMU, il est aussi possible sur certaines architecture x86 de mettre en place le NX-bit (No execution bit, ou XD-bit chez Intel, execution Disabled) qui permet d interdire l exécution de certaines zones mémoire. Cela amène à une version plus sécurisé de la machine de von Neumann, puisque données et code sont stockés au même endroit mais ne peuvent pas être traités de la même manière Vocabulaire Adresse logique : Une adresse logique consiste en un sélecteur de segment et un offset. Le sélecteur de segment est un identifiant unique pour un segment. Ce sélecteur de segment fourni entre autre un indice dans la table de description (GDT par ex) pour indiquer une structure appelée descripteur de segment. Descripteur de segment : Chaque segment possède un descripteur de segment qui contient la taille, les droits d accès et privilèges, le type de segment et l emplacement du premier bit dans l adresse linéaire. Adresse linéaire : L adresse linéaire est identique à l adresse physique lorsque la pagination est désactivée. Sinon il y a un système de pagination (mémoire virtuelle) qui s occupe de fournir la donnée souhaitée. 3.4 Pilotes Les pilotes (drivers) servent d interface logicielle pour que les programmes du plus haut niveau puissent communiquer avec le matériel. Les pilotes fournissent également les routines de gestion des interruptions matériel. Ils peuvent être exécuté en user space ou en kernel space. Chaque mode a ses avantages et ses inconvénients. En kernel space, un pilote sera plus rapide, ceci est particulièrement nécessaire pour du matériel nécessitant une forte bande passante et/ou une faible latence. En user space, un pilote apportera par contre de la stabilité en évitant de planter tout le système s il provoque une erreur. 3.5 Système de fichiers Un système de fichier est un schéma d organisation des données/fichiers (généralement sur une mémoire secondaire). Il permet notamment à l utilisateur de faire abstraction du fait que la mémoire n est qu un grand tableau en structurant les données (grâce aux fichiers, concept bien plus simple). État de l art associé au projet tuteuré Page 14
15 Un système de fichier se démarque par son organisation, la plupart des systèmes de fichiers sont hiérarchisés mais il en existe des plats, sans notions de dossiers. L identification d un fichier se fait la plupart du temps à partir de son nom (et de son chemin dans le cas des systèmes hiérarchisés). Il peut exister une limite de taille à la chaine de caractères qui stocke le nom du fichier (cf, la fameuse limite 8.3 des premiers FAT). Les systèmes de fichiers gèrent également diverses informations supplémentaires (méta-data) sur les fichiers, tel que les dates de modifications, les droits sur le fichier, l auteur, etc... On identifie différents types de systèmes de fichiers qui se différencient en fonction du support sur lequel ils vont être utilisés. Par exemple les systèmes de fichiers pour disques durs mécaniques (exemples : ext, FAT, NTFS) ont une architecture qui permettent de minimiser les déplacements des têtes de lectures. Ces architectures perdent tous leurs intérêts dès lors qu elles sont utilisées sur des disques SSD. Il existe donc des systèmes de fichiers pour SSD (exemple : YAFFS, LogFS). État de l art associé au projet tuteuré Page 15
16 4 Conclusion Un système d exploitation repose sur un ensemble de mécanismes pouvant être complexes et dont il faut faire le choix dès la conception. Ces mécanismes doivent alors ensuite être assemblés pour former un système fonctionnel. Nous avons décidé de nous orienter vers un système reposant sur un micro-noyau. En effet, les micro-noyaux sont plus jeunes et très prometteurs. La réalisation d un noyau monolithique nous parait moins enrichissante car c est quelque chose de très répandu et donc peu original. Nous visons à faire un système multi-tâche et pour cela nous avons besoin d un ordonnanceur. Parmi les différents algorithmes présentés, l algorithme de Files Multi-niveaux à Retour nous semble intéressant. Cependant nous commencerons par des algorithmes plus simples à implémenter tels que le FCFS et le Round-Robin qui sont de toute façon utilisés par les Files Multi-niveaux à Retour. La mémoire sera paginée sur deux niveaux tel que présenté dans ce document et si nous décidons d implémenter une mémoire virtuelle, elle sera également basée sur la pagination. Nous pensons implémenter le système de fichier FAT32 pour sa simplicité mais aussi parce que c est le système de fichier le plus répandu. Enfin, afin de tester notre système d exploitation il nous faudra également prévoir le développement certaines applications basiques ce qui implique de pouvoir charger des programmes qui ne sont pas intégrés au système d exploitation. Nous n avons pas déterminé précisément quels seraient ces logiciels mais nous pourrions par exemple développer une horloge, un éditeur de texte très basique ou encore de petits jeux. État de l art associé au projet tuteuré Page 16
17 5 Bibliographie Références [1] Tim Bergin. History of Operating Systems. [en ligne]. (modifié le 5 mars 2001). Disponible sur < system_moumina.pdf>. [2] Thom Holwerda. Kernel designs explained. [en ligne]. (modifié en mars 2007). Disponible sur < osnews.com/files/17537/kernel_designs_explained.pdf>. [3] Jochen Liedtke. Improving IPC by Kernel Design. [en ligne]. asheville : German national research center for computer science (gmd), Disponible sur < [4] Andy Tanenbaum. Tanenbaum-Torvalds Debate : Part II. [en ligne]. (modifié le 12 mai 2006). Disponible sur < [5] Linus Torvalds. Re : LINUX is obsolete. [en ligne] Disponible sur < opensources/book/appa.html>. [6] Sanjoy K. Baruah and Jayant R. Haritsa. Scheduling for Overload in Real-Time Systems. [en ligne]. septembre Disponible sur < [7] Josh Aas. Understanding the Linux CPU Scheduler. [en ligne]. silicon graphics, inc. février Disponible sur < [8] Jeff Roberson. ULE : A Modern Scheduler For FreeBSD. [en ligne]. Disponible sur < org/event/bsdcon03/tech/full_papers/roberson/roberson.pdf>. [9] Gaël Le Mignot. Système d exploitation : Gestion de la mémoire. [en ligne]. lieu d édition : Insia srt, 2007, 17p. Disponible sur : < cours-de-systemes-dexploitation-ing2-srt/memory.pdf>. État de l art associé au projet tuteuré Page 17
DAns un système multi-utilisateurs à temps partagé, plusieurs processus
Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailPartie 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étailREALISATION 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étailGestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr
Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération
Plus en détailSystèmes d Exploitation - ENSIN6U3. Aix-Marseille Université
Systèmes d Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté des Sciences
Plus en détailNe 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étailCH.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étailIntroduction aux Systèmes et aux Réseaux, Master 2 CCI
aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -
Plus en détailCours A7 : Temps Réel
Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailKoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel
KoinKoin Système d exploitation à architecture basée micro-noyau Antoine Castaing Nicolas Clermont Damien Laniel 30 juillet 2006 Free Documentation License Copyright (c) 2005 Nicolas Clermont / Antoine
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailExé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étailJulien 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étailIV- 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étailMODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ
MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailOrdonnancement temps réel
Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches
Plus en détail1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Plus en détail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailWindows Server 2008. Chapitre 1: Découvrir Windows Server 2008
Windows Server 2008 Chapitre 1: Découvrir Windows Server 2008 Objectives Identifier les caractéristiques de chaque édition de Windows Server 2008 Identifier les caractéristiques généraux de Windows Server
Plus en détailCours n 12. Technologies WAN 2nd partie
Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes
Plus en détail1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)
Chapitre 4 Le système de Gestion de Fichiers 1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1 Systèmes d entrée/sortie Concepts importants : Matériel E/S
Plus en détailVirtualisation 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étailMé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étail4. 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étailRéalisation d un OS 32 bits pour PC(x86)
Rapport projet tutoré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy Nicolas Floquet Benjamin Hautbois
Plus en détailTHEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs
Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et
Plus en détailLes méthodes de sauvegarde en environnement virtuel
Les méthodes de sauvegarde en environnement virtuel Il existe plusieurs méthodes pour faire des sauvegardes dans un environnement virtuel : Méthodes traditionnelles 1) Sauvegarde avec agent dans le Guest
Plus en détailÉ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étailLA 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étailLe stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures
Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet
Plus en détailStructure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
Plus en détailSystèmes d Exploitation - ENSIN6U3. Aix-Marseille Université
Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté
Plus en détailWHITE 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étailManuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
Plus en détailLivre blanc. La sécurité de nouvelle génération pour les datacenters virtualisés
Livre blanc La sécurité de nouvelle génération pour les datacenters virtualisés Introduction Ces dernières années, la virtualisation est devenue progressivement un élément stratégique clé pour le secteur
Plus en détailArchitectures d implémentation de Click&DECiDE NSI
Architectures d implémentation de Click&DECiDE NSI de 1 à 300 millions de ligne de log par jour Dans ce document, nous allons étudier les différentes architectures à mettre en place pour Click&DECiDE NSI.
Plus en détailCloud Computing et SaaS
Cloud Computing et SaaS On a vu fleurir ces derniers temps un grands nombre de sigles. L un des premiers est SaaS, Software as a Service, sur lequel nous aurons l occasion de revenir. Mais il y en a beaucoup
Plus en détail6 - 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étailSur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
Plus en détailInstitut 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étailConcept 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étailTests de performance du matériel
3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons
Plus en détailNOTIONS 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étailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans
Plus en détailConception 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étail4D v11 SQL Release 5 (11.5) ADDENDUM
ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release
Plus en détailFAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES
FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBLITÉ CONTINUE ET MOBILITÉ DES DONNÉES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue
Plus en détailSGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre 2011. Université de Rennes I - IRISA
SGM Master S.T.S. mention informatique, première année Isabelle Puaut Université de Rennes I - IRISA Septembre 2011 Isabelle Puaut SGM 2 / 1 Organisation de l enseignement Semestre 1 : processus, synchronisation
Plus en détailTAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES
TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2
Plus en détailSystème de stockage IBM XIV Storage System Description technique
Système de stockage IBM XIV Storage System Description technique Système de stockage IBM XIV Storage System Le stockage réinventé Performance Le système IBM XIV Storage System constitue une solution de
Plus en détailPG208, Projet n 3 : Serveur HTTP évolué
PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif
Plus en détailUnix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Plus en détailVMWare 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étailLimitations of the Playstation 3 for High Performance Cluster Computing
Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire
Plus en détailInitiation au HPC - Généralités
Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours
Plus en détailWhite Paper - Livre Blanc
White Paper - Livre Blanc Développement d applications de supervision des systèmes d information Avec LoriotPro Vous disposez d un environnement informatique hétérogène et vous souhaitez à partir d une
Plus en détailGuide pour l Installation des Disques Durs SATA et la Configuration RAID
Guide pour l Installation des Disques Durs SATA et la Configuration RAID 1. Guide pour l Installation des Disques Durs SATA... 2 1.1 Installation de disques durs Série ATA (SATA)... 2 2. Guide de Configurations
Plus en détail2. 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étailDynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl
Dynamic Computing Services solution de backup White Paper Stefan Ruckstuhl Résumé pour les décideurs Contenu de ce White Paper Description de solutions de backup faciles à réaliser pour des serveurs virtuels
Plus en détailL 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étail10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service
10 tâches d administration simplifiées grâce à Windows Server 2008 R2 Faire plus avec moins. C est l obsession depuis plusieurs années de tous les administrateurs de serveurs mais cette quête prend encore
Plus en détailLa continuité de service
La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici
Plus en détailVMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.
VMware ESX/ESXi 1. Les composants d ESX VMware ESX4 est le cœur de l infrastructure vsphere 4. C est un hyperviseur, c est à dire une couche de virtualisation qui permet de faire tourner plusieurs systèmes
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailServices Réseaux - Couche Application. TODARO Cédric
Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port
Plus en détailContributions à l expérimentation sur les systèmes distribués de grande taille
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte
Plus en détailVirtualisation sous Linux L'age de raison. Daniel Veillard veillard@redhat.com
Virtualisation sous Linux L'age de raison Daniel Veillard veillard@redhat.com Solution Linux 2009 Une jungle d'acronymes Xen UML VServer VMWare VirtualBox lguest QEmu KVM VirtualIron OpenVZ LXC Définition
Plus en détailFAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters
FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBILITE CONTINUE ET MOBILITE DES DONNEES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue
Plus en détailHubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)
Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Ne rien livrer au hasard, c est économiser du travail Pont Sainte Maxence(O C est quoi USB? Comment ça marche? Les standards? La technique en détail
Plus en détailUn concept multi-centre de données traditionnel basé sur le DNS
Confiez vos activités critiques à un expert S il est crucial pour vos activités commerciales que vos serveurs soient disponibles en continu, vous devez demander à votre hébergeur de vous fournir une solution
Plus en détailEnseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing
Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Les Clusters Les Mainframes Les Terminal Services Server La virtualisation De point de vue naturelle, c est le fait de regrouper
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailPrésentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
Plus en détailLes avantages de la virtualisation sont multiples. On peut citer:
1 Les mécanismes de virtualisation ont été introduits il y a fort longtemps dans les années 60 par IBM avec leur système CP/CMS. La motivation première de la virtualisation est la possibilité d'isoler
Plus en détail<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Plus en détailPrototype de canal caché dans le DNS
Manuscrit auteur, publié dans "Colloque Francophone sur l Ingénierie des Protocoles (CFIP), Les Arcs : France (2008)" Prototype de canal caché dans le DNS Lucas Nussbaum et Olivier Richard Laboratoire
Plus en détailOutil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche
Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche Serveurs DELL PowerEdge Tour Rack standard R310 T110II Rack de calcul Lames R815 M610 R410 R910 M620 R415 R510 T620 R620 R720/R720xd
Plus en détailGestion répartie de données - 1
Gestion répartie de données - 1 Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Gestion répartie de données Plan de la présentation Introduction
Plus en détailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détailAdministration 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étailManuel Utilisateur Version 1.6 Décembre 2001
Manuel Utilisateur Version 1.6 Décembre 2001 Table des matières TABLE DES MATIERES 2 PRESENTATION 4 À PROPOS DU FORMAT PDF 4 PDFMAIL : L ASSOCIATION DU FORMAT PDF ET DE L EMAIL 4 PRINCIPE DE FONCTIONNEMENT
Plus en détailLe modèle client-serveur
Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailINTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE
I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES
Plus en détailArchitecture 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étailNouvelles stratégies et technologies de sauvegarde
Nouvelles stratégies et technologies de sauvegarde Boris Valera Laurent Blain Plan Contexte Les nouveaux enjeux de la sauvegarde La sauvegarde des machines virtuelles La déduplication Les architectures
Plus en détailWindows serveur 2008 installer hyperv
Windows serveur 2008 installer hyperv 1 Description Voici la description fournit par le site Microsoft. «Windows Server 2008 Hyper-V est le moteur de virtualisation (hyperviseur) fourni dans Windows Server
Plus en détailFiche Technique. Cisco Security Agent
Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit
Plus en détailGestion 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étailSystemes d'exploitation des ordinateurs
! " #$ % $ &' ( $ plan_ch6_m1 Systemes d'exploitation des ordinateurs Conception de Systèmes de Gestion de la Mémoire Centrale Objectifs 1. Conception de systèmes paginés 2. Conception des systèmes segmentés
Plus en détailPORTAIL DE GESTION DES SERVICES INFORMATIQUES
PORTAIL DE GESTION DES SERVICES INFORMATIQUES Principes q Portail "tout-en-un" q Destiné aux équipes en charge du SI q Basé sur les bonnes pratiques ITIL q Simple à mettre en œuvre q Disponible dans le
Plus en détailIN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :
IN SYSTEM Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL V16 Objectif : En synthèse des manuels de référence de Sage Ligne 100, ce document vous présente les préconisations,
Plus en détailEMC DATA DOMAIN OPERATING SYSTEM
EMC DATA DOMAIN OPERATING SYSTEM Au service du stockage de protection EMC AVANTAGES CLÉS Déduplication évolutive ultrarapide Jusqu à 31 To/h de débit Réduction des besoins en stockage de sauvegarde de
Plus en détailLinux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers
Linux embarqué Retour d expérience et temps réel 1 Denis Coupvent-Desgraviers Introduction Bien connaître les bases d un système d exploitation Utilisation de GNU/Linux Bonnes connaissances en langage
Plus en détailRetrouver de vieux programmes et jouer sur VirtualBox
CHAPITRE 3 Retrouver de vieux programmes et jouer sur VirtualBox Ce chapitre présente des notions avancées de VirtualBox. Elles permettront de réaliser des configurations spécifiques pour évaluer des systèmes
Plus en détail