SlideShare une entreprise Scribd logo
1  sur  76
Systèmes
d'exploitation
Systems de fichiers
Ken Thompson
• Américain
• UC Berkeley
• Auteur du langage Go
• Auteur du système
UNIX
2
Contenu
• Partition
• Fichier
• Directeur
• Fichiers Speciaux
3
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 6
• 6.1
• 6.2
• Operating Systems Concepts
– Chapitre 11
4
La Mémoire RAM
• tableau d'octets
• petit taille
• volatile
5
Le Disk
• persistent
• grand taille
• tableau de blocs
6
System de fichiers
• transforme le tableau de blocs en fichiers et
dossiers
• structures de données utilisées par le système
d'exploitation
7
Operations avec le disc dur
8
disc
partitionnement
formater monter sauvegarde
fsck usage
PARTITION
9
Partitionnement
• Le processus de partitionnement d'une
partition
• Outiles
– fdisk/gdisk
– GParted, Partition Magic
10
Partition
• Une zone continue sur le disc dur
• Contiens un system de fichiers
11
Types des partitions
• MBR - Master Boot Record)
– partitions primaires (maxim 4)
– partitions étendues – peut remplacer l'une des
partitions primaires
– partitions logiques – sont dans la partition étendue
• GPT - GUID Partition Table)
– sans limite de partitions
– chaque partition du disque a un identifiant GUID
unique généré de manière aléatoire
– chaque partition du globe aura son propre identifiant
12
MBR
13
GPT
14
SYSTEM DE FICHIERS
15
System de fichiers
Applications
• Directeurs et
fichiers
Système
d'Explotation
• Structures de
données
16
Exemples de systems de fichiers
• ext3
• ReiserFS
• HFS
• NTFS
• FAT32
• ISO9660
• UDF
17
L’appel de system
Utilisateur
Application
Meta-
Information
System de
Fichier
Pilot
Disc
18
System de fichiers – mots
Applications
• Nom de fichier
• Attributs
• Descripteur de fichier
• Fichier
• Curseur
Système d'Explotation
• bloc
• superbloc
• inode
• dentry
• allocation
• bitmap
• VFS
19
Monter le système de fichiers
• Lors du démarrage de SE, le système de fichiers
racine est chargé à partir du disque.
• Plus tard, d'autres systèmes de fichiers peuvent
être montés (mount)
• Monter un nouveau système de fichiers
– Ajout de système de fichiers à un point spécifique de
la hiérarchie de montage actuelle
• Windows: C:, D: etc
• Unix: il n'y a qu'un seul répertoire racine
20
UNIX
21
mount("/dev/hda5", "/mnt/hda5", "ntfs", ...)
SetVolumeMountPoint("C:mycd", "D:");
Monter le système de fichiers
22
FICHIER
23
Fichier
• le unité de base du système de fichiers
• en SE, il y a deux abstractions de base
– fichier - abstraction pour l’information / les données
– processus – abstraction pour des actions
• POSIX
– toutes les choses sont de fichiers
• clavier, mémoire, disc …
24
Types de fichiers
• fichiers simple – regular files
• directeurs – directories
• lien (symbolique) – hard/soft links
• dispositifs de type caractère – char devices
• dispositifs de type bloc – block devices
• pipes/FIFOS
• sockets UNIX
• Comment trouvez-vous le type d'un fichier sous
UNIX?
25
Fichiers Simple
• binaire, text
• extension
• structure
– enregistrement
– array des octets
• attributs
– droits
– taille
– propriétaire
– horodatage
26
Structure de fichier
27
a) array des octets b) enregistrement c) arbre
Fichier binaire
28
a) fichier executable b) archive
Operations avec les fichiers
• création
• ouverture
• lecture
• écriture
• positionnement dans le fichier
• tronquer
• fermeture
• suppression
29
Creation
• shell
touch /path/to/file
toute commande qui écrit dans un fichier le crée
• ISO/ANSI C
FILE *f = fopen ("/path/to/file", "rw");
• POSIX
int fd = open ("/path/to/file", O_CREAT | O_EXCL, 0644);
• Windows
HANDLE fileHandle = CreateFile ("/path/to/file", ...,
CREATE_NEW);
30
Ouverture
• ISO/ANSI C
FILE *f = fopen("/path/to/file", "rt");
• POSIX
int fd = open("/path/to/file", O_RDONLY);
• Windows
HANDLE f = CreateFile("/path/to/file", ...,
OPEN_EXISTING);
31
Fichier Ouvert
• identification
– Windows: poignée
– POSIX: descripteur
– pourquoi pas un nom?
• position
– Windows: pointeur de fichier
– Linux: curseur de fichier
• droits d'ouverture
• compteur d'utilisation (file-open count)
32
Descripteur de fichier
• plus de descripteur peut correspondre aux même fichier
• chaque processus a une table de descripteurs de fichiers
• POSIX
– un entier identifiant une instance de fichier ouvert dans un
processus
– descripteurs spéciaux
• 0 (stdin), 1 (stdout), 2 (stderr)
• ISC C
– File
• Windows
– HANDLE
33
Table de descripteur de fichier
34
Lecture
• stocker des informations dans un tampon
• avance du curseur de fichier
• ISO C
// reads size * times bytes
n_items = fread(buffer, size, items, f);
• Unix
// reads maximum size bytes
// use only within a loop
n_read = read(fd, buffer, size);
• Windows
ReadFile(fHandle, buffer, bytesToRead,
&bytesRead, NULL);
35
Ecriture
• écrire des informations à partir d'un tampon
• avance du curseur de fichier
• ISO C
// writes size * times bytes
n_items = fwrite(buffer, size, items, f);
• Unix
// writes maximum size bytes
// use only within a loop
n_write = write(fd, buffer, size);
• Windows
WriteFile(fHandle, buffer, bytesToWrite,
&bytesWritten, NULL);
36
espace utilisateur
Espace noyau
matériel disc
buffer kernel buffer kernel
buffer user buffer user
libc (sans tampon)
read/ReadFile
sys_read/NtReadFile sys_write/NtWriteFile
write/WriteFile
Flux de lecture et ecriture
37
Curseur de fichier
• changements à lire et à écrire
• initialisation à l'ouverture
• mouvement de curseur de fichier
• ISO C
fseek(f, offset, SEEK_SET);
• Unix
lseek(fd, offset, SEEK_SET);
• Windows
SetFilePointer(fHandle, distanceToMove,
NULL, FILE_BEGIN);
38
Types des données
• Utilisateur
– Nom de fichier
• Application
– Descripteur de fichier
• Système d’Explotation
– table de descripteur
– structure de données pour le fichier ouverte
– structure de données pour le fichier sur de disc
39
Espace
utilisateur
Espace noyau
Fichier sur le discinstance de fichier ouvert
struct file
Pointeur
fichier
utilisateur
droits
inode
struct
inode
droits
taille
bloc
pointeurs
uid
gid
Fichier ouverte
descripteur
Types des donnees
40
Duplication de descripteur
• dupliquer un descripteur dans un autre descripteur
• les deux descripteurs fonctionnent sur le même fichier
• POSIX
newfd = dup(oldfd);
dup2(oldfd, newfd);
• Windows
DuplicateHandle(...);
SetStdHandle(...);
41
Espace
utilisateur
Espace noyau
Fichier sur le discinstance de fichier ouvert
struct file
Pointeur
fichier
utilisateur
droits
inode
struct
inode
droits
taille
bloc
pointeurs
uid
gid
Fichier ouverte
descripteur
Types des données
dup()
descripteur
42
Espace
utilisateur
Espace noyau
Fichier sur le discinstance de fichier ouvert
struct file
Pointeur
fichier
utilisateur
droits
inode
struct
inode
droits
taille
bloc
pointeurs
uid
gid
Fichier ouverte
descripteur
Types des données
descripteur
descripteur
open() struct file
Pointeur
fichier
utilisateur
droits
inode
43
Tronquer
• supprimer le contenu du fichier
• le curseur de fichier est mis à size
• un fichier peut être ouvert et tronqué
// size is 0
open("/path/to/file", O_RDWR | O_TRUNC);
• un fichier peut être ouvert et tronqué
truncate("/path/to/file", size);
• un fichier peut être tronqué après ouverture
ftruncate(fd, size);
SetEndOfFile(hFile); // Windows
44
Fermer
• l'entrée de la table de descripteur est supprimée
• ISO C
fclose (f);
• POSIX
close(fd);
• Windows
CloseHandle(fHandle);
45
Exemple - Lire un fichier
int main () {
int f = open ("data.bin", O_RDONLY);
if (f >= 0) {
// ...
for (part = 0; part < PARTS; part++) {
bytes = read (f, temp_buffer, BUFFER_SIZE);
if (bytes > 0)c{
// ...
}
}
close (f);
}
else
{
perror ("open");
abort ();
}
return 0;
}
46
Accès simultané au un fichier
• Lectures multiples
– chacun lit le fichier indépendamment (chacun a
un curseur différent)
• Une lecture, Une écriture
– ce n'est pas exactement ce que le premier va lire
• Plusieurs écritures
– l'ordre dans lequel les données seront écrites est
inconnu
47
Accès simultané au un descripteur
• le noyau maintient une structure de données
unique pour les deux descripteurs
– un seul curseur de fichier
• les opérations sont sérialisées en utilisant
cette structure
– les résultats des opérations sont cohérents
– juste parce que nous ne connaissons pas l'ordre
dans lequel ils ont été exécutés
48
Supprimer
• supprimer le fichier du système de fichiers
• shell
rm file.txt
• ISO/C
remove("file.txt");
• POSIX
unlink("file.txt");
• Windows
DeleteFile("file.txt");
49
Redirection
• shell
echo “message” > file_out.txt
grep “word” < file_in.txt
• POSIX
fd = open ("file_out");
close (1);
dup2 (fd, 1);
close (fd);
50
NULL
stdout stdout
file.txt
stdout
file.txt
stdoutNULL
file.txt
stdout
NULL
file.txt
open(“file.txt”) close(1); dup2(fd, 1) close(fd)
Redirection
51
Redirection
52
X
.txt
PERMISSION POUR UN FICHIER
53
UNIX
• 3 types des entités
– Utilisateur (user)
– Group (Group)
– Autres (Others)
• 3 types des premisions
– Lire (Read)
– Ecrire (Write)
– Executer (Execute)
54
UNIX
• Permisions = chaine de 9 caracteres
– 3 pour l’utilisateur
– 3 pour le group
– 3 pore les autres
55
UNIX
56
UNIX
• Sur bits:
– r w - r- - r - - corresponde a 110100100
– r w x r- x - - - corresponde a 111101000
– r w - rw- - - - corresponde a 110110000
• Octal:
– r w - r- - r - - corresponde a 644
– r w x r- x - - - corresponde a 750
– r w - rw- - - - corresponde a 660
57
Gestion de permissions
• UNIX:
– Entités: User, Group, Others
– Types: Read, Write, Execute
// mode in octal
chmod("/path/to/file", 0644);
• Windows: Listes d’acces
– ACL: access control lists
– Types: lecture, écriture, listage, croisement, création de sous-fichiers,
etc.
– Permissions seulement sur NTFS, pas sur FAT32
SetNamedSecurityInfo(...);
58
DIRECTEURS
59
Directeurs
• fichiers spéciaux
• contient une liste de fichiers et de répertoires
• entrées spéciales
– . -> directeur courent
– .. -> directeur parent
60
Chemin du fichier
• chaînage des entrées dans le système de
fichiers
• tout système de fichiers a un répertoire racine
(/ sous Unix)
• séparateur de chemin
– Windows: 
– UNIX: /
• chemin absolu
• chemin relatif
61
Exemple
62
Operations avec les directeurs
• création (mkdir)
• création d’un entrée (touch, mkdir, ln, mknod)
• suppression d’un entrée (rm, rmdir, unlink)
• suppression (rmdir)
• lister le contenu (ls)
• entrée dans un directeur (cd)
• renommer une entrée (mv)
63
Operations avec les directeurs
UNIX
// make directory
int mkdir(const char *path, mode_t mode);
// change directory
int chdir(const char *path);
// remove directory
int rmdir(const char *path);
64
Operations avec les directeurs
UNIX
// open directory
DIR * opendir(const char *filename);
// read a directiory entry
struct dirent * readdir(DIR *dirp);
// rewind directory
void rewinddir(DIR *dirp);
// close directory
int closedir(DIR *dirp);
65
Exemple – listez un directeur
int main ()
{
DIR *dir;
struct dirent *entry;
dir = opendir("/");
if (dir != NULL)
{
do
{
entry = readdir(dir);
if (entry != NULL) printf ("%sn", entry->d_name);
} while (entry != NULL);
closedir (dir);
}
else
{
perror("opendir");
abort ();
}
return 0;
}
66
Operations avec les directeurs
Windows
• HANDLE
• CreateDirectory
• RemoveDirectory
• SetCurrentDirectory
• FindFirstFile
• FindNextFile
• FindClose
67
FICHIERS SPECIAUX
68
Fichiers Speciaux
• liens (links) (ln, link)
• dispositifs de type caractère (mknod, mknod)
• dispositifs de type bloc (mknod, mknod)
• FIFO (mknod/mkfifo, mknod/mkfifo)
• sockets UNIX (N/A, socket/mknod)
69
Liens
• Pointeur vers un fichier existent
• Types
– symbolique (soft link, similaire avec le shortcut)
– hard (le même fichier, nom diffèrent)
$ ls -l /usr/bin/cc
lrwxrwxrwx 1 root root 20 Oct 6 2005 /usr/bin/cc -> /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 Apr 22 2007 /etc/alternatives/cc -> /usr/bin/gcc
70
Fichier dispositif
• Type caractère
– Access séquentiel
– Dispositifs serial
• Keyboard, mouse etc
$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Feb 26 2005 /dev/ttyS0
• Type bloc
– Access aléatoire
– Lire en bloc
• Disc, usb, …
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Feb 26 2005 /dev/sda
71
Socket UNIX et FIFO
• Les sockets Unix
– communication inter-processus - communication locale
– Ils ont une entrée associée au système de fichiers
# ls -l /var/run/cups/cups.sock
srwxrwxrwx 1 root root 0 2008-03-03 11:10 /var/run/cups/cups.sock
• FIFO
– pipe avec nom
– un processus écrit, un autre processus lit
$ ls -l mypipe
prw-r--r-- 1 razvan razvan 0 2008-03-03 21:14 mypipe
72
E/S Standard vs E/S bas niveau
• E/S Standard– fopen, fread, fwrite, fclose
– E/S Tamponne
– problème de double tampon
– accès de haut niveau pour travailler avec des chaînes
• E/S bas niveau– open/CreateFile, read/ReadFile
– encapsulation d'appels système
– la plus grande flexibilité
– ne sont pas portable
73
Systems de fichiers virtuelles
• les systèmes de fichiers virtuels n'ont pas de support
physique
– procfs monté en /proc
– devfs monté en/dev
– ou sont les données?
• entrées de fichier spécialisées (fichiers sans support
physique - généralement des périphériques char)
– /dev/null
– /dev/zero
– /dev/urandom
74
Mot clés
• Partition
• Montage
• System de fichiers
• Fichier
• Directeur
• Lien
• Dispositif caractère
• Dispositif bloc
• Socket UNIX
• FIFO
• Permissions
• Chemin de fichier
• Absolue
• Relatif
• MBR
• GPT
• E/S Standard
• E/S Bas Niveau
75
Questions
76

Contenu connexe

Tendances

Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé
Alphorm
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskills
Pierre E. NEIS
 

Tendances (20)

Concevoir un Tableau de Bord de Projet en 5 étapes
Concevoir un Tableau de Bord de Projet en 5 étapesConcevoir un Tableau de Bord de Projet en 5 étapes
Concevoir un Tableau de Bord de Projet en 5 étapes
 
Gestion des documents
Gestion des documentsGestion des documents
Gestion des documents
 
De l'expression de besoins vers spécifications de la solution
De l'expression de besoins vers spécifications de la solutionDe l'expression de besoins vers spécifications de la solution
De l'expression de besoins vers spécifications de la solution
 
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
 
La GED pour les nuls
La GED pour les nulsLa GED pour les nuls
La GED pour les nuls
 
ISPF Recent and Coming Enhancements
ISPF Recent and Coming EnhancementsISPF Recent and Coming Enhancements
ISPF Recent and Coming Enhancements
 
Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 
Procédure alfresco word
Procédure alfresco wordProcédure alfresco word
Procédure alfresco word
 
Ubuntu est il un système sécuritairement sain PDF
Ubuntu est il un système sécuritairement sain PDFUbuntu est il un système sécuritairement sain PDF
Ubuntu est il un système sécuritairement sain PDF
 
Retour d'expérience Power BI
Retour d'expérience Power BIRetour d'expérience Power BI
Retour d'expérience Power BI
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Présentation ERP
Présentation ERPPrésentation ERP
Présentation ERP
 
Cours crm scm erp vision globale v1.0
Cours crm scm erp vision globale v1.0Cours crm scm erp vision globale v1.0
Cours crm scm erp vision globale v1.0
 
Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)
 
TP GLPI
TP GLPITP GLPI
TP GLPI
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 
Implementer ITIL
Implementer ITILImplementer ITIL
Implementer ITIL
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskills
 

Similaire à SdE 3 - Systemes de fichiers

Frances2
Frances2Frances2
Frances2
UGMEX
 
03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier
Noël
 

Similaire à SdE 3 - Systemes de fichiers (20)

SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdf
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux
Chapitre 2 Linux
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
Couse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdfCouse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdf
 
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdfCours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
 
cour administration système.pptx
cour administration système.pptxcour administration système.pptx
cour administration système.pptx
 
Cours_OS 1.pptx
Cours_OS 1.pptxCours_OS 1.pptx
Cours_OS 1.pptx
 
Frances2
Frances2Frances2
Frances2
 
SdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersSdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de Fichiers
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Mouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horairesMouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horaires
 
03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 

Plus de Alexandru Radovici

Plus de Alexandru Radovici (20)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 

Dernier

Dernier (11)

CALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONCALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 

SdE 3 - Systemes de fichiers

  • 2. Ken Thompson • Américain • UC Berkeley • Auteur du langage Go • Auteur du système UNIX 2
  • 3. Contenu • Partition • Fichier • Directeur • Fichiers Speciaux 3
  • 4. Bibliographie pour aujourd'hui • Modern Operating Systems – Chapitre 6 • 6.1 • 6.2 • Operating Systems Concepts – Chapitre 11 4
  • 5. La Mémoire RAM • tableau d'octets • petit taille • volatile 5
  • 6. Le Disk • persistent • grand taille • tableau de blocs 6
  • 7. System de fichiers • transforme le tableau de blocs en fichiers et dossiers • structures de données utilisées par le système d'exploitation 7
  • 8. Operations avec le disc dur 8 disc partitionnement formater monter sauvegarde fsck usage
  • 10. Partitionnement • Le processus de partitionnement d'une partition • Outiles – fdisk/gdisk – GParted, Partition Magic 10
  • 11. Partition • Une zone continue sur le disc dur • Contiens un system de fichiers 11
  • 12. Types des partitions • MBR - Master Boot Record) – partitions primaires (maxim 4) – partitions étendues – peut remplacer l'une des partitions primaires – partitions logiques – sont dans la partition étendue • GPT - GUID Partition Table) – sans limite de partitions – chaque partition du disque a un identifiant GUID unique généré de manière aléatoire – chaque partition du globe aura son propre identifiant 12
  • 16. System de fichiers Applications • Directeurs et fichiers Système d'Explotation • Structures de données 16
  • 17. Exemples de systems de fichiers • ext3 • ReiserFS • HFS • NTFS • FAT32 • ISO9660 • UDF 17
  • 19. System de fichiers – mots Applications • Nom de fichier • Attributs • Descripteur de fichier • Fichier • Curseur Système d'Explotation • bloc • superbloc • inode • dentry • allocation • bitmap • VFS 19
  • 20. Monter le système de fichiers • Lors du démarrage de SE, le système de fichiers racine est chargé à partir du disque. • Plus tard, d'autres systèmes de fichiers peuvent être montés (mount) • Monter un nouveau système de fichiers – Ajout de système de fichiers à un point spécifique de la hiérarchie de montage actuelle • Windows: C:, D: etc • Unix: il n'y a qu'un seul répertoire racine 20
  • 22. mount("/dev/hda5", "/mnt/hda5", "ntfs", ...) SetVolumeMountPoint("C:mycd", "D:"); Monter le système de fichiers 22
  • 24. Fichier • le unité de base du système de fichiers • en SE, il y a deux abstractions de base – fichier - abstraction pour l’information / les données – processus – abstraction pour des actions • POSIX – toutes les choses sont de fichiers • clavier, mémoire, disc … 24
  • 25. Types de fichiers • fichiers simple – regular files • directeurs – directories • lien (symbolique) – hard/soft links • dispositifs de type caractère – char devices • dispositifs de type bloc – block devices • pipes/FIFOS • sockets UNIX • Comment trouvez-vous le type d'un fichier sous UNIX? 25
  • 26. Fichiers Simple • binaire, text • extension • structure – enregistrement – array des octets • attributs – droits – taille – propriétaire – horodatage 26
  • 27. Structure de fichier 27 a) array des octets b) enregistrement c) arbre
  • 28. Fichier binaire 28 a) fichier executable b) archive
  • 29. Operations avec les fichiers • création • ouverture • lecture • écriture • positionnement dans le fichier • tronquer • fermeture • suppression 29
  • 30. Creation • shell touch /path/to/file toute commande qui écrit dans un fichier le crée • ISO/ANSI C FILE *f = fopen ("/path/to/file", "rw"); • POSIX int fd = open ("/path/to/file", O_CREAT | O_EXCL, 0644); • Windows HANDLE fileHandle = CreateFile ("/path/to/file", ..., CREATE_NEW); 30
  • 31. Ouverture • ISO/ANSI C FILE *f = fopen("/path/to/file", "rt"); • POSIX int fd = open("/path/to/file", O_RDONLY); • Windows HANDLE f = CreateFile("/path/to/file", ..., OPEN_EXISTING); 31
  • 32. Fichier Ouvert • identification – Windows: poignée – POSIX: descripteur – pourquoi pas un nom? • position – Windows: pointeur de fichier – Linux: curseur de fichier • droits d'ouverture • compteur d'utilisation (file-open count) 32
  • 33. Descripteur de fichier • plus de descripteur peut correspondre aux même fichier • chaque processus a une table de descripteurs de fichiers • POSIX – un entier identifiant une instance de fichier ouvert dans un processus – descripteurs spéciaux • 0 (stdin), 1 (stdout), 2 (stderr) • ISC C – File • Windows – HANDLE 33
  • 34. Table de descripteur de fichier 34
  • 35. Lecture • stocker des informations dans un tampon • avance du curseur de fichier • ISO C // reads size * times bytes n_items = fread(buffer, size, items, f); • Unix // reads maximum size bytes // use only within a loop n_read = read(fd, buffer, size); • Windows ReadFile(fHandle, buffer, bytesToRead, &bytesRead, NULL); 35
  • 36. Ecriture • écrire des informations à partir d'un tampon • avance du curseur de fichier • ISO C // writes size * times bytes n_items = fwrite(buffer, size, items, f); • Unix // writes maximum size bytes // use only within a loop n_write = write(fd, buffer, size); • Windows WriteFile(fHandle, buffer, bytesToWrite, &bytesWritten, NULL); 36
  • 37. espace utilisateur Espace noyau matériel disc buffer kernel buffer kernel buffer user buffer user libc (sans tampon) read/ReadFile sys_read/NtReadFile sys_write/NtWriteFile write/WriteFile Flux de lecture et ecriture 37
  • 38. Curseur de fichier • changements à lire et à écrire • initialisation à l'ouverture • mouvement de curseur de fichier • ISO C fseek(f, offset, SEEK_SET); • Unix lseek(fd, offset, SEEK_SET); • Windows SetFilePointer(fHandle, distanceToMove, NULL, FILE_BEGIN); 38
  • 39. Types des données • Utilisateur – Nom de fichier • Application – Descripteur de fichier • Système d’Explotation – table de descripteur – structure de données pour le fichier ouverte – structure de données pour le fichier sur de disc 39
  • 40. Espace utilisateur Espace noyau Fichier sur le discinstance de fichier ouvert struct file Pointeur fichier utilisateur droits inode struct inode droits taille bloc pointeurs uid gid Fichier ouverte descripteur Types des donnees 40
  • 41. Duplication de descripteur • dupliquer un descripteur dans un autre descripteur • les deux descripteurs fonctionnent sur le même fichier • POSIX newfd = dup(oldfd); dup2(oldfd, newfd); • Windows DuplicateHandle(...); SetStdHandle(...); 41
  • 42. Espace utilisateur Espace noyau Fichier sur le discinstance de fichier ouvert struct file Pointeur fichier utilisateur droits inode struct inode droits taille bloc pointeurs uid gid Fichier ouverte descripteur Types des données dup() descripteur 42
  • 43. Espace utilisateur Espace noyau Fichier sur le discinstance de fichier ouvert struct file Pointeur fichier utilisateur droits inode struct inode droits taille bloc pointeurs uid gid Fichier ouverte descripteur Types des données descripteur descripteur open() struct file Pointeur fichier utilisateur droits inode 43
  • 44. Tronquer • supprimer le contenu du fichier • le curseur de fichier est mis à size • un fichier peut être ouvert et tronqué // size is 0 open("/path/to/file", O_RDWR | O_TRUNC); • un fichier peut être ouvert et tronqué truncate("/path/to/file", size); • un fichier peut être tronqué après ouverture ftruncate(fd, size); SetEndOfFile(hFile); // Windows 44
  • 45. Fermer • l'entrée de la table de descripteur est supprimée • ISO C fclose (f); • POSIX close(fd); • Windows CloseHandle(fHandle); 45
  • 46. Exemple - Lire un fichier int main () { int f = open ("data.bin", O_RDONLY); if (f >= 0) { // ... for (part = 0; part < PARTS; part++) { bytes = read (f, temp_buffer, BUFFER_SIZE); if (bytes > 0)c{ // ... } } close (f); } else { perror ("open"); abort (); } return 0; } 46
  • 47. Accès simultané au un fichier • Lectures multiples – chacun lit le fichier indépendamment (chacun a un curseur différent) • Une lecture, Une écriture – ce n'est pas exactement ce que le premier va lire • Plusieurs écritures – l'ordre dans lequel les données seront écrites est inconnu 47
  • 48. Accès simultané au un descripteur • le noyau maintient une structure de données unique pour les deux descripteurs – un seul curseur de fichier • les opérations sont sérialisées en utilisant cette structure – les résultats des opérations sont cohérents – juste parce que nous ne connaissons pas l'ordre dans lequel ils ont été exécutés 48
  • 49. Supprimer • supprimer le fichier du système de fichiers • shell rm file.txt • ISO/C remove("file.txt"); • POSIX unlink("file.txt"); • Windows DeleteFile("file.txt"); 49
  • 50. Redirection • shell echo “message” > file_out.txt grep “word” < file_in.txt • POSIX fd = open ("file_out"); close (1); dup2 (fd, 1); close (fd); 50
  • 53. PERMISSION POUR UN FICHIER 53
  • 54. UNIX • 3 types des entités – Utilisateur (user) – Group (Group) – Autres (Others) • 3 types des premisions – Lire (Read) – Ecrire (Write) – Executer (Execute) 54
  • 55. UNIX • Permisions = chaine de 9 caracteres – 3 pour l’utilisateur – 3 pour le group – 3 pore les autres 55
  • 57. UNIX • Sur bits: – r w - r- - r - - corresponde a 110100100 – r w x r- x - - - corresponde a 111101000 – r w - rw- - - - corresponde a 110110000 • Octal: – r w - r- - r - - corresponde a 644 – r w x r- x - - - corresponde a 750 – r w - rw- - - - corresponde a 660 57
  • 58. Gestion de permissions • UNIX: – Entités: User, Group, Others – Types: Read, Write, Execute // mode in octal chmod("/path/to/file", 0644); • Windows: Listes d’acces – ACL: access control lists – Types: lecture, écriture, listage, croisement, création de sous-fichiers, etc. – Permissions seulement sur NTFS, pas sur FAT32 SetNamedSecurityInfo(...); 58
  • 60. Directeurs • fichiers spéciaux • contient une liste de fichiers et de répertoires • entrées spéciales – . -> directeur courent – .. -> directeur parent 60
  • 61. Chemin du fichier • chaînage des entrées dans le système de fichiers • tout système de fichiers a un répertoire racine (/ sous Unix) • séparateur de chemin – Windows: – UNIX: / • chemin absolu • chemin relatif 61
  • 63. Operations avec les directeurs • création (mkdir) • création d’un entrée (touch, mkdir, ln, mknod) • suppression d’un entrée (rm, rmdir, unlink) • suppression (rmdir) • lister le contenu (ls) • entrée dans un directeur (cd) • renommer une entrée (mv) 63
  • 64. Operations avec les directeurs UNIX // make directory int mkdir(const char *path, mode_t mode); // change directory int chdir(const char *path); // remove directory int rmdir(const char *path); 64
  • 65. Operations avec les directeurs UNIX // open directory DIR * opendir(const char *filename); // read a directiory entry struct dirent * readdir(DIR *dirp); // rewind directory void rewinddir(DIR *dirp); // close directory int closedir(DIR *dirp); 65
  • 66. Exemple – listez un directeur int main () { DIR *dir; struct dirent *entry; dir = opendir("/"); if (dir != NULL) { do { entry = readdir(dir); if (entry != NULL) printf ("%sn", entry->d_name); } while (entry != NULL); closedir (dir); } else { perror("opendir"); abort (); } return 0; } 66
  • 67. Operations avec les directeurs Windows • HANDLE • CreateDirectory • RemoveDirectory • SetCurrentDirectory • FindFirstFile • FindNextFile • FindClose 67
  • 69. Fichiers Speciaux • liens (links) (ln, link) • dispositifs de type caractère (mknod, mknod) • dispositifs de type bloc (mknod, mknod) • FIFO (mknod/mkfifo, mknod/mkfifo) • sockets UNIX (N/A, socket/mknod) 69
  • 70. Liens • Pointeur vers un fichier existent • Types – symbolique (soft link, similaire avec le shortcut) – hard (le même fichier, nom diffèrent) $ ls -l /usr/bin/cc lrwxrwxrwx 1 root root 20 Oct 6 2005 /usr/bin/cc -> /etc/alternatives/cc lrwxrwxrwx 1 root root 12 Apr 22 2007 /etc/alternatives/cc -> /usr/bin/gcc 70
  • 71. Fichier dispositif • Type caractère – Access séquentiel – Dispositifs serial • Keyboard, mouse etc $ ls -l /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 Feb 26 2005 /dev/ttyS0 • Type bloc – Access aléatoire – Lire en bloc • Disc, usb, … $ ls -l /dev/sda brw-rw---- 1 root disk 8, 0 Feb 26 2005 /dev/sda 71
  • 72. Socket UNIX et FIFO • Les sockets Unix – communication inter-processus - communication locale – Ils ont une entrée associée au système de fichiers # ls -l /var/run/cups/cups.sock srwxrwxrwx 1 root root 0 2008-03-03 11:10 /var/run/cups/cups.sock • FIFO – pipe avec nom – un processus écrit, un autre processus lit $ ls -l mypipe prw-r--r-- 1 razvan razvan 0 2008-03-03 21:14 mypipe 72
  • 73. E/S Standard vs E/S bas niveau • E/S Standard– fopen, fread, fwrite, fclose – E/S Tamponne – problème de double tampon – accès de haut niveau pour travailler avec des chaînes • E/S bas niveau– open/CreateFile, read/ReadFile – encapsulation d'appels système – la plus grande flexibilité – ne sont pas portable 73
  • 74. Systems de fichiers virtuelles • les systèmes de fichiers virtuels n'ont pas de support physique – procfs monté en /proc – devfs monté en/dev – ou sont les données? • entrées de fichier spécialisées (fichiers sans support physique - généralement des périphériques char) – /dev/null – /dev/zero – /dev/urandom 74
  • 75. Mot clés • Partition • Montage • System de fichiers • Fichier • Directeur • Lien • Dispositif caractère • Dispositif bloc • Socket UNIX • FIFO • Permissions • Chemin de fichier • Absolue • Relatif • MBR • GPT • E/S Standard • E/S Bas Niveau 75

Notes de l'éditeur

  1. * sisteme de fisiere tranzactionale vs. sisteme non-tranzactionale (trade-off consistenta vs. viteza) * sisteme de fisiere distribuite * sisteme de fisiere de retea (NFS) * ce tip de SF se foloseste pt. swap si de ce?
  2. * ce alte tehnici in afara de buffering se mai folosesc pentru optimizarea vitezei? (ex: read-ahead)
  3. [8] - inode - http://elf.cs.pub.ro/so2/wiki/laboratoare/lab09
  4. [8] - inode - http://elf.cs.pub.ro/so2/wiki/laboratoare/lab09
  5. [8] - inode - http://elf.cs.pub.ro/so2/wiki/laboratoare/lab09
  6. [9] - Wrapper functions - http://en.wikipedia.org/wiki/Wrapper_function