La question de ce module Comment fonctionnent et avec quoi sont fabriqués les systèmes informatiques capables se traiter de l’information avec des algorithmes ?
La réponse de ce module Grâce à trois technologies … Des transistors (pour le processeur et la mémoire vive) => Leçons 1 (Architecture) & 2 (Hiérarchie) Des disques et autres flashes (pour les mémoires mortes) => Leçon 3 (Stockage) Des réseaux (pour les communications entre machines et utilisateurs) => Leçon 4 (Réseaux) … qui demandent un permis de conduire La sécurité informatique => Leçon 5 (Sécurité)
Leçon III.3: Stockage de l’Information Faculté Informatique et Communications Ph. Janson
Mémoire Stockage Où en sommes-nous ? 1 GHz clock vitesse capacité Proc 1 GHz clock Défauts de cache Taille des blocs 1-10ns, 100MB Mémoire on-chip Mémoire Gestion LRU automatique Mémoire off-chip 100ns, 100GB FLASH Performance Capacité 10µs, 1TB Stockage Disque dur Gestion semi-automatique 1ms, 1TB Bande magnétique minutes, 1PB Semi-automatique = transfert automatique après localisation “manuelle”
La raison d’être du stockage La mémoire centrale est Volatile Trop chère Trop petite Le stockage est donc nécessaire Pour retenir toutes les données à coût honorable et à long terme Le transfert des données entre stockage mémoire est semi-automatique Il s’effectue par pages de quelques Ko au lieu de blocs de quelques octets Il est régi par le même principe de localité que le transfert mémoire cache Avec le même succès sur le plan des performances grâce au même algorithme LRU Mais il exige de diriger le système pour localiser les données selon les besoins Où et comment stocker des données de façon à les retrouver?
Plan de la leçon Petit rappel de technologie – flash vs. HDD vs. bande Le besoin de structure dans le stockage des données Types de structures de stockage: séquentielles, hiérarchiques, relationnelles, maillées Identification, localisation, et accès à des données stockées
Petit rappel de technologie Latence Débit Coût ($/Go) Capacité Rétention Accès RAM 1 - 100 ns Go/s 10 Mo - Go NON Aléatoire Flash µs 0.5 Go - To Oui Disques ms 100s Mo/s 0.05 > To avec délai Bandes magnétiques Encore plus lent ! Encore moins cher ! Encore plus grand ! Séquentiel Flash Disques Bandes Accès aléatoire comme RAM Latence de rotation + Accès strictement séquentiel mais par pages comme les disques positionnement du bras => latence de déroulement Tête Mouvement du bras Bras Pistes Secteur 10K RPM
Plan de la leçon Petit rappel de technologie – flash vs. HDD vs. bande Le besoin de structure dans le stockage des données Types de structures de stockage: séquentielles, hiérarchiques, relationnelles, maillées Identification, localisation, et accès à des données stockées
Le besoin de structure dans le stockage des données Données non-structurées = désordonnées, sans aucun ordre particulier Facile à gérer, stocker, transporter Plus difficile à exploiter, explorer, interpréter Dans l’océan de données non-structurées que Google tente d’indexer sur la toile, retrouver des informations sur le professeur de statistique Michael Jordan est un défi Données structurées = ordonnées en listes, piles, hiérarchies, tables, etc. Facile à exploiter, explorer, interpréter Plus difficile à gérer, stocker, transporter Retrouver des informations sur le professeur Michael Jordan dans les bases de données d’un quelconque organisme auquel il est lié est trivial
Le besoin de structure dans le stockage de données Imaginons un disque ou autre support sans aucune structure Comment savoir s’il est plein ou vide? Comment y retrouver une information qu’on cherche? Autant chercher Une épingle dans une botte de foin Une chanson dans une médiathèque sans catalogue Les œuvres d’un compositeur donné dans une médiathèque rangée par interprète Les œuvres d’un interprète non-identifié dont ne connaît que le titre d’une d’entre elle Une chanson dont on ne connaît que quelques notes et paroles mais ni l’auteur ni le titre Même Google a besoin de structure pour retrouver ce qu’on lui demande !!
Principe de base de la structuration des données stockées Catalogues / répertoires des relations structurelles (= “méta-données”) Zone de stockage des “données“ proprement dites et non-structurées
Plan de la leçon Petit rappel de technologie – flash vs. HDD vs. bande Le besoin de structure dans le stockage des données Types de structures de stockage: séquentielles, hiérarchiques, relationnelles, maillées Identification, localisation, et accès à des données stockées
Une médiathèque indexée Dans le monde physique méta-données: données: le catalogue la médiathèque indexé par ordre alphabétique rangée par ordre des titres des albums (p.ex.) chronologique des acquisitions Dans le monde informatique l’index les MP3 séquentiel indexé (structuré) rangés selon la par ordre alphabétique place disponible des titres enregistrés Mais il est difficile de retrouver dans cette médiathèque toutes les oeuvres d’un interprète K1 K2 K3 K4 K5 K6 K7 k8
Une médiathèque hiérarchique / Programmes Utilisateur Mes Photos 2016 Ma Musique Claude François Alexandrie Alexandra Comme d’Habitude Michel Sardou Afrique Adieu Mes Documents E-mails Données Méta-données: catalogues / répertoires structurés (listes liées) Données: Fichiers non-structurés Mais il est difficile de retrouver dans cette médiathèque tous les interprètes d’une oeuvre donnée
Une mediathèque relationnelle Titre Xaut Xint MP3 Afrique Adieu 5 7 Alexandrie Alexandra 2 3 Comme d’Habitude Index Interprètes 1 2 3 C. François 4 5 6 7 M. Sardou 8 9 Index Auteurs 1 2 C. François 3 4 5 M. Sardou 6 Méta-données = catalogues / répertoires tabulaires Mais il est moins direct de trouver si un auteur est aussi interprète ou vice versa Données = fichiers
Une médiathèque de connaissances maillée par des relations entre entités écriture Texte Plus générale mais fonctionnellement équivalente à une base de données relationnelle paroles G. Thibaut Comme d’Habitude titre M. Sardou C. François adaptation composition i n t e r p r é t a t i o n Partition musique F. Sinatra Méta-données = catalogues / répertoires reliés J. Revaux My Way titre E. Presley P. Anka paroles Texte écriture s t o c k a g e Données = fichiers
Le principe de l’algorithme PageRank de Google: Retrouver les meilleures pages dans les mailles de la toile PageRank fournit un classement des pages de la toile contenant les termes recherchés, indexé par ordre de pertinence vis-à-vis de ces termes Si N pages contiennent les termes recherchés PageRank leur confèrent initialement le même rang 1/N PageRank ajuste ensuite le rang de chaque page récursivement en fonction du nombre et de la qualité des liens qui mènent à cette page à partir des autres pages La qualité de chaque lien est une fonction du PageRank de sa page d’origine divisé par le nombre de liens qui en émergent NB: L’algorithme réel est infiniment plus compliqué (et pas entièrement publié)
“Big Data” Comment trouver une épingle dans une botte de foin ? Comment Google ou Facebook pourraient-ils retrouver une oeuvre musicale ou cinématographique dont on ne connaîtrait que quelques mots, mesures et /ou images? La tâche exigerait que Google et autres aient organisé leurs “catalogues / répertoires” pour Identifier L’oeuvre à partir de quelques paroles – “trivial” aujourd’hui La musique à partir de quelques mesures – ça existe et ça se répand Le film à partir de quelques images – on en est plus loin Et retrouver ses auteur(s), compositeur(s), interprète(s), texte / musique / vidéo, date, etc. Possible en plusieurs étapes si des services secondaires ont mis ces informations en ligne Google & Facebook ne fournissent pas ces informations eux-mêmes Google & Facebook recherchent juste des indices clés Google & Facebook ne répondent (pas encore) à des questions en langage naturel telles que “quels sont les titre, paroles / musique / vidéo, auteur, date d’un dessin animé où l’on voit une souris s’essayer à la prestidigitation?” (R: Fantasia, W.Disney, 1940) Ceci est le défi fondamental à l’ère des “Big Data” Retrouver une perle informative dans un océan de données peu / mal structurées
Deep machine learning & intelligence artificielle Qu’est-ce que l’intelligence? Capacités des ordinateurs Mémoire (I), traitement (C), communication (C) Tri, recherche, problem solving, deep machine learning Qu’est-ce que l’intelligence artificielle? Test de Turing Ethique, créativité, intuition, abstraction, empathie, généralisation, sens commun, sens critique? Les robots informatiques vont ils conquérir le monde et dominer l’humanité?
“Big Data” aujourd’hui – En 2011 le super-ordinateur IBM “Watson” a écrasé les deux meilleurs joueurs du monde au jeu TV de “Jeopardy” Who is Jean Valjean ? Longest winner “Highest” winner (NB: Watson n’est PAS connecté à la toile) Mesurez la rapidité de réponse orale de Watson face à la complexité du défi sur ce vidéoclip … http://www.youtube.com/watch?v=SNCCwQ-3Xe4 … où Google aurait trouvé les “réponses” mais est incapable de formuler les “questions” And the winner is … Jennings Rutter
Pause
Plan de la leçon Petit rappel de technologie – flash vs. HDD vs. bande Le besoin de structure dans le stockage des données Types de structures de stockage: séquentielles, hiérarchiques, relationnelles, maillées Identification, localisation, et accès à des données stockées Noms, adresses, et routes Organisation et accès à des fichiers hiérarchiques Organisation et accès à des bases de données relationnelles
Identification, localisation, et accès à des données stockées Structurée ou non, une information n’a de sens que dans son contexte spatio-temporel Paris ne désigne pas la même chose à Troyes (France) au 21e siècle que Paris à la bataille de Troie (actuelle Turquie) en 1250 avant J.C. Pour identifier / distinguer une information parmi d’autres il faut lui donner un nom / identificateur Un répertoire / catalogue est alors nécessaire pour localiser cette information Pour localiser cette information on a besoin de son adresse (de la place qui lui a été attribuée) Un mécanisme d’acheminement est alors nécessaire pour accéder à cette adresse Pour accéder à cette adresse il faut déterminer une route qui y mène
Exemples Identification Localisation Accès EPFL Nom, prénom No. de compte en banque Nom d’utilisateur Adresse e-mail Nom d’une variable Nom d’un fichier Route Cantonale, Ecublens No. de téléphone No. de compte IBAN Adresse e-mail Adresse Internet du serveur Adresse de la variable Adresse du fichier Plan, carte, GPS (Anciennement: no. de tél.) Actuellement route tabulée Code BIC / SWIFT Adresse Internet du serveur Route Internet vers le serveur Logique d’accès à la mémoire primaire au stockage sur disque
Portée spatio-temporelle des noms et adresses Portée spatiale Section ICC GC&SIE Salle CO2 moodle.epfl.ch/…/ICC L12.pdf Adresse Internet mobile Ecublens (FR) No. de téléphone complet moodle.epfl.ch Adresse Internet fixe Vaste Légende: Adresses et noms physiques informatiques Vous Ici Leçon 12.pdf Adresse en mémoire Ecublens Extension téléphonique Leçon 6-12-2016.pdf Adresse sur disque Limitée Portée temporelle Temporaire Pérenne
Résolution des noms et adresses Au vu du nombre de façons de faire référence à des informations Noms et adresses Universels et locaux Permanents et temporaires Les ordinateurs doivent régulièrement traduire une forme en une autre C’est un des rôles essentiels des logiciels des systèmes Les compilateurs traduisent ainsi les noms de variables en adresses mémoire Les systèmes de fichiers et les bases de données gèrent le mouvement des données entre mémoire centrale et stockage périphérique y compris la traduction de noms et adresses de ‘stockage’ (universels et permanents) en équivalents ‘mémoire’ (locaux et temporaires)
Exemple: compilation de noms en adresses de variables Identification par nom Localisation par adresse Accès E.g. nom, prénom Programme source: delta b^2 − 4*a*c No. de téléphone Routage de l’appel Programme objet: Mémoire primaire: charge R, @c mult R, R,@a décale R, 2, gauche écris R, @x charge R, @b mult R, R,@b diff R, R,@x écris R, @delta a b c x delta a @a b @b c @c (x) @x delta @delta Logique d’adressage de la mémoire Table des symboles du compilateur
Système de fichiers hiérarchiques – Exemple Cas concret: pour son examen ICC, Marc Muller doit répondre à un questionnaire en ligne Il lance le logiciel Moodle en cliquant sur un icône ou un lien correspondant Il ouvre le questionnaire en cliquant sur ses pages les unes après les autres (Il répond aux questions en remplissant des champs prévus à cet effet) Quand il a terminé il sauve ses réponses avant de quitter Moodle Que se passe-t-il dans l’ordinateur ? Le navigateur demande d’importer et d’exécuter le logiciel Moodle Moodle demande ensuite d’importer le questionnaire ICC Moodle demande enfin d’exporter les réponses de Marc Questions Comment l’ordinateur retrouve-t-il le logiciel Moodle en mémoire secondaire ? Comment Moodle retrouve-t-il le questionnaire ICC en mémoire secondaire ? Où Moodle peut-il stocker les réponses de Marc en mémoire secondaire ?
Système de fichiers hiérarchiques – Exemple / Programmes Moodle … Données ICC Examen Réponses M_Muller Réponses L’ordinateur recherche parmi tous ses programmes un fichier appelé “Moodle” parmi les données du cours ICC un fichier appelé “Examen” L’ordinateur crée parmi les réponses ICC un fichier appelé “M_Muller” Répertoire Programme Données
Système de fichiers hiérarchiques – Recherche Comment l’ordinateur s’y retrouve-t-il dans tous ces fichiers ? Il sait que tous les programmes se trouvent dans le répertoire /Programmes et y cherche donc /Programmes/Moodle Moodle sait que ses données se trouvent dans le répertoire /Données/Moodle et y cherche donc le cours “ICC” puis” le fichier “Examen” Enfin il sait qu’il doit stocker les réponses de Marc dans un fichier appelé “M_Muller” sous le répertoire “Réponses” / Programmes Moodle … Données ICC Examen Réponses M_Muller
Système de fichiers hiérarchiques – Nomenclature Quels types de noms utilisent les systèmes de fichiers ? Des noms universels (pathnames) /Programmes/Moodle /Données/Moodle/ICC/Examen /Données/Moodle/ICC/Réponses/M_Muller Des noms locaux Moodle Examen M_Muller La traduction entre noms locaux et universels s’opère grâce à la notion de répertoire de référence Nom local nom universel xyz nom du répertoire de référence/xyz / Programmes Moodle … Données ICC Examen Réponses M_Muller
Système de fichiers hiérarchiques – Navigation Les systèmes de fichiers hiérarchiques acceptent aussi la navigation relative à d’autres répertoires de référence Marc Muller pourrait disposer de son propre répertoire de référence appelé “Marc” sous le répertoire “Données” et faire référence à ses réponses sous ../Moodle/ICC/Réponses/M_Muller “..” navigue au répertoire parent Les systèmes de fichiers autorisent aussi le maillage Au lieu de devoir toujours faire référence à ses réponses sous le nom ../Moodle/ICC/Réponses/M_Muller Marc peut définir un nom local à son répertoire “Mes_réponses” comme lien direct à Attention: la suppression ou le déménagement de M_Muller laisseraient le lien “Mes Réponses” ballant / Programmes Données Moodle … Moodle Marc ICC … Examen Réponses Mes réponses … M_Muller
Les systèmes de fichiers hiérarchiques – Plusieurs disques Lorsqu’un ordinateur contient plusieurs disques il peut distinguer les fichiers sur ces différents disques en préfixant leur nom d’une lettre désignant le disque correspondant, p.ex. C:/Données/Moodle/ICC/Réponses/M_Muller et D:/Données/Moodle/ICC/Réponses/M_Muller au cas où on a deux disques Il est aussi possible de définir plusieurs systèmes de fichiers séparés (disques virtuels) sur un même disque physique et de leur faire référence de la même manière E:/Données/Moodle/ICC/Réponses/M_Muller au cas où on a deux partitions Les mêmes systèmes de fichiers hiérarchiques se retrouvent sur la plupart des supports-mémoires portables CD et DVD de données, sticks USB, cartes Flash, etc. F:/Données/Moodle/ICC/Réponses/M_Muller où F: est un stick USB Alternativement des supports-mémoires portables peuvent être “montés” sous un sous-répertoire (p.ex. /mnt) du système de fichiers principal D:/mnt/Données/Moodle/ICC/Réponses/M_Muller C: D: F: E: /mnt/sd_a
Principales commandes d’un système de fichiers Exemple: Unix / Linux mkdir nom de répertoire => crée un répertoire / catalogue rmdir nom de répertoire => supprime un répertoire / catalogue cd nom de répertoire => change de répertoire de référence ls nom de répertoire => affiche le contenu d’un répertoire cp nom de fichier1 nom de fichier2 => copie fichier1 dans fichier2 mv nom de fichier1 nom de fichier2 => renomme fichier1 en fichier2 mv nom de fichier nom de répertoire => déplace un fichier vers un répertoire rm nom de fichier => supprime un fichier ln nom de fichier nom de lien => crée un lien symbolique vers un fichier (une * dans un nom de fichier désigne tous et n’importe quels noms)
Système de fichiers hiérarchiques – Accès au disque Comment l’ordinateur retrouve-t-il l’adresse de stockage d’un fichier sur disque à partir du nom de ce fichier ? Chaque répertoire contient les adresses de stockage de tous ses descendants répertoires et fichiers / Programmes Moodle … Données ICC Examen Réponses M_Muller
Gestion des noms et adresses en mémoire et stockage Mémoire centrale Méta-données en mémoire Page 1 Page 3 Page 4 Défaut de page Blocs et pages sont différents de taille mais fonctionnellement équivalents aux blocs de mémoire de la leçon III.2 Zone répertoire Zone de données Méta-données sur disque Bloc 2 Bloc 1 Bloc 3 Bloc 4
Les systèmes de fichiers hiérarchiques – Format Avant de pouvoir utiliser un disque il faut le formater c’est-à-dire y pré-enregistrer une structure propre à recevoir données et méta-données A part les systèmes de fichiers classiques de Unix, Linux, Windows (FAT et NTFS) il existe une quantité d’autres formats aux implémentations les plus diverses (voir http://en.wikipedia.org/wiki/Comparison_of_file_systems ) Un support mémoire formaté et enregistré pour un ordinateur donné n’est pas nécessairement compatible (lisible et utilisable) sur un autre ordinateur Tout dépend si cet autre ordinateur supporte / reconnaît le système de fichiers enregistré Indépendamment du format du système de fichiers Le format des fichiers eux-mêmes peut varier suivant leur contenu Code exécutable Données (texte, son, images, photos, vidéo, etc.) Mélange multimédia de code et / ou données de formats différents
Bases de données relationnelles Le scénario de Marc Muller en examen est typique de beaucoup d’applications qui traitent des données séquentielles et peu volumineuses (textes de questions & réponses) La notion de fichiers répond parfaitement aux besoins de ce genre d’applications Beaucoup d’autres applications traitent de gros volumes de données hautement structurées des données de production industrielle, d’achats et de ventes, de transactions financières, de gestion de personnel, etc. Le traitement de telles données est complexe et sujet à des contraintes strictes Les logiciels de bases de données déchargent les applications de ces complexités et contraintes en gérant pour elles ces données volumineuses et complexes
Organisation de bases de données en enregistrements Le(s) fichier(s) contenant les données sont divisés en enregistrements structurés en champs p.ex. nom, prénom, adresse, no. de tél., no. de matricule, date & lieu de naissance, salaire, etc. Un cas particulier mais très fréquent est celui d’enregistrements de taille fixe (L) Dans ce cas le kième enregistrement est situé à l’adresse B + (k-1)*L E1 E2 E3 E4 L1 L2 L3 L4 Adresse de base (B) Adresse = B+L1+L2
Principales opérations relationnelles en SQL CREATE crée une table CREATE TABLE Admin( Nom VARCHAR(50), Prénom VARCHAR(50), SCIPER INT(6), Ddn DATE, Adr TINYTEXT, Tel CHAR(16); PRIMARY KEY (Nom) ); Résulte en la table Admin ci-contre: Relation Admin Nom Prénom SCIPER DdN Adr Tel
Principales opérations relationnelles en SQL INSERT insère des lignes dans une table INSERT INTO Admin (Nom, Prénom, No, DdN, Adr, Tel) VALUES (‘Muller’, ‘Marc’, ‘123456’, ‘1993-02-01’, NULL, NULL); Résulte en la relation Admin suivante: Relation Admin Nom Prénom SCIPER DdN Adr Tel Muller Marc 123456 1993-02-01
Principales opérations relationnelles en SQL UPDATE modifie des lignes dans une table UPDATE Admin SET Adr = ‘xyz’, Tel = ’12 34 56 78’ WHERE Nom = ‘Muller’ AND Prénom = ‘Marc’; Résulte en la relation Admin suivante: Relation Admin Nom Prénom SCIPER DdN Adr Tel Muller Marc 123456 1993-02-01 xyz 12 34 56 78
Principales opérations relationnelles en SQL SELECT interroge sélectivement le contenu des tables Relation Acad Relation Admin Etudiant No. Sem. Cours1 Cours2 Cours3 T.Meyer 345678 SV B3 … 5 M.Muller 123456 I&C B1 5.5 P.Godat 567890 4.5 Nom Prénom SCIPER DdN Adr Tel Godat Pierre 567890 … abc Meyer Tim 345678 Muller Marc 123456 xyz SELECT Nom, Prénom, Adr (SELECT * demanderait tous les champs) FROM Acad JOIN Admin ON Acad.No = Admin.SCIPER WHERE Sem = I&C B1 AND Cours2 > 4 ORDER BY Nom; Renvoie comme résultat la liste des étudiants I&C B1 ayant réussi le Cours 2 Godat Pierre abc Muller Marc xyz
Principales opérations relationnelles en SQL MERGE combine deux tables en une (à coups d’UPDATEs et d’INSERTs) Un MERGE des deux tables précédentes résulte en la table suivante: Relation Intégrale Nom Prénom Etudiant SCIPER DdN Adr Tel Cours1 Cours2 Cours3 Godat Pierre P.Godat 567890 … abc 4.5 Meyer Tim T.Meyer 345678 5 Muller Marc M.Muller 123456 xyz 5.5
Principales opérations relationnelles en SQL DELETE supprime des lignes dans une table DELETE FROM Intégrale WHERE SCIPER = ‘567890’; Résulte en la relation Intégrale suivante: NB: TRUNCATE / DROP vident / suppriment une table Nom Prénom Etudiant SCIPER DdN Adr Tel Cours1 Cours2 Cours3 Meyer Tim T.Meyer 345678 … 5 Muller Marc M.Muller 123456 xyz 5.5