1 École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66. Jean-Jacques Girardot

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Le Concept du programme enregistré
TECHNOLOGIE DES ORDINATEURS
Chapitre 3: Système d’exploitation
Le Concept du programme enregistré
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Jc/md/lp-01/05Boot Loader1 BOOT LOADER. jc/md/lp-01/05Boot Loader2 Objectif du chapitre Introduire la notion de Boot Loader Donner un aperçu de lorganisation.
TRANSMISSION DES DONNEES INFORMATIQUES
Systèmes d’exploitation
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
LA CARTE MERE PROJET REALISER PAR : BELGHITI ALAOUI Anas.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Informatique générale
Module 1 : Préparation de l'administration d'un serveur
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
Serveurs Partagés Oracle
Configuration de Windows Server 2008 Active Directory
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Allocation de mémoire Allocation de mémoire.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Logiciel gratuit à télécharger à cette adresse :
LES SYSTEMES AUTOMATISES
Module 4 : Maintenance des pilotes de périphériques
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Les Systèmes d’Exploitation
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
Vue d'ensemble Surveillance des journaux d'événements
Systèmes d’exploitation
Biologie – Biochimie - Chimie
Le langage C Rappel Pointeurs & Allocation de mémoire.
Introduction aux systèmes d’exploitation
Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation les exploite. Plan des systèmes d’exploitation Processus,
Cours Architecture des Systèmes Informatiques
Gérer la sécurité des mots de passe et les ressources
LES PILES ET FILES.
Réunions Lync Participer à une réunion Lync Aide-mémoire Lync 2013
Notions de pointeurs en C
Cours des Systèmes d’exploitations
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Module 8 : Surveillance des performances de SQL Server
1 Algorithmique et programmation en février - juin 2007 ORSAY.
Introduction à l’informatique en gestion 1 Plan de la leçon Compagnon office Sections et Mise en page En-têtes et pieds de page Notes de bas.
Cours de Systèmes d’exploitations
La programmation système
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Structure de stockage et relations
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Simulateur de microcontrôleur Intel 80C51
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
1.1: notions de bases de l’informatique
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot Sixième séance Système d’exploitation Cours Architecture des Systèmes Informatiques

2 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Plan  La notion de système d’exploitation  Les fonctions d’un système d’exploitation  BIOS  DOS et ses fonctions  Système multitâches  Gestion de la mémoire, vision applicative

3 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Notion de système d’exploitation  Définition générique : un programme s’exécutant sur une machine nue, et destiné à faciliter la mise en œuvre d’autres programmes sur cette machine  Exemples Moniteur d’un calculateur spécialisé, d’une calculette Système d’exploitation mono tâche, multitâches :  DOS “Disk Operating System”  UNIX, etc.

4 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Pourquoi ?  Fournir à l’utilisateur non pas un ordinateur “nu”, mais une combinaison plus puissante de logiciel et matériel  Fournir une vision “standard” / “compatible” d’outils développés indépendamment  Historiquement : optimiser l’utilisation des ressources de la machine : périphériques, mémoire, unité centrale  Aujourd’hui : simplifier le travail de l’utilisateur

5 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Caractéristiques de l’ordinateur nu  Matériel : processeur, mémoire, périphériques  Gestion de ces éléments ? Un périphérique tel qu’un disque est extrêmement compliqué à gérer Imprimante ? Ligne de connexion à distance…  Il faut disposer au minimum d’un ensemble de “sous- programmes” sachant prendre en charge ces tâches fastidieuses et répétitives.

6 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Équipements…  Qu’est-ce qu’un “équipement” ? Un accessoire de la périphérie d’un ordinateur, dont on oublie souvent qu’il contient lui-même un processeur  disque  imprimante  modem…  Nature : Une carte, avec des circuits spécialisés pour la gestion de l’équipement, des circuits de communication avec l’ordinateur principal, et un “moniteur” gérant un micro-processeur…

7 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Moniteur  Un moniteur a une vocation déterminée Service bien défini et toujours le même  Programme chargé de contrôler un équipement ROM : contient le programme sous une forme inaltérable RAM : mémoire de travail  Fournit une interface “standard” du point de vue logiciel Le matériel est “propriétaire” L’interface répond à une spécification “universelle” Exemples :  disque à la norme SCSI, IDE  imprimante “postscript”

8 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Que doit faire l’OS ?  Gérer les “périphériques” Lecteurs de rubans, cartes, bandes magnétiques, disques... Interface avec les moniteurs de ces équipements  Assurer le chargement du programme en mémoire “Chargeur”, ou “loader” Fourniture de la mémoire  “Gérer” le programme chargé en mémoire Permettre son interruption, son redémarrage…  Enchaînement des travaux Exemple : compilation, édition de liens, chargement et exécution

9 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Support de haut niveau  Difficulté de réaliser les entrées/sorties sur la machine nue  Solutions Appel de sous-programmes utilitaires liés avec le programme principal  Chargement à chaque exécution, taille importante des applications  Exemple : printf Appel de sous-programmes “systèmes” toujours présents  “Noyau” [kernel] du système d’exploitation  méthodes “spéciales” d’appel : “appel système”  une instruction spécifique génère une interruption ( trap )

10 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Appel système  Similaire à un appel de sous-programme : Passer des paramètres Réaliser une fonction Obtenir un résultat [code de retour]  Différence : “changement de mode” Passage du “mode utilisateur” (ou “programme”) au “mode système” Caractéristiques du “mode système”  permet l’utilisation d’instructions “privilégiées”  interdites en mode programme et provoquent une erreur [exception]  permet l’accès à toutes les ressources de la machine  gestion des périphériques  ensemble de la mémoire

11 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Caractéristiques de l’appel système  Gestion du changement de mode Sauvegarder l’état du programme courant  Registres  Indicateurs d’état : PSW “Program Status Word”  sur PC : registre EFLAGS Passer en “mode système”  Décoder la raison d’être du changement  Décoder les paramètres

12 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Passage en “mode système”  Évènements synchrones Instruction spéciale  Requête au système Erreur du programme : “exception”  Instruction illégale  Écriture dans une zone de mémoire protégée  Évènements asynchrones Interruption “extérieure”  Provoquée par l’utilisateur [bouton reset]  Provoquée par un moniteur gérant un périphérique externe

13 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Comment fonctionne une interruption ?  Une interruption arrive “n’importe quand” Provoquée par le moniteur, ou le contrôleur d’une carte périphérique Changement de niveau électrique sur une/+ pattes du processeur  Matériel : la “nature”, ou le “niveau” sont pris en compte Ensemble d’adresses de sous-programmes spécialisés pour chaque type d’interruption : le “vecteur d’interruption” Instruction de “retour” d’interruption

14 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Gérer l’interruption  Être complètement transparente au programme en cours - au moins pour une E/S Attente de la fin de l’instruction en cours Sauvegarde : registres, pile, indicateurs d’état, pointeur d’instruction  Un code spécifique gère l’interruption Peut-on interrompre ce code ? Masquage/démasquage des interruptions Différents niveaux d’interruptions :  priorités relatives des interruptions

15 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Les interruptions du 80x86  16 interruptions et exceptions prédéfinies  “vecteurs” 0 à 8, 10 à 14, 16, 18  224 “interruptions” définissables par l’utilisateur 0 Division par zéro 1 Debug 2 Interruption Externe non masquable 3 Breakpoint [INT 3] 4 Overflow 6 Code opération illégal 7 Processeur mathématique absent 13 Protection mémoire Réservé

16 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Vision applicative du 80x86  Registres et mémoire visibles par le programmeur Mémoire 4 Go EIP

17 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Un exemple : le BIOS du PC  “Basic Input/Output System”  A quoi sert le BIOS ? Mise en œuvre du PC au démarrage  “POST” : Power-On Self Test Charger des programmes depuis une disquette ou un disque dur  Charger le DOS - Système d’opération du PC Assurer une gestion élémentaire des périphériques  Clavier, Écran, Ports d’E/S, cartes vidéo, etc...

18 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Sous quelle forme se présente le BIOS  En général, une ROM Occupe un “segment” de mémoire  64 k à l’adresse F0000 si la carte mère a un bus ISA  128 k à l’adresse E0000 pour un bus EISA  Utilise une partie de la RAM 256 octets pour conserver l’état des E/S en cours  Gère une mémoire CMOS rémanente Décrit la “configuration” du système 64 octets ; alimentation par pile.

19 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Utilité ?  Complémentation du matériel de base de la machine  Tous les BIOS sont différents : cartes mères, périphériques, bus, constructeur…  Mise à jour possible Remplacement des ROM “Flash Bios” : bios réinscriptible  Offre une vision “standard”, pour le DOS, de la machine

20 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Le DOS  “Disk Operating System” MS-DOS  Conçu par Microsoft à la demande d’IBM  Première version : 1980  But : Gestion de plus haut niveau des périphériques Gestion du système de fichiers Enchaînement des tâches

21 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Les services du DOS  S’obtiennent à travers l’instruction INT 21h  Paramètres dans des registres Un certain registre (ah) contient un numéro de fonction Autres paramètres éventuels dans des registres Ex : B401 movb $1,%ah CD21 int $0x21  MS-DOS préserve les valeurs des registres (sauf s’il fournit des résultats dans certains d’entre eux)

22 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Quelques exemples de fonctions  1 : lire un caractère au clavier. Résultat dans al  2 : écrire sur la console le caractère contenu dans dl  3 : lire un caractère depuis le port série. Résultat dans al  4 : écrire sur le port série le caractère contenu dans dl  5 : idem, sur l’imprimante  10 : écrire sur l’écran une chaîne de caractères dont l’adresse est contenue dans ds:dx, la chaîne se terminant par $  11 : consulter le clavier pour savoir si un caractère est disponible. al contient 0 ou 255.

23 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Gestion de périphériques  14 : positionnement du disque DOS par défaut. dl contient le numéro du disque à sélectionner  0=A, 1=B, 2=C… al reçoit en retour le nombre de disques “logiques”  25 : demander le numéro du disque par défaut résultat dans al  26, 27, 28 : opérations de contrôle diverses demande d’information sur un disque [nature, capacité, format…]  Opérations de lecture et d’écriture…

24 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Autres types de fonctions  Gestion de l’heure / date Lire, écrire les informations concernant l’heure et la date Maintenues par un mécanisme spécifique : RTC, “real time clock”  Gestion de la mémoire Allouer un bloc de mémoire Libérer un bloc de mémoire Modifier la taille d’un bloc de mémoire Possibilité d’influer sur les stratégies d’allocation  c.f. cours sur gestion de la mémoire [à venir…]

25 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Contrôle des Processus  Arrêt d’un programme Fonction 4Ch (ou 0x4C ) : arrêt de l’exécution  DOS ne “revient” pas au programme  DOS ferme les fichiers ouverts, libère la mémoire Fonction 31h (ou 0x31 ) : arrêt de l’exécution, mais conservation du programme en mémoire.  TSR “Terminate and Stay Resident”  Exemple :  programmes remplaçant des parties du BIOS  virus…

26 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Contrôle des Processus  Chargement et exécution d’un programme Fonction 40h (ou 0x40 ) : “exec”  ds:dx pointe sur le nom du fichier à exécuter  “B:\DIR\SUB\PROG.EXE”  es:bx pointe sur un bloc de paramètres  informations passées au programme allant s’exécuter  al indique la fonction désirée  0 : charger et exécuter  1 : chargement seul  3 : chargement d’un “overlay”

27 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Gestion du système de fichiers  Fonctions de haut niveau Ouverture de fichiers  Nom du fichier, nature de l’accès [lecture, écriture, màj] Création de fichiers Fermeture de fichiers Effacement, renommage de fichiers Lecture, écriture, déplacement de pointeur, etc...  Traitement des anomalies, comptes-rendus

28 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Résumé : BIOS et DOS  BIOS : un “moniteur résident” qui offre des fonctions de bas niveau, et permet le chargement de DOS Fournit à DOS une vision “standard” de la machine  DOS : un système d’exploitation qui : Assure l’enchaînement & la gestion des tâches Fournit aux programmes des services de haut niveau :  gestion de la mémoire  gestion des périphériques  en particulier, système de fichiers

29 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Notion de “Tâche”  DOS ne permet qu’un “travail” à la fois : Le programme de l’utilisateur,...ou DOS lui-même, réalisant une opération pour le compte de ce programme  Système monotâche Avantages :  simplicité de conception, taille raisonnable, etc. Inconvénient :  utilisation médiocre des ressources de la machine

30 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Système Multitâches  Partage les ressources entre plusieurs processus Ressources : mémoire, processeur, périphériques… Processus : un programme en cours d’exécution  Caractéristiques : Système plus complexe Nécessite des ordinateurs disposant de plus de ressources Permet une meilleure utilisation des caractéristiques de la machine  Exemple : programmes réalisant des E/S

31 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Système Multi-utilisateurs  Notion d’utilisateur : Personne “autorisée” à utiliser la machine Mécanisme d’authentification Notions de droits relatifs à une ressource [ex: fichier] Problèmes de protection et de partage des ressources.  Peu de différences avec un système multi-tâches

32 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Que partager ?  L’unité centrale Plusieurs programmes peuvent s’exécuter en même temps  Une seule CPU, mais...  un programme réalise des E/S, pendant lesquelles la CPU est “inactive”  un autre programme peut utiliser la CPU pendant ces attentes Comment s’assurer d’un partage de temps équitable  Permettre à tous les programmes de progresser régulièrement  pouvoir interrompre un programme, par exemple à intervalles de temps fixes : les horloges, “timers”  Utiliser au mieux la CPU

33 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Que partager ?  La mémoire centrale Plusieurs programmes peuvent cohabiter en mémoire  “bonne programmation”  mécanismes de protection mutuelle  système de gestion matérielle de la mémoire Comment fournir aux programmes la mémoire dont ils ont besoin, au moment où ils en ont besoin ?  gestion de la mémoire  Les périphériques Les périphériques physiques  Imprimante :queues d’impression, ou “spool”  Disques :systèmes de gestion de fichiers

34 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Comment partager ?  File d’attente Imprimante, requêtes disque  Les données à imprimer sont conservées dans une file d’attente  espace mémoire, espace disque, priorités, etc...  Les requêtes passent par l’intermédiaire de “tampons”  une suite d’écritures de petite taille sur un fichier est transformée en une seule écriture d’élément de taille plus importante  idem. lecture

35 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Périphériques  Non directement connectés au bus Grande variété des équipements  La CPU ne peut “connaître” tous les types/modèles de périphériques : commandes très variées Débits non compatibles avec celui du bus Différentes représentations des données  Module(s) d’entrée/sortie Assurer l’interface entre :  CPU & Mémoire  Équipement

36 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Module d’entrée/sortie  Interface processeur/équipement Vision “standard” d’une catégorie d’équipement  disque, imprimante, etc Réalise une partie de la “gestion” du périphérique  libère la CPU pour d’autres tâches Interface fournissant :  Contrôle  État  Données

37 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Mémoire : les besoins  L’informatique a toujours besoin de plus de mémoire Programmes plus ambitieux Programmes plus gourmands en mémoire  A l’échelle d’une machine : plus de mémoire = plus de ressources, meilleure utilisation de celles-ci  A l’échelle d’un programme : plus de mémoire = plus de “puissance individuelle”  besoins multipliés par 1.7 chaque année

38 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Mémoire : les besoins de l’OS  De la mémoire, encore plus de mémoire Besoins propres du système :  TSM [1976] : 8 ko. Solaris 2.4 [1996] : 14 Mo. Besoins “auxiliaires” du système :  Outils divers [mail, serveurs ftp, http, gestionnaire de fenêtres…] Répondre aux besoins des utilisateurs  Les applications deviennent de plus en plus grosses, tout comme les données manipulées  Le multi-tâche encourage à exécuter plusieurs applications simultanément

39 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Mémoire : les besoins des programmes  Mémoire Globale Variables et tableaux : toujours plus  Mémoire locale Allocation automatique [connue du compilateur] Allocation dans la pile [ alloca ]  Mémoire dynamique Allocation dynamique sous contrôle du programme  new / delete, malloc / free Allocation “transparente” [sous-programmes système, E/S, fenêtres…]

40 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax La vision “utilisateur”  Gestion dynamique de la mémoire C : malloc, free C++ : new, delete  Comment : l’allocateur de mémoire Procédures qui :  reçoivent les requêtes de l’application  gèrent de la mémoire, statique ou demandée au système  divisent les gros blocs pour répondre à des demandes fines  rassemblent les petits blocs libres si possible

41 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax malloc(), free()  Allocation dynamique de mémoire dans le tas  Fournir un bloc de mémoire de la taille demandée, situé à une adresse mémoire “convenable” void * malloc(size_t size); Prise en compte des particularités d’adressage du processeur  Libérer un bloc de mémoire void free(void * ptr); ptr doit être null ou l’adresse d’un bloc fourni par malloc

42 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax new, delete()  Vision C++ Création d’un objet = allocation de mémoire + initialisation Destruction d’un objet = gestion de la destruction + libération de la mémoire  Primitives de “haut niveau” On peut utiliser new, delete, malloc et free dans un même programme Les objets créés par new doivent être libérés par delete La mémoire allouée par malloc doit être libérée par free

43 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Gestion de mémoire par chaînage après une quatrième allocation zone libre Informations de contrôle après deux allocations après une libération après une troisième allocation La mémoire devient fragmentée. Une nouvelle demande de mémoire peut échouer car il ne reste plus de bloc de mémoire contiguë de taille suffisante

44 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Aspects  Type d’allocation First fit : le premier rencontré en partant du début de la liste Next fit : un first fit où l’on explore à partir de la position courante Best fit : on parcourt toute la liste pour trouver le “meilleur” libre Worst fit : on parcourt tout et on choisit le plus gros… Curieux ?  Fragmentation de la mémoire Beaucoup de petits morceaux ne remplacent pas un gros bloc On ne peut, en général, pas déplacer les blocs de manière “transparente” aux programmes Influer sur l’algorithme d’allocation n’est qu’un pis-aller

45 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Améliorations possibles  Caractéristiques du chaînage Simple : allocation/désallocation plus rapide Double : réunification des blocs plus simple Séparer la liste des blocs libres et des blocs utilisés  Listes multiples On maintient les blocs libres dans différentes listes, en fonction de leur “classe” de taille  allocation plus rapide  libération plus complexe

46 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax  Buddy system Mémoire partagée en blocs de taille 2 k A chaque demande, on fournit un bloc de 2 p octets, de taille minimale Allocation et libération [compactage] simple. Trous inutilisables.  Allocation par cellules de taille fixe [langage LISP] Autre types d’algorithmes demande de 14 ko demande de 3 ko demande de 1 ko

47 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Un exemple : Solaris 2.5  Algorithmes d’allocation de mémoire pour les applications Matériel : pagination, avec des pages de 4 ko Demande de plus de 2ko : 1 ou plusieurs pages allouées Demandes de 256 octets à 2ko : allocation par morceaux de page.  taille du morceau : puissance de 2. Gestion par zones  ex: 512 octets pour 327 demandés. Demandes de moins de 256 octets  micro allocation spécifique.

48 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Bugs typiques dans les programmes  Utiliser de la mémoire qui n'est pas/plus allouée  Fournir en résultat d’une fonction l’adresse d’une variable locale  Oublier de désallouer une zone allouée par malloc()  Désallouer deux fois une zone allouée par malloc()  Déborder d’une zone allouée par malloc()  Ne pas tester le résultat de malloc()  Utiliser alloca() sans en comprendre le fonctionnement  Mélanger les allocations de haut et de bas niveau malloc / free et new / delete  etc…