Systme de Fichiers - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Systme de Fichiers

Description:

Architecture en couche pour. l'exploitation des m moires persistantes ... bandes magn tiques, ... EEPROM, FlashRam, Fe-RAM, M-RAM, ... P riph riques de m moires ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 25
Provided by: gillesg1
Category:

less

Transcript and Presenter's Notes

Title: Systme de Fichiers


1
Système de Fichiers
  • Principe dutilisation, de gestion et de mise en
    uvre des systèmes de fichier dans les systèmes
    informatiques
  • Par Gilles Grimaud
  • Université des Sciences et Technologies de Lille
  • http//www.lifl.fr/grimaud/Cours

2
Architecture en couche pour lexploitation des
mémoires persistantes
Appli. A
Appli. B
Interface dexploitation C
Système de fichier
Volume
Volume
Volume
Volume
Disque dur -1-
Disque dur -2-
3
Plan
  • Périphériques de mémoires persistantes
  • Virtualisation des disques les volumes
  • Secteur damorce et SuperBloc
  • Système de fichiers
  • Protections selon Unix
  • Manipulation de fichiers et de répertoires en C
  • Fichiers mappés en mémoire

4
Périphériques de mémoires persistantes
  • Mémoire persistante mémoire dont le contenu
    nest pas perdu après un arrêt du système
    informatique.
  • Objets premiers
  • stocker les informations utiles au démarrage dun
    système ouvert
  • stocker des données long terme
  • Sauvegarder des données.
  • Type de supports physiques
  • Disque dur, disques amovibles,
  • Disquettes, Disques opto-magnétique,
  • bandes magnétiques,
  • EEPROM, FlashRam, Fe-RAM, M-RAM,

5
Périphériques de mémoires persistantes
  • Les disques magnétiques (Disques dur)
  • plateaux, cylindres, secteurs
  • 4000 t/mn à 10000 t/mn
  • 512 à 16384 octets stocker sur chaque secteur
  • 20 à 200 secteurs par cylindre
  • 800 à 4000 cylindres (jusquà 12 ms de
    déplacement)
  • 1 à 16 plateaux
  • Adressage par interface ltp,c,sgt
  • Capacité standard en 2002
  • 40 Go,
  • 7200 tours/minute,
  • Déplacement 7 ms,
  • Ultra DMA 100 Mhz gt de 20Mo/s à 40Mo/s

6
Périphériques de mémoires persistantes
  • Interface daccès aux disques
  • Contrôleur de disque IDE interface normées ATA,
    ATA-2,
  • Contrôleur de disque SCSI / SCSI-2

Contrôleurde disque
tampon
?Processeur
Mémoirevive
Bus dadresses
32
Bus de données
32
  • Accès au données persistantes
  • Accès direct au travers dun tampon de
    lecture/écriture
  • DMA (U-DMA) pour copie des données dans/depuis
    la mémoire centrale.

7
Périphériques de mémoires persistantes
  • Exemple interface logicielles daccès au disque
  • Lecture
  • void rdSectors( int device, // plusieurs
    disques sur un même contrôleur int head, //
    n du plateau int cylender, // n du cylindre
    de départ int sector, // n du secteur de
    départ
  • int nsectors, // nombre de secteurs à lire
    unsigned char buffer) // adresse de stockage
    des données lue
  • Ecriture
  • void wrSectors( int device, // plusieurs
    disques sur un même contrôleur int head, //
    n du plateau
  • int cylender, // n du cylindre de départ
  • int sector, // n du secteur de départ
  • int nsectors, // nombre de secteurs à lire
  • unsigned char buffer) // adresse ou sont
    stockées les données à écrire
  • Format
  • void frSectors(int device, int p, int c, int s,
    int nsectors)
  • Dans la pratique, linterface daccès au matériel
    ne saurait se résumer à un appel de fonction. On
    parle de programmation du contrôleur de disque
    (via des registres).

8
Virtualisation des disques les volumes
  • Simplifier/homogénéiser les systèmes dadressage
    des disques ltn plateau,n cylindre,n secteurgt
    devient ?ltidentifiant de volume, n blocgt
  • Multiplexer lusage dun disque unique en
    construisant plusieurs parties dédiées à des
    usages distincts (partitions ou volumes)
  • Gérer les systèmes damorce et les systèmes
    damorce multiples
  • Permettre à dautres supports de stockage
    physique dêtre utilisés en temps que volumes

9
Virtualisation des disques les volumes
  • Exemple interface logicielles daccès au disque
  • Lecture
  • void readBloc( int volume, //
    identifiant de volume visé int bloc, //
    identifiant du bloc dans le volume int
    nbloc, // nombre de bloc concernés unsigned
    char buffer) // adresse de stockage des données
    lue
  • Ecriture
  • void writeBloc( int volume, //
    identifiant de volume visé int bloc, //
    identifiant du bloc dans le volume int
    nbloc, // nombre de bloc concernés unsigned
    char buffer) // adresse ou sont stockées les
    données à écrire
  • Format
  • void formatBloc(int v, int b, int nbloc)
  • Sous cette interface, on peut placer autre chose
    quun contrôleur de disque (EEPROM, liaison
    réseau, ).

10
Virtualisation des disques les volumes
  • Définir un découpage

Boot sector
Super bloc
i-nodes
Disque Dur
Master Boot Record
Data blocs
volume 1
Boot sector
volume 2
FAT
11
Virtualisation des disques les volumes
  • A un bloc correspond un secteur sur une piste du
    disque.
  • Aussi les opérations de lecture/écriture sont
    équivalents. Cependant, le système doit convertir
    une numéro de bloc en n de secteur/n de piste.

MBR
P1
Offset P2
Max Piste
P2
Max Secteur
nBloc Offset P2 Secteur Piste x Max Secteur
12
Démarrage dun système
  • Exécution du code en ROM, se termine par
  • Chargement/Exécution du code en MBR, se termine
    par
  • Chargement/Exécution du code du secteur
    damorce , démarrage du système

MémoireMorte(EEPROM)
Contrôleurde disque
MBR
Boot sector
P.1
tampon
Boot sector
P.2
?Processeur
Mémoirevive
Bus dadresses
32
Bus de données
32
13
Secteur damorce et Secteur damorce maître
0000 FA cli 0001 33C0 xor
ax,ax 0003 8ED0 mov ss,ax 0005 BC007C
mov sp,0x7c00 set stack top at
00007C00 0008 8BF4 mov si,sp SI
7C00 000A 50 push ax 000B 07
pop es 000C 50 push ax 000D 1F
pop ds DS ES 0 000E FB
sti enable interrupts 000F FC
cld 0010 BF0006 mov di,0x600 DI
0600 0013 B90001 mov cx,0x100 256
words ( 512 bytes) 0016 F2A5 repne movsw
copy ourselves to 00000600 0018
EA1D060000 jmp 0x00x61d and jump to the new
location 001D BEBE07 mov si,0x7be SI
07BE 0020 B304 mov bl,0x4 4
entries 0022 803C80 cmp byte si,0x80
check bootable flag 0025 740E jz 0x35 0027
803C00 cmp byte si,0x0 check if valid
entry 002A 751C jnz 0x48 jump if
invalid 002C 83C610 add si,byte 0x10 002F
FECB dec bl 0031 75EF jnz 0x22
try next entry 0033 CD18 int 0x18
no bootable partitions,GOBASIC 0035 8B14
mov dx,si get drive nr, head 0037
8B4C02 mov cx,si0x2 get cyl, sect 003A
8BEE mov bp,si keep ptr to
parttable entry 003C 83C610 add si,byte
0x10 verify next entries 003F FECB dec
bl 0041 741A jz 0x5d 0043 803C00 cmp
byte si,0x0 0046 74F4 jz 0x3c
0048 BE8B06 mov si,0x68b "Invalid
partition table" 004B AC lodsb
print message 004C 3C00 cmp
al,0x0 004E 740B jz 0x5b 0050 56
push si 0051 BB0700 mov bx,0x7 0054 B40E
mov ah,0xe 0056 CD10 int 0x10 0058
5E pop si 0059 EBF0 jmp short
0x4b 005B EBFE jmp short 0x5b hang
system 005D BF0500 mov di,0x5 try 5
times 0060 BB007C mov bx,0x7c00 0063
B80102 mov ax,0x201 0066 57 push
di 0067 CD13 int 0x13 read
bootsector to 00007c00 0069 5F pop
di 006A 730C jnc 0x78 ok,
proceed 006C 33C0 xor ax,ax 006E CD13
int 0x13 0070 4F dec di 0071 75ED
jnz 0x60 try again 0073 BEA306
mov si,0x6a3 "Error loading OS" 0076 EBD3
jmp short 0x4b print message 0078
BEC206 mov si,0x6c2 "Missing operating
system" 007B BFFE7D mov di,0x7dfe 007E
813D55AA cmp word di,0xaa55 check if valid
bootsector 0082 75C7 jnz 0x4b
print message if invalid 0084 8BF5 mov
si,bp SI ptr to parttable entry 0086
EA007C0000 jmp 0x00x7c00 jump to
bootsector
  • Sélection de la partition de démarrage selon
    MS(MBR MS)

14
Virtualisation des disques les volumes
  • Administration des volumes sous Unix Fdisk
  • Plusieurs mode dont mode interactif
  • lister les volumes
  • créer les volumes
  • changer de volume actif (boot de 2nd niveau)
  • terminer / abandonner
  • Sur architecture X86, le secteur damorce
    primaire est celui défini dans
  • /usr/plateform-name/lib/fs/ufs/mboot

15
Système de fichiers
  • Un système de fichiers est un modèle
    dorganisation de linformation stocké dans un ou
    plusieurs volumes.
  • Un système de fichiers définit
  • Un modèle dorganisation de linformation
  • Notion de répertoires et de fichiers,
  • Classement arborescent des répertoires,
  • Notion de flux, accès séquentiels,
  • Un système de liaison de linformation
  • Identification des fichiers par un nom
    symbolique/home/rd2p/grimaud/public_html/index.ht
    ml
  • Accès aux données par lintermédiaire de leurs
    nom symbolique cat home/rd2p/grimaud/public_html
    /index.html

16
Système de fichiers
  • Les volumes, et les disques physiques stockent
    linformation dans des blocs doctets de taille
    fixe. Les systèmes de fichiers gèrent
    lallocation et la libération de ces blocs, ainsi
    que leurs regroupement pour former des supports
    logiques les fichiers.
  • int blocAlloc (int volume)
  • void blocFree (int volume, int bloc)
  • Différentes stratégies pour réaliser ces
    opérations élémentaires dans un volume visant à
  • allouer en séquences des blocs contigus afin de
    réduire les temps de latence daccès aux fichiers
  • permettre la restauration des blocs libres après
    une défaillance matérielle

17
Système de fichiers
  • Mécanisme dallocation FAT

Floppy Allocation Table Table des blocs
utilisés/libres
X 4 octets
Secteur Boot
Magic Number
X 32 octets
SuperBloc (MBR)
Volume Name
X 32 octets
Fomater ID
FAT
X 32 octets
Fomat Date
X 4 octets

FAT Size
X 4 octets
Secteur utilisable
First Dir Block
X 4 octets
CheckSum val

Unused space
Allouer un bloc chercher un 0 dans la FATet le
remplacer par un 1Libérer un bloc Mettre un 0
dans la FAT.
1110000110001011100011101010111011100
1er bloc utilisé
19ème bloc libre
Avec des blocs de 4096 octets il suffit dun bloc
de FAT pour couvrir un volume de 128 Mo
18
Système de fichiers
  • Mécanisme dallocation FreeList

FreeList Liste des blocs libres dans le volume.
X 4 octets
Secteur Boot
Magic Number
X 32 octets
SuperBloc (MBR)
Volume Name
X 32 octets
Fomater ID
Bloc libre
X 32 octets
Fomat Date
X 4 octets
Bloc occupé
FAT Size
X 4 octets
First Dir Block
Bloc libre
X 4 octets
CheckSum val
Bloc occupé
X 4 octets
First Free Block
Bloc libre
Unused space
Bloc occupé
Bloc libre
Bloc occupé
19
Système de fichiers
  • Un fichier est un assemblage de blocs.

Files Data
Files Data
Files Data
Files Data
Files Data
Files Data
20
Système de fichiers
  • Sous Unix, un répertoire est un fichier qui liste
    les noms de fichiers et de répertoires quil
    contient, ainsi que linformation suffisante pour
    pouvoir trouver le fichier/répertoire désigné sur
    le disque. Il peut aussi contenir,
    éventuellement, des informations de droits
    daccès relatif à chaque fichiers/répertoires.
  • Par exemple

Nom de fichier
Droit daccès
Bloc de départ
Nom de fichier
Droit daccès
Bloc de départ



21
Système de fichiers Unix
  • Le mécanisme de liaison symbolique proposé par le
    systeme de fichiers est, pour les systèmes
    dexploitation Unix, le mécanisme de liaison
    préféré, non seulement pour les données
    persistante mais aussi pour la majorité des flux
    (entrées-sorties audio, terminaux textes).
  • Pour les systèmes Unix il nexiste quun seul
    système de fichier qui regroupe lensemble des
    données persistantes manipulées par le système,
    ainsi quun certain nombre de flux propres au
    matériel informatique.
  • Tout nouveau volume structuré en système de
    fichier peut être insérer dans le système de
    fichier Unix par la commande /user/sbin/mount
    /dev/hdb2 /tmp/
  • Tout nouveau support physique manipulable par le
    système est définit par le système comme un
    fichier virtuel du système de fichier
    /dev/hda1 / ufs rw 1 1 /dev/hda2 swap1 ufs
    rw 0 2/dev/hdb1 /usr ufs rw 1 2table de
    définition du système de fichiers définie dans
    /etc/fstab

22
Protections selon Unix
  • Chaque répertoire, en définissant un nom de
    fichier, lui associe un propriétaire, ainsi que
    des droits daccès.
  • trwxrwxrwx 6134octets mel.txt
  • type user group other

?
?
?
23
Manipulation de fichiers et de répertoires en C
  • Chemin daccès (char path)
  • Open(2), truncate(2)
  • Stat(2),chmod(2), fcntl(2)
  • Fichier ouvert (int fd)
  • Fstat(2), fchmod(2),fcntl(2)
  • Lseek(2), flock(2)
  • Read(2),write(2),close(2)
  • Fichier ouvert avec tampon(FILE file)
  • Fopen(3), fdopen(3), freopen(3)
  • Fread(3), fwrite(3)
  • Putc(3), fputc(3)
  • Getc(3), fgetc(3)
  • Puts(3),fputs(3)
  • Printf(3), fprintf(3)
  • Scanf(3), fscanf(3)
  • Fflush(3)
  • Fileno(3)
  • Feof(3)
  • Ferror(3)

24
Fichiers mappés en mémoire centrale
Un exemple de translation de symboles entre
différents mécanismes de liaisons void
mmap((void ) NULL, long mapSize, int
fileAccess, int mapProperty, int
fileid) Exemple dutilisation (avec la
bibliothèque sys/mman.h) void MapFileRW(char
file) void ptr struct stat st if(
stat(file,st) ! 0 (fd open(file, O_RDWR))
lt 0 ) printf("s cannot bee read\n",file)
return NULL ptr mmap((void ) NULL,
(size_t) st.st_size, (int) PROT_READ
PROT_WRITE, (int) MAP_FILE MAP_VARIABLE
MAP_SHARED, (int) fd, (off_t) 0)
close(fd) if( (caddr_t) ptr (caddr_t) -1 )
printf("s cannot map",file) return NULL
return ptr
Write a Comment
User Comments (0)
About PowerShow.com