Gestion des entrées/sorties: organisation d'un disque dur

Slides:



Advertisements
Présentations similaires
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.
Advertisements

Informatique 2A Langage C 4ème séance
1 UNIX AVANCE Yves PAGNOTTE – Janvier – COMMUNICATION INTER PROCESSUS : TUBES.
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Subversion. 2 Subversion : Pour Quoi Faire ? Problèmes de la gestion du code dans un projet – La durée de vie du projet peut être longue : besoin de gérer.
Les profils du SEDA confection de profil avec Agape.
Made with OpenOffice.org 1 Travailler en réseau intranet à l'école Un réseau : pourquoi ? Architecture du réseau Partager un dossier Enregistrer en réseau.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
Cours 08 SYSTÈME DE FICHIERS
NOTIONS INFORMATIQUES : RAPPEL
AMUE – SIFAC Gestion des services fait sur SIFAC WEB
Gestion des fichiers - Niv1
Cahier des clauses techniques particulières
Tovo Rabemanantsoa, Alexis Lahouze, ABUL
Suivi des démarches en ligne via le Gestionnaire de Suivi Services Instructeurs Paris – 29/08/2012.
I- ANALYSE DU BESOIN / Plan
Les commandes du système de fichiers
Objectifs Maîtriser : Un environnement de travail
Séminaire EOLE Dijon octobre 2010
Les Bases de données Définition Architecture d’un SGBD
Initiation aux bases de données et à la programmation événementielle
Accès aux fichiers en C.
Les composants informatiques
Javadoc et débogueur Semaine 03 Version A16.
Utilisation de la clé USB
Principes de programmation (suite)
Réalisation d'agents de surveillance Zephir
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Premiers pas sous Windows XP
Système d’exploitation Windows XP
Elaboré par Ahmed BESSAIDI
Esabora.as Dématérialisation.
Installation des OS par réseaux (PXE)
Création d’un formulaire
3 – Appels système, entrées/sorties et opérations sur les fichiers
D3 – Produire, traiter, exploiter et diffuser des documents numériques
SYSTÈME D’EXPLOITATION I
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Package R Markdown: Un outil pour générer des pages html avec R Studio
Guide Utilisateur. Guide Utilisateur.
BALISE HTML5 <audio> : le son sur une page web
Gestion des fichiers Niv2
Programmation Android Bases De Données, SQL-lite
Programmation Android Première application Android
ESME - Linux et programmation system - A.TALBI
La Station de pompage.
Module 13 : Implémentation de la protection contre les sinistres
Architecture matérielle des ordinateurs
Utiliser PowerPoint dans le cadre des TPE
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Windows 7 NTFS.
Chapitre 3: Les scriptes
LE SYSTEME DE GESTION DE FICHIERS
Reconnaissance de formes: lettres/chiffres
Système de gestion de contenu de sites web
Elles contiennent des informations autre que géométriques
7- Nouveaux services pédagogiques pour les élèves
PROGRAMMATION ET ENSEIGNEMENT
Les différents modes de démarrage de Windows
STREAMS (et fichiers).
Arbre binaire.
Gestion des fichiers - Niv1
Principales différences entre les systèmes d’exploitation MAC OS et Windows Nouveau : on insiste sur la partie formation.
Traitement de TEXTE 2 Stage – Semaine 3.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Gestion des entrées/sorties: organisation d'un disque dur

Gestion des entrées/sorties: organisation d'un i-node (fichier) sur un disque Quelques types de systèmes de fichiers: FAT, VFAT (ancien windows et clés USB) NTFS windows actuel Ext, Ext2, Ext3 : linux UBIFS: linux embarqué ISO9600: CD-ROM NFS, SMB: système de fichiers partagés (réseaux)

Gestion des entrées/sorties: gestion de fichier dans le noyau linux (Appel system)

Gestion des entrées/sorties: organisation d'un file system linux Remarque: La commande "cd" permet de naviguer dans les répertoires et la commande "ls" permet de lister le contenu d'un répertoire. Le répertoire "./" représente le répertoire courant et le répertoire "../" représente le répertoire père Exemple: cd /media/usb ls ./ ls ../ cd /home/toto ls docs cd docs/cours

Gestion des entrées/sorties: montage file system Remarque: /dev/hda1 (Hard Disk 1: premier disque dur) représente le file system principale (root file system). Il contient l'arborescence principale. Sur cette arborescence vient se greffer d'autres file system tels que celui du CD ou une clé USB…les point où on vient greffer un autre file system s'appelle un point de montage Exemple: montage d'une clé USB Lorsqu'une clé USB est insérée sur un PC le driver "usb storage" la reconnais et crée un fichier représentant ce device dans le répertoire /dev (ex: /dev/sda1) Pour monter le système de fichier de la clé il faut: mkdir /media/usb mount -t vfat /dev/sda1 /media/usb

Gestion des entrées/sorties: montage automatique au démarrage Remarque 1: Au démarrage il n'existe que le point de montage racine (/) puis le noyau linux monte le root file system qu'il lui est passé en paramètre par le bootloader. Puis le processus Init analyse le fichier /etc/fstab dans le root file system pour savoir où trouver les autres file system à monter. Dans l'exemple ci-contre chaque ligne représente une commande de montage exécutée par le processus Init. Remarque 2: En général il existe un explorateur de fichier sous linux (pareil que windows). En plus d'explorer les fichiers, son rôle consiste aussi a détecter l'insertion d'un device contenant un file system (clé USB, CD…) reconnaitre sont type et le monter automatiquement (ceci vous évite de taper la commande mount à chaque fois que vous insérer une clé USB avant de pouvoir l'utiliser

Posix, gestion des entrées/sorties: fonction mount()

Posix, gestion des entrées/sorties: Manipulation de répertoires DIR* opendir(const char* chemin): ouverture d'un répertoire int closedir(DIR* repertoire): fermeture d'un répertoire struct dirent* readdir(DIR* repertoire): lecture d'une entrée d'un répertoire void seekdir(DIR* rep, long pos): positionnement dans un répertoire long telldir(DIR* rep): retourne la position courante dans le repertoire int chdir(const char *path): changement de répertoire int mkdir(const char *path, mode_t mode): création d'un répertoire int rmdir(const char *path): suppression d'un répertoire Question : Quelles entrées trouve t on à la position 0 et à la position 1 dans un répertoire ?

Posix, gestion des entrées/sorties: Les attributs d'un fichiers Exemple: La fonction stat: set à récupérer les attributs d'un fichier int stat(const char *path, struct stat *buf); Champs de la structure stat: st_dev, st_ino: périphérique et numéro du fichier st_mode: type et droits d’accès st_nlink: nombre de liens st_uid, st_gid: propriétaire et son groupe st_size: taille du fichier (nombre de caractères) st_atime: date du dernier accès st_mtime: date de la dernière modification st_ctime: date du dernier changement d’attributs

Posix, gestion des entrées/sorties: Manipulation des fichiers int open(const char *path, int oflag [, mode_t mode]): ouverture (possibilité de création) d'un fichier ssize_t read(int fd, void *buf, size_t n): lecture depuis un fichier préalablement ouvert ssize_t write(int fd, void *buf, size_t n): écriture dans un fichiers préalablement ouvert off_t lseek(int fd, off_t offset, int whence): positionnement dans un fichiers

LIBC, entrées/sorties Sur les systèmes de type UNIX, Les fonctions d'entrées/sorties de la bibliothèque standards de la LIBC sont implémentées à l'aide des primitives (fonctions) de l'API posix. Dans le cas de lecture/écriture d'un fichier, les fonctions de la LIBC (fread, fwrite) utilisent une bufferisation des données dans l'espace utilisateur afin de faire le minimum d'appel systèmes (read, write). Ceci à pour effet d'accélérer le traitement. Lorsqu'il faut effectuer des accès à des périphériques autres que le disque (ex: réseaux, ports…), il faut impérativement utiliser les appels posix et non ceux de la LIBC (standard)

LIBC, entrées/sorties: ouverture et fermeture d'un fichier File *file = fopen("nom-de-fichier","mode"); Les différents modes d'accès sont: "r" ouverture d’un fichier texte en lecture "w" ouverture d’un fichier texte en écriture "a" ouverture d’un fichier texte en écriture `a la fin "rb" ouverture d’un fichier binaire en lecture "wb" ouverture d’un fichier binaire en écriture "ab" ouverture d’un fichier binaire en écriture à la fin "r+" ouverture d’un fichier texte en lecture/écriture "w+" ouverture d’un fichier texte en lecture/écriture "a+" ouverture d’un fichier texte en lecture/écriture à la fin "r+b" ouverture d’un fichier binaire en lecture/écriture "w+b" ouverture d’un fichier binaire en lecture/écriture "a+b" ouverture d’un fichier binaire en lecture/écriture `a la fin fermeture : fclose(file);

LIBC, entrées/sorties: Les entrées sorties texte Ecriture formatée: int fprintf(File *file,"chaîne de contrôle",expression-1, ..., expression-n) Lecture formatée: int fscanf(File *file,"chaîne de contrôle",argument-1,...,argument-n) Lecture d'un caractère: int fgetc(FILE* file) Ecriture d'un caractère: int fputc(int caractere, FILE *flot)

LIBC, entrées/sorties: exemple, recopie d'un fichier texte

LIBC, entrées/sorties: Les entrées sorties binaires Lecture : size t fread(void *pointeur, size_t taille, size_t nombre, FILE *file) Ecriture: size t fwrite(void *pointeur, size_t taille, size_t nombre, FILE *file)

LIBC, entrées/sorties: Exemple écriture binaire

LIBC, entrées/sorties: Exemple lecture binaire

LIBC, entrées/sorties: positionnement dans un fichier int fseek(FILE *flot, long deplacement, int origine) Origine peut être l'une de ces constantes : SEEK SET (égale à 0) : d´ebut du fichier SEEK CUR (égale à 1) : position courante SEEK END (égale à 2) : fin du fichier La fonction long ftell(FILE *file) retourne la position courante

LIBC, entrées/sorties: Exemple positionnement dans un fichier

LIBC, entrées/sorties: Exemple positionnement dans un fichier (suite) L’exécution de ce programme affiche à l’écran : position 200 position 160 i = 40 position 0 i = 0 position 24 i = 6 Question : Que manque t il dans le code de ce programme ?