Mémoire périphérique Stockage primaire: Mémoire principale (RAM)

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Structures de données avancées : Introduction
PHP Accès au système de fichiers
Stockage de données.
TECHNOLOGIE DES ORDINATEURS
Cours n° 2 Les entrées-sorties Biliothèque C++ (iostream) –
Informatique Deug2 Sciences Eco S. Maabout 2004/2005.
C++ 6ème cours Patrick Reuter maître de conférences
Architecture des ordinateurs
Gestion de FICHIERS.
C.
13 – 16 Décembre 2005 Laurence Viry Introduction à MPI MPI_2.
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
FLSI602 Génie Informatique et Réseaux
Architecture de machines La mémoire
CYCLE 1 : Saisir – Afficher – Données Afficher du texte sur lécran 1- Rôle du printf() 2- Syntaxe du printf() 3- Exécution du printf() par le CPU.
Cours de C GTR 2003/ COURS DE PROGRAMMATION EN LANGAGE C ALBERT Arnauld.
ARCHITECTURE DES ORDINATEURS
Le stockage magnétique
CPI 2005 Théorie des systèmes d’exploitation
Architecture de base d’un ordinateur
Système d’Exploitation
FICHIERS.
LES FICHIERS Un exemple : Unix.
Etude de cas : buffer clavier
Les fichiers binaires en C++
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT Structures de données
Stockage Secondaire: Disques
Operations de Base en C++ sur les Fichiers
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Les Fichiers.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Manipulation des fichiers dans le langage VB
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Structures de données IFT-2000 Abder Alikacem Semaine 12 (2 ième partie) Les B-arbres Département d’informatique et de génie logiciel Édition septembre.
Structures de données IFT-2000 Abder Alikacem Semaine 11, 1 ère partie Les B-arbres Département dinformatique et de génie logiciel Édition septembre 2009.
Les fichiers texte en C++
2.1 - Historique Chapitre 2 : Introduction au langage C++
Jean-Michel ILIE - novembre SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.
Les pointeurs L'opérateur &.
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
1 FICHIERS. 2 Les Fichiers  Les "entrées-sorties conversationnelles" échangent des informations entre le programme et l'utilisateur.  Le terme de fichier.
COMPOSANTES INTERNES DE L’UNITE CENTRALE.
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
Entrées / Sorties.
SYSTÈME D’EXPLOITATION I
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
GF-4: Storage Secondaire: Disques
Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza, Claude Timsit Perpignan le 06/10/2006.
Système de gestion fichiers
Mémoire Externe Mircea Stoica XII-R1 Disquette Disque dur
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Algorithmique et langage C
INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216,
Plan Des éléments de programmation en C Des éléments de programmation en C++ Des éléments de programmation en Java.
Plan… -Introduction et motivations : -Qu'est-ce que le traitement de fichiers ? -Terminologie et définitions fondamentales des structures de fichiers :
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Informatique 2A Langage C 4ème séance
Accès aux fichiers en C.
Transcription de la présentation:

Mémoire périphérique Stockage primaire: Mémoire principale (RAM) Stockage secondaire: Périphériques Disques Rubans magnétiques etc.

Lecteur de disque Perche Plateaux Têtes de lecture/écriture Piste Axe

Secteurs Un secteur est l’unité de base des E/S. Secteurs Espaces inter-secteur Bits de données

Secteurs Facteur d’entrelacement (Interleaving factor): Distance physique entre deux secteurs logiquement adjacent sur une piste. Tête Tête

Terminologie Bloc (cluster): Groupe de secteurs. Plus petite unité d’allocation d’un fichier. Souvent entre 512 octets et 4 Ko

Accès disque par seconde Temps de rotation:. À 7200 rpm, une rotation prend 8.3ms. Temps d'accès moyen disque: En moyenne le disque doit faire ½ rotation (4.15ms) Supposons que le temps moyen pour positionner le bras sur la bonne piste est aussi 4.15ms Total: 8.3 ms Nombre d'accès disque par seconde: 120

Accès mémoire vs accès disque Intel Core 2: 27079 MIPS (2.93 GHz) 27 milliards d'instructions par secondes Utilisé avec un disque permettant 120 accès/sec. on a: 225 millions d'instructions = 1 accès disque Même si ces calculs ne sont pas tout à fait exacts, ils donnent une idée de l'ordre de grandeur.

Traitement de fichiers Il est essentiel de minimiser le nombre d’accès disque! 1. Structurer l’information sur le disque pour minimiser le nombre d’accès nécessaires. 2. Minimiser le nombre d’accès futurs. Principe de la localité Un bloc lu sur le disque doit être utilisé optimalement.

Mémoire tampon L’information d’un bloc est mise dans un tampon ou cache. Si le prochain accès est dans le même tampon alors on a pas besoin de faire un accès disque. En général, il y a plus d’une mémoire tampon: au moins une pour la lecture et une pour l’écriture.

Point de vu du programmeur Vision logique des fichiers: Un tableau d’octets (sur Unix et Windows) Un pointeur de fichier indique la position courante. 3 opérations fondamentales: Lire n octets à partir de la position courante (déplacer le pointeur de fichier) Écrire n octets à partir de la position courante (déplacer le pointeur de fichier) Déplacer le pointeur de fichier à une position donnée.

stdio.h #include <stdio.h> FILE* fopen(char* fichier, char *mode); mode r pour lecture, le fichier doit exister w pour écriture, détruit les fichiers existants a pour ajout à la fin r+ pour lecture et écriture, le fichier doit exister w+ pour lecture et écriture, le fichier est créé s'il n'existe pas déjà. int fclose(FILE* fp);

stdio.h int feof(FILE* fp); int fseek(FILE* fp, long deplacement, int origine) origine SEEK_CUR position courante SEEK_END fin du fichier SEEK_SET début du fichier

stdio.h size_t fread(void* tampon, size_t taille, size_t nombre, FILE* fp); size_t fwrite(void* tampon, size_t taille, int fprintf(FILE* fp, char* format[, parametres]); int fscanf(FILE* fp, char* format[, parametres]);

fstream #include <fstream> #include <iostream> //3 classes: ifstream: pour lire dans des fichiers ofstream: pour écrire dans des fichiers fstream: pour lire et écrire dans des fichiers fstream f; f.open("toto.txt", ios::in|ios::out); mode d'ouverture: ios::in // ouverture en lecture ios::out // ouverture en écriture ios::app // ajout en fin de fichier ios::ate // se position à la fin ios:: binary // mode binaire ios::trunc // tronque le fichier à 0

fstream f.seekp(d, ios_base::cur) // placer le curseur put d est le nombre d'octets de déplacement Position de départ: ios_base::cur ios_base::beg ios_base::end f.seekg(d,ios_base::beg) // placer le curseur get

fstream f<<"Bonjour"<<endl; int n; f>>n; char tampon[100]; f.read(tampon, 100); //lire 100 caractères const char tab[]="toto"; f.write(tab, 4); // écrire 4 caractères char c; f.get(c); f.put(c); //Entrées/sorties formatées: f<<"Bonjour"<<endl; int n; f>>n;

surcharger operator<< struct complex{ double imag; double reel; complex(double i, double r):imag(i),reel(r){} }; ostream& operator<<(ostream& f, complex c) { f<<"("<<c.reel<<", "<<c.imag<<")"; return f; }