La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216,

Présentations similaires


Présentation au sujet: "INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216,"— Transcription de la présentation:

1 INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216, philippe.fournier-viger@umoncton.ca Hiver 2015 1

2 Calendrier 2 Rappel: plan de cours, CLIC, …

3 Aujourd’hui Introduction Les fichiers Les mémoires Le disque dur ◦ calculs 3

4 Introduction Qu’est ce qu’un bon algorithme? Un algorithme qui est: ◦ complet: génère l’ensemble des résultats demandés, ◦ correct: ne génère pas de résultats erronés, ◦ efficient: en termes de mémoire, temps d’exécution,  sur des données réelles,  en termes de complexité (temps, mémoire) … ◦ autres critères: facile à implémenter, mise à l’échelle... 4

5 Introduction (suite) Quels facteurs influencent la performance d’un algorithme? L’algorithme, lui-même ◦ Les stratégies employées, ◦ Les structures de données L’implémentation, ◦ Le langage de programmation, ◦ Les structures de données (choix d’implémentation) ◦ Les décisions d’implémentation 5

6 Introduction (suite) Les données La plateforme: ◦ processeur(s), type de mémoire, … ◦ fichiers, organisation, etc. ◦ Ex.: téléphone vs serveur vs ordinateur vs grappe de calcul… … 6

7 Introduction (suite) Dans les cours précédents: ◦ Hypothèse: les algorithmes opèrent sur des données entièrement chargées en mémoire vive. ◦ Limite à cette hypothèse: parfois trop de données à traiter pour pouvoir charger les données entièrement en mémoire centrale. Le sujet que nous débutons aujourd’hui: ◦ conception d’algorithmes et de structures de données pour travailler avec des données stockées en mémoire secondaire. 7

8 Introduction (suite) Quels sont les principaux défis? 1.Puisque toutes les données n’entrent pas en mémoire centrale, il faut traiter l’information une seule partie à la fois. 2.L’accès à la mémoire secondaire est plus lent que l’accès à la mémoire centrale. Donc, il faut essayer de minimiser le nombre d’accès disque. 8

9 Introduction (suite) Sujets du chapitre 7 ◦ différences entre mémoire centrale et mémoire secondaire, ◦ le fonctionnement des disques durs, ◦ l’utilisation de tampons, ◦ étude de cas: conception d’un algorithme de tri externe (trier des donnée stockées en mémoire secondaire)  16 giga- octets avec 0.5 Mo de mémoire vive en trois passes sur le fichier! Dans les chapitres suivants: ◦ recherche, indexation,… 9

10 LES FICHIERS 10

11 Les fichiers Dans un ordinateur, l’information est stockées sous forme de fichiers, organisés sur le disque. Deux principaux types de fichiers: ◦ fichiers texte: les données sont représentées par des caractères  Ex.: document texte, courriel, … ◦ fichiers binaires: les données sont représentées en binaire  Ex: photographie, film, chanson, etc. 11

12 Fichiers texte vs binaire (suite) Avantage des fichiers texte ◦ interprétable par les humains, Avantages des fichiers binaires ◦ plus compact, ◦ meilleure performance. 12

13 Représentation des nombres Représentation sur plusieurs octets: ◦ little endian: l’octet de poids le plus grand est à l’adresse la plus grande (architecture x86, …). ◦ big endian: l’octet de poids le plus fort est à l’adresse la plus petite (Sparc, Java, réseau, etc.). Exemple: un nombre de 32bits en notation hexacédimale: 0xB0A20405 Adresse 1234 little endian0504A2B0 big endianB0A20405 13

14 Représentation des nombres Exemple: Considérez le nombre 185212997 Ce nombre en hexadécimal: B0A2045 Sur 32 bits ce nombre peut être divisé en 4 octets: B0, A2, 20 et 45 Adresse 1234 little endian0504A2B0 big endianB0A20405 14 B0 = 1011000 A2 = 10100010 04 = 00000100 05= 00000101

15 Plusieurs niveaux d’abstraction ◦ octets / caractère: lettre, nombre, etc.. ◦ champ: un groupe d’un ou plusieurs caractères représentants une information (ex.: adresse d’un individu). ◦ enregistrement: un ensemble de champs regroupés décrivant un objet/élément (ex.: dossier de crédit d’un individu). ◦ fichier: un ensemble d’enregistrements (ex.: dossiers de crédit de tous les clients d’une banque). simple complexe 15

16 Exemple de fichier simple MatriculeNomPrénomProgramme 1234567666RoyLindaAdministration 1234567777SauvéPaulÉducation 1234569999PierreMarcBiologie 1234568888SauvéPaulInformatique ……….… 1234568668FournierJeanInformatique champs enregistrement clé d’accès taille fixe/variable, type 16

17 Les clés Pour trier, chercher des enregistrements. Est-ce que le matricule étudiant est essentiel? Par quoi on pourrait remplacer le matricule étudiant? Possibilité d’avoir plusieurs clés (primaires, secondaires…) MatriculeNomPrénomProgramme 1234567666RoyLindaAdministration ……….… 17

18 LES MÉMOIRES 18

19 Types de mémoires Mémoire centrale ◦ mémoire vive (RAM)  ◦ registres, ◦ cache, ◦ mémoire vidéo… Mémoire secondaire ◦ disques durs (standards, SSD),  ◦ disques USB, ◦ CD, DVD, BluRay … 19

20 Le coût de la mémoire décroît Coût d’un disque dur (gigaoctet / $ USD) http://www.mkomo.com/cost-per-gigabyte 20

21 http://www.singularity.com/charts/page58.html Échelle logarithmique La quantité double tous les 1.5 ans Coût de la mémoire vive (bits / $ USD) Le coût de la mémoire décroît (suite) 21

22 Coût relatif de la mémoire Le rapport de prix entre mémoire vive et disque dur demeure similaire depuis une vingtaine d’années (≈ deux ordres de magnitude). En général: prix(disques optiques) < prix(disques durs) < prix(disques Flash) en termes de coût / mégaoctets. 22

23 Rémanence La mémoire centrale est généralement volatile (le contenu se vide en l’absence de courant électrique). La mémoire secondaire est généralement non volatile. 23

24 Comparaison des temps d’accès En 2007, accès à un octet stocké: ◦ sur un disque dur: environ 9 x 10 − 3 s ( ~ 1 millième de seconde). ◦ en mémoire vive: environ 5 x 10 − 9 s. ( ~ 1 milliardième de seconde). Différence: un facteur d’environ 100,000 à 1,000,000. ◦ Ex.: 20 secondes  plusieurs mois 24

25 Comparaison des temps d’accès Et les disques SSD? Un écart important. En 2011: ◦ mémoire vive: jusqu’à 20 Go / s  accès réellement aléatoire, sans système de fichier ◦ SSD: jusqu’à 200 Mo /s  système de fichier… En somme, une différence d’environ deux ordres de magnitude (100 fois). 25

26 Autres caractéristiques Mobilité: ◦ la mémoire secondaire est souvent amovible. ◦ la mémoire centrale ne l’est pas! Réutilisabilité et durée de vie: ◦ certains supports ne sont réutilisables qu’un certain nombre de fois. ◦ Ex.: les disques compacts. 26

27 Autres caractéristiques (suite) protection: ◦ contre les accidents:  protection contre les chocs, l’eau, pannes d’électricité, etc. ◦ contre les accès interdits:  chiffrement des données,  lecteur de données biométriques intégré, … fiabilité: ◦ temps moyen avant une panne, ◦ redondance, qualité des composants. 27

28 Évolution Depuis 10 ans, ◦ les temps d’accès se sont améliorés de 1 ordre de magnitude. ◦ le rapport capacité de la mémoire / prix a augmentée d’environ 3 ordres de magnitude. Par conséquent, ◦ un logiciel utilisant intensivement la mémoire secondaire doit minimiser le nombre d’accès disque. 28

29 Comment réduire les accès disque? 1. Utiliser des structure de données pour organiser les fichiers en mémoire secondaire, afin de réduire le nombre d’accès (index). 2. Organiser l’information pour qu’à chaque accès disque davantage d’information soit récupérée, en tentant de prévoir ce qui sera utile par la suite. 29

30 Comment réduire les accès disque? 3. Compresser l’information ◦ compromis temps décompression vs temps d’accès ◦ certains algorithmes de compression ne permettent pas un accès aléatoire, ◦ pourrait être intégré au contrôleur d’un disque. ◦ par le passé, certain lecteur de bandes magnétiques le faisait… (accès séquentiel) 4. Algorithmes conçus pour réduire le nombre d’accès disque 30

31 Stockage distribué stockage sur un ou plusieurs ordinateurs en réseau stratégies pour maintenir la cohérence, stratégies pour assurer la fiabilité en cas de défaillance (redondance, etc.) algorithmes distribués, … 31

32 STOCKAGE SUR DISQUE DUR 32

33 Fichiers logiques vs physiques Fichier logique: ◦ un ensemble d’octets décrivant des données. ◦ Ex.: un fichier contenant des millions d’enregistrements décrivant les clients d’une banque. Fichier physique: ◦ les octets tels que représentés sur le disque (généralement des octets non contigus). 33

34 Gestionnaire de fichiers est une composante du système d’exploitation gère la correspondance entre fichiers physiques et logiques: ◦ Écriture d’un octet: position logique  position physique ◦ Lecture d’un octet: position logique  position physique 34

35 Logiciels Système d’exploitation Gestionnaire de fichiers Contrôleur du disque Disque fichiers physiques fichiers logiques 35

36 Contrôleur de disque ensemble de composantes électroniques, géré le fonctionnement du disque: ◦ rotation des disques, ◦ déplacement des tête(s) de lecture, ◦ conversion des signaux électriques lus par les têtes en bits et inversement, ◦ fonctions avancées. 36

37 Types d’accès Accès direct: ◦ le temps pour accéder à n’importe quel octet sur le disque est le même. ◦ pour un disque dur: approximativement le même. Accès séquentiel, ◦ ce n’est pas le cas. Ex.: stockage sur bande magnétique. 37

38 Architecture d’un disques dur disque(s) rigide(s) tournant placé dans un boîtier. tête(s) de lecture déplacée(s) par un bras d’accès pour lire/écrire des données. stockage magnétique Illustration: wikipédia 38

39 Un ou plusieurs disques, empilés un par-dessus l’autre et attachés autour d’une tige tournante. Les disques tournent continuellement en période d’utilisation. Une tête de lecture/écriture est présente pour chaque disque et est fixée à un montant vertical. Architecture d’un disque dur Montant vertical (bras) Têtes de lecture/écriture Tige Disques Les tête(s) ne touchent pas les disques. 39

40 Piste: données accessibles quand une tête est dans une position donnée (distance fixe du centre). Cylindre: ensemble de piste à une même distance. Chaque piste est divisée en secteurs. Chaque secteur est séparé par un espace indiquant la fin du secteur. Architecture d’un disque dur espace entre secteurs bits de données secteurs 40

41 Architecture d’un disque dur Sur les anciens disques, chaque secteur contenait la même quantité de données (la densité de stockage varie, ce qui résulte en le gaspillage d’environ la moitié de la capacité). 41

42 Architecture d’un disque dur Sur les disques modernes, les pistes sont groupées en zones avec des densité radiales différentes afin de maximiser l’usage de l’espace (les secteurs ont la même taille). Par opposition, pour les CDs, les données sont espacées également. Donc, pour conserver le même taux de transfert, la vitesse de rotation varie. 42

43 Accès aux données Temps d’accès: ◦ temps pour préparer le disque à la lecture des données:  positionnement du bras,  rotation, Temps de lecture/écriture: ◦ temps requis pour écrire/lire les données. 43

44 Accès aux données Trois étapes: 1. Positionnement de la tête de lecture à la bonne piste 2. Rotation du disque (ex.: 7200 rpm) jusqu’à ce que les données arrivent sous la tête. (latence de rotation). 3. Transfert des données (écriture ou lecture). Un disque lit un secteur à la fois. 44

45 Accès aux données (suite) Il est désirable qu’un fichier soit stocké sur un nombre minimum de pistes puisque: ◦ Le temps de positionnement est généralement le plus long. ◦ Quand un secteur est lu, il est fort probable que le secteur suivant soit lu. 45

46 Organisation des fichiers sous Windows Les secteurs sont regroupés en groupes (clusters), dont la taille est déterminée par le système d’exploitation (environ 32ko). Un fichier est représenté par un ensemble de groupes sur le disque. Une partie du disque appelée table d’allocation indique ◦ le nombre de secteurs par groupe, ◦ le nombre d’octets par secteurs, ◦ et le premier groupe de chaque fichier. 46

47 Organisation des fichiers sous Windows (suite) Un fichier a donc une taille qui est un multiple de la taille d’un groupe. Pourquoi utiliser des groupes? 47

48 48

49 Sous Unix Pas de groupe. La plus petite unité de lecture/écriture est un secteur (appelé bloc selon le vocabulaire d’Unix). L’information sur l’organisation des fichiers est stockées dans certains blocs du disques appelés i-nodes. 49

50 Fragmentation externe: un fichier n’est pas stocké sur des blocs ou groupes contigus. Cela occasionne une baisse de performance causée par le temps de positionnement des têtes. Problème de la fragmentation 50

51 Fragmentation interne: ◦ lorsque la taille des secteurs n’est pas un multiple de la taille d’un enregistrement. Ex.: secteur de 2048 octets et enregistrement logique de 100 octets ◦ Solution 1: laisser des espaces vides (perte d’espace). ◦ Solution 2: diviser certains enregistrements en deux secteurs (augmente le nombre d’accès disque pour ces enregistrements) Problème de la fragmentation (suite) 51

52 Problème de la fragmentation (suite) Un autre type de fragmentation interne: ◦ lorsqu’un fichier n’utilise pas entièrement l’espace d’un groupe (cluster). ◦ Ex.: fichier de 4097 octets et groupes de 4096 octets. Le choix de la taille des groupes est donc un compromis entre espace gaspillé et organisation davantage séquentielle qui réduit le temps de positionnement. 52

53 Pourquoi l’espace utilisable sur un disque est moindre que l’espace indiqué par le constructeur? 1) Beaucoup d’information sur un disque sert à organiser les données. ◦ table d’allocation des fichiers ◦ entête de secteur (adresse, utilisable ou non?, code de détection d’erreurs) ◦ espace entre secteurs ◦…◦… 2) Fragmentation 53

54 Coût d’accès au disque Le coût le plus important est le temps de positionnement. Ce coût est réduit quand un fichier est lu en ordre séquentiel. Les constructeurs peuvent fournir des données telles que: ◦ temps de passage moyen d’une piste à une autre ◦ temps minimum pour le passage entre deux pistes adjacentes. (ex.: 2 ms): ◦ temps de positionnement moyen à une piste (ex.: 9 ms) 54

55 Calcul de temps d’accès au disque Exemple: Un disque dur à 7200 rpm (8.3 ms par rotation). ◦ 1) Temps de positionnement à la piste. ◦ 2) Latence de rotation. On peut supposer que la moitié du disque va tourner en moyenne pour arriver à la position désirée (donc environ 4.2 ms). ◦ 3) Temps de lecture. Si une piste complète est lue, la lecture prend 8.3 ms. Sinon, le temps de lecture est proportionnel à la partie de la piste qui est lue. Ex.: 1 secteur est lu sur une piste contenant 16000 secteurs. Le temps de lecture d’un secteur est de 1 / 16000 fois le temps de rotation. 55

56 Exercices – le scénario Disque de 16.8 GB avec 10 disques de 1.68 GB. Chaque disque contient 13,085 pistes. Chaque piste après formatage contient 256 secteurs de 512 octets. Le syst. d’exploitation utilise des groupes de 8 secteurs (4 Ko). Il y a donc 32 groupes par piste. Le taux de rotation est 5400 rpm (11.1 ms par rotation). Temps de positionnement à une piste adjacente: 2.2 ms. Temps de positionnement moyen à une piste: 9.5 ms. 56

57 Question 1 Combien de groupes par piste? ◦ 256 secteurs par piste / 8 secteurs par groupe = 32 groupes par piste Quelle quantité d’information peut contenir un groupe? ◦ 8 secteurs x 512 octets = 4096 octets = 4 Ko Quelle quantité d’information peut être stockée sur chaque piste ? 4096 octets x 32 = 131,072 octets = 128 Ko Quelle quantité d’information peut être stockée sur chaque disque? ◦ 128 ko x 13,085 pistes = 1.67 Go 57

58 Question 2 Soit un fichier de 1 méga-octet stocké sur le disque dur décrit précédemment. Le fichier contient 2048 enregistrements de 512 octets. Combien de groupes (clusters) seront nécessaires pour stocker le fichier? ◦ 2048 / 8 = 256 groupes 58

59 Question 3 Quel est le temps pour lire un fichier de 1 Mo divisé en 256 groupes si les données sont stockées séquentiellement sur 8 pistes adjacentes (meilleur cas)? ◦ Temps pour se positionner à la première piste et la lire:  9.5 + (11.1 / 2) + 11.1 = 26.2 ms. ◦ Temps pour les 7 pistes suivantes:  2.2 + (11.1 / 2) + 11.1 = 18.9 ms. ◦ Total : 158.5 ms. 1.5, car cela prend en moyenne une demi rotation pour se positionner au bon endroit sur la piste 59

60 Question 4 Quel est le temps pour lire un fichier de 1 Mo divisé en 256 groupes si tous les groupes sont stockées sur des pistes non adjacentes (pire cas)? ◦ 256 (9.5 + 5.9) = 3942 ms Nombre de groupes contenant le fichier. Temps de positionnement à la piste Latence de rotation + temps pour lire un groupe sachant qu’une piste en contient 256 Ceci illustre l’importance de la défragmentation! 11.1 / 2 + 11.1 * (8 / 256) = 5.9 ms 60

61 Bibliographie Shaffer Clifford, A practical introduction to data structures and algorithm analysis, edition 3.2. http://people.cs.vt.edu/shaffer/Book/ http://people.cs.vt.edu/shaffer/Book/ http://www.cplusplus.com/doc/tutorial/files/ Dupin, S., Le langage C++. 61


Télécharger ppt "INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216,"

Présentations similaires


Annonces Google