• Aucun résultat trouvé

Structure d’un disque

N/A
N/A
Protected

Academic year: 2022

Partager "Structure d’un disque"

Copied!
50
0
0

Texte intégral

(1)

Chapitre V : La gestion des disques et l’organisation des fichiers

Eric.Leclercq@u-bourgogne.fr

epartement IEM

http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq

March 7, 2013

(2)

Plan

1 Les supports de stockage Terminologie

2 Syst`eme de fichiers Syst`eme de fichiers Table d’allocation

3 Organisation interne des fichiers Fichiers s´equentiel ind´ex´es Index de type B-arbre Acc`es al´eatoire ou dispers´e

(3)

Introduction

La gestion des disques :

concerne les m´ethodes d’acc`es au blocs de donn´ees par le noyau du SE

la d´efinition d’une structure pour accueillir les fichiers La gestion des fichiers recouvre plusieurs activit´es :

Une gestion effectu´ee par le noyau du SE : allocation, gestion des m´eta-donn´ees (taille, date de cr´eation, propri´etaire), localisation

Une gestion en mode utilisateur : gestion interne du contenu du fichier (ouverture, lecture, ´ecriture)

(4)

Acc` es s´ equentiel ou direct

Les anciens supports de stockage ´etaient essentiellement `a acc`es s´equentiel

Exemple :

analogie avec les K7 de magn´etoscope, bandes magn´etiques, rubans perfor´es etc.

Aujourd’hui, il existe toujours des bandes mais leur utilisation est r´eserv´ee pour les sauvegardes. Les disques magn´etiques pr´esentent des caract´eristiques essentielles :

Rapidit´e des acc`es (acc`es direct `a une zone) Fiabilit´e

Grande capacit´e Exemple :

capacit´e actuelle d’un disque sur un PC 500Go, acc`es 5-10ms, transfert 50M/s.

(5)

Structure d’un disque

1 Plateaux

2 Moteur (axe)

3 M´ecanisme de d´eplacement des bras

4 bras supportant les tˆetes de lecture ´ecriture (5)

(6)

Structure d’un disque

(7)

Structure d’un disque : r´ esum´ e

(8)

Structure d’un disque : terminologie

(9)

Structure d’un disque : terminologie

(10)

Notion de syst` eme de fichiers

Formatage : le disque est d´ecoup´e en zones logiques appel´ees secteurs regroup´es sur des pistes

L’ensemble des pistes de mˆeme num´ero sur diff´erent plateaux forme un cylindre

Les blocs sont des regroupement de secteurs (en g´en´eral 512 octets / secteur)

La cr´eation d’un syst`eme de fichiers (formatge dans le monde Windows) cr´ee une structure de donn´ees pour affecter des blocs `a des fichiers (commandemkfs dans le monde Unix)

(11)

Notion de syst` eme de fichiers

Les syst`emes de fichier sont g´er´es `a partir d’uneseule et mˆeme racine (’/’)

Les utilisateurs sont tous possesseurs d’une branche dans laquelle ils sont maˆıtres (home directory)

les utilisateur peuvent d´evelopper leur branche : cr´eer de nouveaux fichiers et de nouveaux r´epertoires

Contrairement `a Windows, l’utilisation de disquettes n’est pas vue comme l’ajout d’un nouveau volume (disque), mais comme le raccordement d’un syst`eme de fichiers `a l’arborescence existante

Les disquettes ou tout autre support de stockage sont greff´es sur l’arbre principal par une commande mount :

mount /dev/fd0 /mnt/floppy

(12)

Fichier sp´ eciaux, liens symboliques

Il existe plusieurs cat´egories de fichiers sp´eciaux sous Unix : les r´epertoires

les tubes nomm´es

les p´eriph´eriques : syst`eme de fichier /dev

le descriptif de l’´etat de l’OS via le syst`eme de fichiers/proc Quelques fois il est utile de nommer les fichiers de plusieurs fa¸cons (alias) ou bien de pouvoir acc´eder `a un fichier depuis plusieurs emplacements dans l’arborescence. On a alors recours aux :

Liens symboliques sous UNIX :

ln /home/eric/toto18.java /home/eric/toto.java Aux raccourcis sous Windows (traitement non pr´evu par le FS) Aux alias sur MACOS

(13)

Notion de fichier

Les disques permettent un acc`es direct aux donn´ees au moyen d’une adresse de bloc, un fichier est un ensemble logique de bloc appartenant `a une mˆeme entit´e (le fichier).

on peut sp´ecifier un premier bloc et ensuite chaˆıner les blocs (ajouter l’adresse du suivant)

on peut ´etablir une liste de blocs dans une table

Probl`eme : utilisateur ne connaˆıt pas l’emplacement du fichier sur le disque, il ne connaˆıt que son nom

(14)

Vers la notion de table d’allocation

Solution 1 :

On int`egre au d´ebut de chaque fichier son nom

On place le fichier sur le disque au premier endroit o`u on trouve de la place

Le recherche d’un fichier est alors s´equentielle : ´etant donn´e le nom, on lit les blocs du disque `a partir du d´ebut et on

recherche la premi`ere occurrence du nom du fichier Inconv´enient : on n’utilise alors pas du tout l’acc`es direct permit par la structure physique du disque dur

Solution 2 :

le premier secteur contient un tableau T qui s’´etend sur la globalit´e de la premi`ere piste et qui associe `a chaque nom de fichier le num´ero du secteur qui le contient

Inconv´enient : fragilit´e de la table d’allocation (File Allocation Table)

(15)

File Allocation Table

(16)

File Allocation Table

´Etant donn´e un nom M, le positionnement de la tˆete de lecture sur le premier secteur (secteur 0) permet :

de charger l’index

de le parcourir `a la recherche de la chaˆıne de caract`eres M de d´eterminer le secteur qui contient le d´ebut du fichier la tˆete de lecture du disque se positionne alors sur la piste en question et recherche plus pr´ecis´ement le fichier (le secteur)

(17)

i-node sous Unix

D´efinition :

Les inodes (index node) ou i-nœuds sont des structures de donn´ees contenant les informations qui d´ecrivement comment les fichiers stock´es dans un file system

Les inodes contiennent les m´etadonn´ees des fichiers (propri´etaires, droits, etc.).

Les inodes sont cr´e´es lors de l’initialisation du syst`eme de fichiers.

Le nombre d’inodes cr´ees est d´etermin´ee lors de l’intitiaisation du file system et d´ependent de la taille de la partition.

Le nombre de i-node d´etermine le nombre maximum de fichiers du syst`eme de fichier.

La structure d’un i-node d´etermine la taille maximum d’un fichier.

(18)

Exemple avec ext2 de Linux

Un inode contient environ 64 champs, dont 13 contiennent des blocs (d´edi´es donn´ees) pouvant ˆetre de deux types :

blocs d’adresses : contiennent des pointeurs vers d’autres blocs ;

blocs de donn´ees : contiennent les donn´ees du fichier.

De plus :

Les 10 premiers champs (sur les 13) contiennent les adresses des 10 premiers blocs de donn´ees du fichier (d’une adresse par bloc).

Si les 10 premiers (blocs) champs sont suffisants pour contenir le fichier, les champs 11, 12 et 13 ne sont pas utilis´es.

(19)

Exemple avec ext2 de Linux

Dans le cas contraire, en plus des 10 premiers blocs, les blocs 11, 12 et 13 sont utilis´es pour 3 niveaux d’indirections.

la simple indirection, utilis´ee par le champ 11 ; la double indirection, utilis´ee par le champ 12 ; la triple indirection, utilis´ee par le champ 13.

Chacun de ces trois champs pointe vers un bloc d’adresses, qui pourra pointer vers un ou plusieurs blocs d’adresses ou de donn´ees.

Plus le niveau d’indirection est ´elev´e, plus le nombre final de blocs de donn´ees sur lequel pointe le champ (11, 12 ou 13) sera ´elev´e.

(20)

Exemple avec ext2 de Linux : exemple

Hypoth`eses

les blocs ont une taille 1024 octets ;

chaque adresse (dans le cas d’un bloc d’adresses) est stock´ee sur 32 bits (4 octets) ;

chaque bloc d’adresses peut contenir 256 adresses.

Mise en oeuvre des indirection pour des fichiers volumineux :

1 Le champ 11 pointe vers un bloc d’adresses qui contient des pointeurs vers des blocs de donn´ees (256 pointeurs). Si cela est suffisant pour contenir le fichier, les champs 12 et 13 ne sont pas utilis´es.

2 Le champ 12 pointe vers un bloc d’adresses qui pointe vers 256 autres blocs d’adresses. Ce sont ces 256 blocs d’adresses qui pointeront vers 256 blocs de donn´ees.

3 Le champ 13 pointe ajoute un troisieme niveau.

(21)

Exemple avec ext2 : taille maximale de fichier

D´eterminer le nombre de bloc de donn´ees utilisables : Les 10 premiers champs pointent chacun sur 1 bloc de donn´ees ;

Le champ 11 pointe vers 256 blocs de donn´ees ; Le champ 12 pointe vers 2562 blocs de donn´ees ; Le champ 13 pointe vers 2563 blocs de donn´ees.

La taille maximale d’un fichier peut alors ˆetre calcul´ee avec l’hypoth`ese de blocs de 1024 octets :

1024×(10 + 256 + 2562+ 2563) = 17247250432

(22)

Structure de fichiers : m´ eta-donn´ ees et contenu

Un fichier regroupe un ensemble de donn´ees appel´e contenu Un fichier est associ´e `a des m´eta-donn´ees stock´ees ou non dans la table d’allocation : un nom, une date, un

emplacement, un propri´etaire, des attributs de lecture etc.

Le contenu d’un fichier est un ensemble structur´e enregistrements (appel´es aussi articles ourecords) Chaque article repr´esente une information unitaire (unit´e d’information)

Exemple :

le fichier du personnel d’une entreprise

(23)

Enregistrements et champs

Les articles se d´ecomposent en champs

Chaque champ repr´esente une propri´et´e de l’article

Les champs sont l’association entre un attribut et une valeur d’un type donn´e.

Exemple :

Dans le fichier du personnel le champ nom repr´esente le nom d’une personne (Nom, Adresse, etc.) et une valeur (’toto’, ’rue

Quimonte’, etc.)

(24)

Enregistrements et champs

Le plus souvent la structure des articles est identique dans un mˆeme fichier :

nombre d’attributs fixe et champs de taille fixe

Ainsi, tous les articles ont la mˆeme taille et on peut calculer la position d’un ´el´ement en fonction de son num´ero d’ordre On parle alors d’article de longueur fixe par opposition aux fichiers comportant des articles de longueur variable Quand peut-on rencontrer des articles de taille variable ? Avantages/Inconv´enients de ces deux formats

(25)

Organisation des fichiers en enregistrements

G´en´eralement l’organisation doit optimiser : la restitution du contenu des fichiers

mˆeme lorsque les donn´ees sont complexes (beaucoup de champs, reli´ees) il est n´ecessaire que les acc`es en lecture soient rapides

Exemple :

dictionnaire, plan de ville, images satellitales

Pour la modification du contenu des fichiers plusieurs probl`emes sont `a prendre en compte :

Comment ins´erer au mieux un nouvel article dans un fichier Comment replacer un information qui augmente de volume Comment ne pas laisser de trous apr`es une suppression (fragmentation)

(26)

Organisation en fonction d’un acc` es par adresse

Tout acc`es r´eel `a un enregistrement se fait en sp´ecifiant son adresse avec les hypoth`eses suivantes :

implantation contigu¨e des enregistrements

utilisation d’une table d’allocation associ´ee `a un fichier si les enregistrements sont de taille variable

utilisation d’une table des zones libres pour g´erer la fragmentation

On peut souhaiter demander au syst`eme l’acc`es `a un

enregistrement qui a certaines propri´et´es mais dont on ne connaˆıt pas l’adresse (fichier tr`es grand)

Exemple :

recherche du num´ero de t´el´ephone d’une personne en fonction de son nom, ou de sa ville, ou de plusieurs crit`eres

(27)

Notion de cl´ e ou d’identifiant

Certains champs (attributs) permettent de discriminer totalement une information :

ces attributs sont appel´es des cl´es

deux valeurs diff´erentes de la cl´e font r´ef´erence `a des

enregistrements diff´erents, ainsi, dans un fichier il ne peut pas y avoir deux enregistrements diff´erents ayant la mˆeme valeur de cl´e

Conclusion : chaque valeur de cl´e correspond `a une seul adresse d’enregistrement dans le fichier

Comment utiliser cette propri´et´e pour acc´eder au contenu d’un article en se basant sur la valeur de la cl´e ?

(28)

Acc` es au contenu via une cl´ e

Diff´erents types d’organisations ont ´et´e ´etudi´es depuis plus de 40 ans :

S´equentielle (fichiers tri´es selon la cl´e) S´equentielle index´ee

B-Arbre Al´eatoire

(29)

Principe de l’index

Le principe de l’indexation consiste `a bˆatir une table de correspondances (table d’index) entre :

les valeurs de la cl´e

es adresses des enregistrements sur le disque Pour faciliter les acc`es (rapidit´e) cette table doit ˆetre :

tri´ee

stock´ee dans un fichier (pas reconstruite `a chaque op´eration) charg´ee ou chargeable en m´emoire centrale

On parle alors de fichiers´equentiel index´eet plusieurs index peuvent ˆetre associ´e `a un mˆeme fichier et stock´es eux mˆeme dans des fichiers tri´ees.

(30)

Exemple d’index

(31)

Am´ elioration de l’index

Le principe de l’indexation peut ˆetre compl´et´e de plusieurs mani`eres :

Au lieu de la cl´e on peut utiliser un attribut discriminent (qui n’est pas une cl´e stricte), il y aura des doublons dans l’index On peut constituer une cl´e de l’index `a partir de plusieurs attributs (par exemple nom + pr´enom s’il y a des

homonymes) Exemple : mots d’un dictionnaire (1 mot = plusieurs sens donc plusieurs d´efinitions)

On peut cr´eer et combiner plusieurs index suivant les recherches effectu´ees (par nom, par adresse etc.)

On peut fragmenter l’index lorsque la la table est trop grande pour tenir en m´emoire principale

(32)

Exemple d’index

(33)

Organisation en arbre : B-arbre

Invent´e chez Boeing : B pour Boeing ou Balanced (´equilibr´e) L’id´ee principale est d’utiliser une cl´e pour naviguer

rapidement un article

Au lieu d’une table d’index, on utilise une structure plus adapt´ee aux recherches : un arbre donc chaque nœud a au plus n fils

Principe du B-Arbre :

Les articles dont la valeur de la cl´e est inf´erieure

(respectivement sup´erieure) `a l’enregistrement du nœud courant sont plac´es `a sa gauche (respct. `a sa droite)

cette structure comme l’index ne contient pas les articles mais seulement la valeur de la cl´e et la position (adresse) de l’enregistrement dans le fichier

Cette strat´egie est efficace si l’arbre est bien organis´e : ’il a autant de fils gauche que droits

(34)

Exemple d’index B-arbre

(35)

Organisation en arbre : B-arbre

Cette technique est int´eressante car la parcours de l’arbre revient `a une recherche dichotomique dont le nombre de comparaison est fix´e par la profondeur maximum de l’arbre Ce n’est v´erifi´e que si l’arbre est ´equilibr´e (balanced)

Chaque nœud doit avoir autant de descendants gauches que droit

Le principe est de construire d`es le d´epart un arbre ´equilibr´e puis de maintenir l’´equilibre au fur et `a mesure de sa croissance

On doit donc couper des branches et les regreffer ailleurs ? Que faire des suppressions dans l’arbre ?

(36)

B-arbre stock´ e comme un tableau

(37)

Organisation al´ eatoire : hash-coding

Les techniques pr´ec´edentes consistaient `a voir diff´eremment le fichier sans le modifier :

en lui associant une structure compl´ementaire l’index La technique de hash-coding consiste `a r´eorganiser le fichier :

on r´eserve une zone contigu¨e pour ranger des enregistrements cette zone est divis´ee enp paquets num´erot´es de 0 `ap−1 de taille fixe t

on utilise une fonction dite de hachage qui fait correspondre `a chaque valeur de cl´e un num´ero de paquet entre 0 et p−1 l’adresse r´eelle d’un enregistrement est l’adresse du paquet et un d´eplacement relatif au d´ebut du paquet

les cl´es peuvent ˆetre de type vari´es et le r´esultat est imp´erativement un nombre entier

(38)

Organisation al´ eatoire : hash-coding

L’acc`es `a un enregistrement s’effectue en appliquant la fonction de hachage `a la valeur de la cl´e pr´esent´ee pour obtenir un num´ero de paquet candidat :

Au sein d’un paquet, la recherche est s´equentielle Les articles dont rang´es par ordre d’arriv´ee

Pour d´efinir une fonction de hachage, il faut d’abord transformer les valeurs de la cl´e, souvent une chaˆıne en une valeur num´erique (un nombre entier) :

on se sert t du codage interne de la valeur des caract`eres qui est num´erique 8 bits ASCII 16 bits Unicode

on utilise abondamment la fonction modulo D. Knuth, Volume 3, Sorting and Searching (1973).

(39)

Organisation al´ eatoire : exemple

(40)

Organisation al´ eatoire : les limites

Lorsque le syst`eme fonctionne bien, pour une recherche : il y a seulement un acc`es direct

ensuite un petit d´eplacement (s´equentiel) Le probl`eme du hash-coding provient de ce que :

en fonction des donn´ees pr´esentes, certains paquets peuvent rester vides (m´emoire sous utilis´ee)

des paquets peuvent ˆetre en ´etat de d´ebordement (paquet satur´e)

il n’est pas possible de garantir `a l’avance ce qui se produira Pour pallier ces difficult´es en amont on doit faire en sorte que la fonction de hachage :

reste le plus possible repr´esentative de la valeur de la cl´e. Il y a alors peu de valeurs de cl´e diff´erentes pour un mˆeme num´ero de paquet

donne une r´epartition statistique uniforme des valeurs de cl´es sur les num´eros de paquets (?)

(41)

Organisation al´ eatoire : les limites

En aval en essaie de g´erer la saturation des paquets en utilisant des techniques de redirection des articles surnum´eraires :

Adressage ouvert

http://fr.wikipedia.org/wiki/Table_de_hachage Chaˆınage

Rehachage

Dans tous les cas le d´ebordement d´et´eriore les performances du syst`eme

(42)

Tables de hachage en Java

Une table de hachage Java qui permet une association

cl´e-´el´ements et propose au moins les fonctionnalit´es suivantes : put(key, value) : qui permet d’associer une valeur (objet)

`

a une cl´e ;

get(key): qui retourne l’objet qui a ´et´e associ´ee `a la cl´e, ou null s’il n’y en a pas ;

remove(key): qui supprime l’entr´ee associ´ee `a la cl´e dans la table (mais pas n´ecessairement l’objet).

Contraintes :

il ne peut pas y avoir deux entr´ees de mˆeme cl´e dans une table de hachage (on a bien un Setsur les cl´es);

une mˆeme valeur peut ˆetre associ´ee `a plusieurs cl´es diff´erentes, il s’agit donc d’une Collection.

(43)

Comportement abstrait des HT

L’interfaceMap<K,V>:

put(K key, V value),get(K key) etremove(K key) keySet(): retourne l’ensemble des cl´es de la table de hachage sous la forme d’unSet<K>

values(): retourne l’ensemble des valeurs stock´ees dans la table de hachage sous la forme Collection<V>

entrySet() : retourne l’ensemble des entr´ees de cette table de hachage c’est-`a-dire unSet dont les ´el´ements sont des Map.Entry.

clear(),size(),isEmpty(),containsKey(K key)et containsValue(V value)

putAll(Map map) pour d’ajouter toutes les cl´es de la table pass´ee en param`etre `a la table courante.

(44)

Entr´ ee de HT : l’interface Map.Entry

L’interfaceMap.Entry repr´esente la structure des couples (cl´e/valeur) d’une table de hachage et propose les m´ethodes :

getKey() getValue()

Pour obtenir un objetMap.Entry, faire un appel `a la m´ethode Map.entrySet(), it´erer sur leSetobtenu en retour.

(45)

Tables ordonn´ ees : interface SortedMap

L’interfaceSortedMap permet de stocker des tables de hachage tri´ees selon l’ordre des cl´es.

l’ordre doit ˆetre d´efini de mani`ere implicite (objets

Comparable) ou explicite au moyen d’un Comparator(objet qui impl´emente)

firstKey() etlastKey() : retournent la plus petite cl´e et la plus grande

headMap(K toKey) et tailMap(K fromKey): retournent des vues sur la table

subMap(K fromKey, K, toKey) : retourne une vue sur la table (entre les deux cl´es)

(46)

Tables ordonn´ ees : interface NavigableMap

NavigableMap est une sp´ecialisation de SortedMap avec des m´ethodes de s´election :

ceilingKey(K key) etfloorKey(K key) : retournent respectivement la plus petite cl´e sup´erieure ou ´egale, ou la plus grande cl´e inf´erieure ou ´egale `a la cl´e pass´ee en param`etre ceilingEntry(K key) et floorEntry(K key)

higherKey(K key) et lowerKey(K key) higherEntry(K key)et lowerEntry(K key) firstEntry() etlastEntry()

headMap(K sup, boolean inclusive)et tailMap(K inf, boolean inclusive)

subMap(K fromKey, K, toKey)

(47)

Impl´ ementations

L’API Java Collection fournit cinq impl´ementations de l’interface Map:

Hashtable, pr´esente depuis Java 1.2 synchronis´ee ; HashMap autorise les valeurs nulles mais n’est pas synchronis´ee ;

LinkedHashMap´etend HashMapet entretient une liste chaˆın´ee permettant d’it´erer sur les entr´ees dans un ordre fixe.

IdentityHashMap utilise l’op´erateur== pour savoir si deux cl´es sont identiques (les autres utilisent le r´esultat de la m´ethode equals)

WeakHashMapsi la cl´e n’est plus r´ef´erenc´ee ailleurs dans le programme, le couple est automatiquement supprim´e de la collection

L’interfaceSortedMap a une impl´ementation TreeMap. Cette classe impl´emente ´egalementNavigableMap.

(48)

Collections et concurrence

Depuis la version 1.2 l’orientation de Java pour les collections est l’am´elioration de la performance, par cons´equent les collections ne sont pas thread-safe. Cependant la classe collection permet d’ajouter un comportement sp´ecifique :

Collections.synchronizedCollection(Collection<T> c) Collections.synchronizedList(List<T> list)

Collections.synchronizedMap(Map<K,V> m) Collections.synchronizedSet(Set<T> s)

Collections.synchronizedSortedMap(SortedMap<K,V> m) Collections.synchronizedSortedSet(SortedSet<T> s)

(49)

Exemple

1 i m p o r t j a v a . u t i l .*;

2

3 c l a s s A r b r e { 4 S t r i n g n o m C o m m u n ; 5 S t r i n g g e n r e ; 6 S t r i n g f a m i l l e ; 7 S t r i n g r u s t i c i t e ; 8 int d u r e e V i e ;

9 p u b l i c A r b r e ( S t r i n g nom , S t r i n g f a m i l l e ) { 10 n o m C o m m u n = nom ;

11 t h i s. f a m i l l e = f a m i l l e ;

12 }

13 } 14

15 p u b l i c c l a s s T r e e H a s h {

16 p u b l i c s t a t i c v o i d m a i n ( S t r i n g arg []) { 17 A r b r e a1 =new A r b r e ( " ´e r a b l e " , " a c ´e r a c ´e e s " ) ; 18 A r b r e a2 =new A r b r e ( " h ^e t r e " , " f a g a c ´e e s " ) ;

19 // on c r ´e e une H a s h M a p p o u r des r e c h e r c h e sur le nom c o m m u n 20 Map < String , Arbre > l e s A r b r e s = new HashMap < >() ;

21 l e s A r b r e s . put ( a1 . n o m C o m m u n , a1 ) ; 22 l e s A r b r e s . put ( a2 . n o m C o m m u n , a2 ) ;

23 S y s t e m . out . p r i n t l n ( " E l ´e m e n t s : " + l e s A r b r e s . s i z e () ) ; 24 S y s t e m . out . p r i n t l n ( " - > " + l e s A r b r e s . get ( " ´e r a b l e " ) ) ; 25 for ( Map . Entry < String , Arbre > e n t r y : l e s A r b r e s . e n t r y S e t () )

26 S y s t e m . out . p r i n t l n ( " [ " + e n t r y . g e t K e y () + " ] - > " + e n t r y . g e t V a l u e () . f a m i l l e ) ;

27 }

28 }

(50)

Quelques lectures essentielles ` a un informaticien :

Algorithmique - 3`eme ´edition - Dunod - Edition 2010 Thomas Cormen, Charles Leiserson, Ronald Rivest , Clifford Stein Donald Knuth - The Art of Computer Programming, Volumes 1-3, le volume 3 chapitre 4 traite des tables de hachage.

Références

Documents relatifs

J’observe toutefois (Figure 13.3) ` a la fin du mod` ele la formation d’une seconde paire de zones cisaillantes du cˆ ot´ e retro du mod` ele, ce qui laisse penser que la

Ecrire en Java la gestion d’un tas, repr´esent´e par un tableau : cr´eer, ins´erer, minimum, supprimer (le minimum), modifier une valeur.. Vous programmerez ceci en TP, et

Un fichier regroupe un ensemble de donn´ ees appel´ e contenu Un fichier est associ´ e ` a des m´ eta-donn´ ees stock´ ees ou non dans la table d’allocation : un nom, une date,

Pour trouver les coordonn´ ees d’un point dans un rep` ere, on ´ ecrit l’´ equation (vectorielle) caract´ eristique on convertit cette ´ equation en syst` eme num´ erique on

On fixe une cat´ egorie C et on prend comme objets les couples (R, M ) d’une monade R sur C et d’un R-module M. Que peut-on prendre comme morphismes pour faire une cat´

Perdre ses photos de vacances : ¸ca n’a pas de

Programme des enseignements – Syst` emes d’information et conception d’entrepˆ ots de donn´ ees – Les principes et la d´ emarche du Data Mining (fouille de donn´ ees)

Objectifs : Maˆıtriser les structures de base de l’informatique (tableaux, listes, files, piles) et les op´ erations ´ el´ ementaires sur ces structures et introduction au