Systèmes de fichiers et appels systèmes associés

Dimension: px
Commencer à balayer dès la page:

Download "Systèmes de fichiers et appels systèmes associés"

Transcription

1 Systèmes de fichiers et appels systèmes associés Anthony Busson Paul Crozat Hugues Mounier Lynda Zitoune Plan Les fichiers sur le disque dur Le système arborescent Gestion par le noyau des fichiers ouverts Appels systèmes : ouverture, écriture/lecture, fermeture de fichiers Appels systèmes : liens, propriétés des fichiers Appels systèmes : manipulation des répertoires Appels systèmes : verrouillage des fichiers. 1

2 Organisation du disque dur secteur plateau piste Une piste est un cercle sur le disque dur. Le secteur est l unité de base, il est d au moins 512 octets (Le formatage de bas niveau définit les différents secteurs). La lecture d information se fait par block. On lit de manière systématique un block composé de un ou de plusieurs secteurs. Table du système de fichiers Une table est associée à chaque partition du disque dur Elle contient une liste décrivant chaque fichier Chaque élément de cette liste est un i-nœud (i-node) Un i-nœud décrit un fichier. C est une structure contenant les informations sur les fichiers, entre autres: Les attributs d un fichier: date de création Date de dernière modification Taille du fichier Droits sur le fichier Nombre de liens sur le fichier Les numéros de blocks où il se trouve physiquement sur le disque dur 2

3 Table du système de fichiers (2) Sur les premiers secteurs se trouve la table de partition (la table des i-noeuds). Table des i-noeuds i-nœud Date de créat Date de modif # de liens: 3 Taille : 1324 octets Blocks: 14; 15 i-nœud Date de créat Date de modif # de liens: 2 Taille : 1000 octets Blocks: 123; i-nœud Secteur (correspondant à l emplacement du fichier décrit par l i-node 5) Secteur 123 (correspondant à l emplacement du fichier décrit par l i-node 6) Structure détaillée d un i-nœud (système de fichiers ext2) La structure ext2_inode est définie dans le fichier <linux/ext2_fs.h>. Voici une liste non exhaustive des champs. Type u16 u16 u32 u32 u32 u32 u16 u16 u32 u32 [EXT2_N_BLOCKS]... Champ i_mode i_uid i_size i_atime i_mtime i_ctime i_gid i_links_count i_blocks i_block Description Mode du fichier (type et droits d accès) Utilisateur propriétaire Taille du fichier en octets Date de dernier accès Date de dernière modification du contenu Date de dernière modification de l i-nœud Groupe propriétaire Nombre de liens Nombre de blocs alloués au fichier Adresses des blocs alloués à l i-noeuds 3

4 Structure détaillée d un i-nœud: adresses des blocs (ext2) Le champ i_block est un tableau décrivant les blocs alloués au fichier. Bloc sur le disque dur Tableau i_block Tableau de EXT2_N_BLOCK éléments... Blocs directs Blocs indirects Blocs doublement indirects Vue utilisateur dus système de fichiers La vision utilisateur du système de fichiers est une arborescente de répertoire contenant des fichiers identifiables par des noms. Cette structure n a rien à voir avec la structure du système de fichier sur le disque (voir les transparents précédents). Les répertoires sont des fichiers spéciaux (non ordinaires) qui contiennent une liste de fichiers Le numéro du périphérique (plusieurs périphériques peuvent regroupés au sein d une même arborescence) Le numéro d inode sur le périphérique 4

5 Lecture d un fichier: exemple Ouverture du fichier /user/busson/cours.pdf Inode 2 Blocs: 212 Inode 17 Blocs: 15, 16 Inode 21 Blocs: 3 Inode 22 Blocs: 9 Lecture du bloc 212 correspondant au répertoire racine Nom Périphérique Inode usr home bin user include Lecture d un fichier: exemple Ouverture du fichier /user/busson/cours.pdf Inode 2 Blocs: 212 Inode 17 Blocs: 15, 16 Inode 21 Blocs: 3 Inode 22 Blocs: 9 Lecture du bloc 212 correspondant au répertoire racine Nom Périphérique Inode Nom Périphérique Inode usr homedupont bin dupond user busson include Lecture du bloc 3 correspondant au répertoire /user 5

6 Lecture d un fichier: exemple Ouverture du fichier /user/busson/cours.pdf Inode 2 Blocs: 212 Inode 17 Blocs: 15, 16 Inode 21 Blocs: 3 Inode 22 Blocs: 9 Nom Périphérique Inode Nom Périphérique Inode usr Nom 000 Périphérique 8 Inode homedupont bin dupond fichier user busson fichier include cours.pdf Lecture du bloc 9 correspondant au répertoire /user/busson Lecture d un fichier: exemple Ouverture du fichier /user/busson/cours.pdf Inode 2 Blocs: 212 Inode 17 Blocs: 15, 16 Inode 21 Blocs: 3 Inode 22 Blocs: 9 Nom Périphérique Inode Nom Périphérique Inode usr Nom 000 Périphérique 8 Inode homedupont bin dupond fichier user busson fichier include cours.pdf Lecture des blocs 15 et 16 correspondant au fichier /user/busson/cours.pdf 6

7 Structure physique d un système de fichiers: Ext2 Disque dur avec une seule partition. Secteur de boot Ensemble de blocs 1 Ensemble de blocs 2 Ensemble de blocs n super bloc descripteurs Bitmap blocs Bitmap i-nodes i-nodes table Blocs de données propriétés du système de fichiers contiennent les numéros de blocs des bitmaps, des tables des i-noeuds indique l allocation des blocs pour cet ensemble indique l allocation des i- nodes pour cet ensemble Structure physique d un système de fichiers: Ext2 (2) Le super bloc contient les informations de contrôle du système de fichiers et est dupliquée dans chaque ensemble de blocs pour des raisons de fiabilité. Il contient entre autres: le nombre de blocs libre, leur taille le nombre d i-nœuds libre nombre de blocs par ensemble les dates de montage, d écriture, etc. la gestion de la vérification du système (intervalle entre deux vérifications, date de dernière vérification, etc.) La table des descripteurs contient les adresses des blocs contenant les informations cruciales (bitmap, table des i-nœuds, etc.) 7

8 Structure physique d un système de fichiers: Ext2 (3) Le bloc de bitmap pour les blocs est une carte binaire indiquant les blocs libres. Elle est mise à jour à chaque création/extension ou suppression d un fichier. Un 0 indique un bloc libre Un 1 indique un bloc plein les deux premiers blocs sont libre. les deux blocs suivants sont occupés. Le bloc de bitmap pour les i-nœuds indique les i-nœuds libre Structure physique des systèmes de fichiers sur un disque dur Disque dur. MBR Partition 1 Partition 2 Partition 3 Master Boot Record Contient les caractéristiques physique du disque dur (taille de secteurs, etc). La table de partition principale décrivant le nombre de partition et leur emplacement. Un programme de lancement. Chaque partition contient un système de fichier indépendant. Il peut contenir un système d exploitation ou non. 8

9 Traitement des fichiers ouverts par le noyau Gestion des fichiers ouverts par le noyau A chaque processus (programme en cours d exécution) le noyau associe une liste de fichiers ouverts Cette première liste est référencée par les descripteurs de fichiers (des entiers) Chaque élément de cette liste pointe vers une table générale (commune à tous les processus) listant tous les fichiers ouverts Chaque élément de cette dernière table pointe vers une entrée de d une table d i-nœuds chargé en mémoire. 9

10 Gestion des fichiers ouverts par le noyau current Pointeur pointant sur le descriptif du processus en cours d exécution. Liste des fichiers ouverts par l ensemble des processus Liste des i-nœuds chargés en mémoire Pointeur vers la liste des fichiers ouverts par ce processus task_struct files_struct Chaque entrée contient essentiellement un pointeur sur une entrée de la table globale. files i-nodes Détail de la structure files_struct La structure files_struct (définit dans le fichier <linux/fs.h>) est la suivante (exhaustive): Type int fd_set struct file * [NR_OPEN] Champ count close_on_exec fd Description Nombre de descripteurs de fichiers associés indique si le fichier doit être fermé lors d un recouvrement (voir cours sur les processsu et l appel execl() ) pointeurs sur les descripteurs de fichiers ouverts 10

11 Détail de la structure files La structure files (définit dans le fichier <linux/fs.h>) est la suivante (non exhaustive): Type loff_t unsigned long Champ f_pos f_flags Description position courante en octets depuis le début du fichier (c est la position en lecture/ecriture dans le fichier). mode du fichier (mode d ouverture spécifié par l appel open) struct file * struct file * strcut inode * struct file_operations * unsigned long f_next f_prev f_inode f_op f_version pointeur de chaînage sur la structure suivante pointeur de chaînage sur la structure précédente pointeur sur l i-nœud correspondant au fichier opérations liées au fichier ouvert numéro de version incrémenté à chaque utilisation du descripteur Structure détaillée d un i-nœud (inœud des fichiers ouverts) La structure inode est définie dans le fichier <linux/fs.h>. Voici une liste non exhaustive des champs. Type kdev_t unsigned long umode_t n_link_t uid_t gid_t kdev_t off_t time_t time_t time_t unsigned long unisgned long Champ i_dev i_ino i_mode i_nlink i_uid i_gid i_rdev i_size i_atime i_mtime i_ctime i_blksize i_blocks Description Identificateur du périphérique (il y a une seule table d inode pour l ensemble des périphériques). Numéro d i-nœud Mode du fichier (type et droits d accès) Nombre de liens Utilisateur propriétaire Groupe propriétaire Identificateur du périphérique dans le cas d un fichier spécial Taille du fichier en octets Date de dernier accès Date de dernière modification du contenu Date de dernière modification de l i-nœud Taille des blocs en octet Nombre de blocs alloués au fichier 11

12 Structure détaillée d un i-nœud (inœud des fichiers ouverts) Type struct inode * struct inode * struct inode * struct inode * Struct inode * Champ i_next i_prev i_hash_next i_hash_prev i_mount Description Pointeur sur le prochain i-node Pointeur sur l i-node précèdent Pointeur sur le prochain i-node dans la liste de hachage Pointeur sur l i-node précédent dans la liste de hachage Pointeur sur l inoeud racine d un système de fichier dans le cas d un point de montage (l i-nœud du répertoire de montage) Les appels systèmes open() close() read() write() lseek() 12

13 Préambule Les appels systèmes renvoient un code de retour. Celui permet de vérifier le bon déroulement de l appel. La fonction perror(), permet d afficher un message quelconque et d afficher le code d erreur renvoyé par l appel système. #include<perror.h> void perror(const char* s); La fonction perror() affiche un message sur la sortie standard, décrivant la dernière erreur rencontrée durant un appel système ou une fonction de bibliothèque. La chaîne de caractère s est affichée en premier puis le message. Opérations sur un fichier Pour effectuer une opération de lecture ou d écriture sur un fichier, il faut: L ouvrir avec l appel système open() Lire avec l appel read() Ou écrire avec l appel write() On peut également se déplacer dans le fichier avec l appel lseek() Fermer le fichier avec l appel close(). 13

14 open() #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); Le paramètre pathname spécifie le nom du fichier à ouvrir. Il peut être exprimé sous forme relative ou absolue. Le paramètre flags indique le mode d ouverture du fichier (lecture/écriture). Voir transparent suivant. Le paramètre mode spécifie les droits du fichier lors d une création. Valeur renvoyée: retourne un descripteur de fichier (un entier >2, sauf exception) ou la valeur -1 en cas d erreur. open(): mode d ouverture Un fichier peut être ouvert suivant les modes définit dans le tableau cidessous. Plusieurs options peuvent être combinées avec des OU logique. Par exemple une ouverture de fichier en écriture avec création et renvoi d une erreur si le fichier existe déjà correspondra au mode O_WRONLY O_CREAT O_EXCL option O_RDONLY O_WRONLY O_RDWR O_CREAT O_EXCL O_TRUNC O_APPEND O_SYNC signification lecture seule écriture seule lecture et écriture Création du fichier s il n existe pas provoque une erreur si O_CREAT est utilisé et que le fichier existe déjà suppression du contenu du fichier si celui-ci existe lors de sa création ouverture en mode ajout, toute écriture est effectuée en fin de fichier ouverture du fichier en mode synchrone: toute mise à jour est écrite immédiatement sur le disque 14

15 open : mode du fichier lors de sa création Lors d une création de fichier l argument mode définit les droits sur le fichier créé. Le fonctionnement est le même que pour les flags d ouverture. option S_ISUID S_ISGID S_ISVTX S_IRUSR S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO signification Bit setuid Bit setgid Bit sticky Droit de lecture pour le propriétaire Droit d écriture pour le propriétaire Droit d exécution pour le propriétaire Droits de lecture, écriture, exécution pour le propriétaire Droit de lecture pour le groupe Droit d écriture pour le groupe Droit d exécution pour le groupe Droits de lecture, écriture, exécution pour le groupe Droit de lecture pour le reste des utilisateurs Droit d écriture pour le reste des utilisateurs Droit d exécution pour le reste des utilisateurs Droits de lecture, écriture, exécution pour le reste des utilisateurs read() ssize_t read(int fd, void* buf, size_t count); Le paramètre fd spécifie le descripteur du fichier sur lequel on souhaite lire. Il s agit du descripteur de fichier qui a été renvoyé par l appel de open(). Le paramètre buf est un pointeur indiquant où doivent être rangé les données lues. Le paramètre count est la taille en octet du buffer qui a été réservée pour la lecture et pointé par buf. C est le nombre maximale d octets qui peut être lu. Valeur renvoyée: retourne le nombre d octets qui a été lu ou bien 0 si on se trouve en fin de fichier ou -1 en cas d erreur. 15

16 write() ssize_t write(int fd, const char* buf, size_t count); Le paramètre fd spécifie le descripteur du fichier sur lequel on souhaite écrire. Il s agit du descripteur de fichier qui a été renvoyé par l appel de open(). Le paramètre buf est un pointeur indiquant où sont rangées les données à écrire dans le fichier. Le paramètre count est le nombre d octets à écrire dans le ficher. Valeur renvoyée: retourne le nombre d octets qui a été écrits dans le fichier ou -1 en cas d erreur. close() ssize_t close(int fd); Le paramètre fd spécifie le descripteur du fichier correspondant au fichier que l on souhaite fermer. Il s agit du descripteur de fichier qui a été renvoyé par l appel de open(). Valeur renvoyée: retourne le nombre 0 en cas de succès ou -1 en cas d erreur. 16

17 Positionnement dans un fichier L écriture ou la lecture dans un fichier sont séquentiels. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ouverture du fichier en lecture, le pointeur est positionné sur le premier octet. après lecture de 13 octets, le pointeur est positionné sur le 14 ème octets. à chaque nouvelle lecture le pointeur est déplacé du nombre d octets lu. lseek() off_t lseek(int fd, off_t offset, int whence); Le paramètre fd spécifie le descripteur du fichier. Il s agit du descripteur de fichier qui a été renvoyé par l appel de open(). Le paramètre offset définit le déplacement en octet que l on souhaite effectuer. Le paramètre whence définit la base du déplacement (à partir de quel endroit on se déplace). Valeur renvoyée: retourne la nouvelle position courante en octets par rapport au début du fichier ou -1 en cas d erreur. 17

18 lseek(): déplacement Le paramètre whence peut prendre les valeurs suivantes option SEEK_SET SEEK_CUR SEEK_END signification positionnement par rapport au début de fichier positionnement par rapport à la position courante du pointeur positionnement par rapport à la fin du fichier Remarque: Dans le cas où la position de référence définit par whence est SEEK_END, la valeur du paramètre offset doit être négative. Tampon Un tampon est zone mémoire dans laquelle les opérations de lectures et d écritures sont effectués. Le contenu de ces tampon sont mise, correspondance avec un média physique. Ils permettent de diminuer le nombre d accès physique au média. Ils accélèrent les lectures/écritures 18

19 Tampon (2) Lors de la lecture, une partie du fichier est placé dans le tampon. L écriture (mise à jour) du fichier sur le disque dur se fait lorsque les données écrites arrive en fin de tampon de manière régulière par le noyau la fonction fsync est appelé aaaaaaaaaaaaaaaa Disque lecture aaaaaaaaaabbbbbb écriture Disque Appels systèmes supplémentaires link() unlink() symlink() readlink() rename() chmod() fchmod() chown() fchown() stat() fstat() lstat 19

20 link() int link(const char* oldpath, const char* newpath); Cette fonction permet de créer un nouveau lien sur un fichier. Il s agit d un lien par inode. Le nouveau lien doit donc se trouver impérativement sur le même système de fichier que le lien de référence. Les fichiers ne doivent pas être des répertoires. Le paramètre oldpath spécifie l emplacement du fichier de référence. Le paramètre newpath définit le nom et emplacement du nouveau lien. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. unlink() int unlink(const char* pathname); Cette fonction permet de supprimer lien sur un fichier. Il s agit d un lien par inode. Le fichier est définitivement supprimer s il s agit du dernier lien. Le paramètre pathname spécifie l emplacement du fichier. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. 20

21 symlink() int symlink(const char* oldpath, const char* newpath); Cette fonction permet de créer un lien symbolique sur un fichier. Le paramètre oldpath spécifie l emplacement du fichier de référence. Le paramètre newpath définit le nom (et emplacement) du lien symbolique. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. readlink() int readlink(const char* pathname, char* buf, size_t bufsiz); Cette fonction permet de lire le nom du fichier sur lequel pointe un lien symbolique. Le paramètre pathname spécifie l emplacement du lien symbolique. Le paramètre buf définit l emplacement du tampon mémoire dans lequel le nom du fichier pointé sera placé. Le paramètre bufsiz est la taille du tampon mémoire Valeur renvoyée: retourne le nombre d octets placés dans le tampon mémoire (le nombre d octets constituant le nom du fichier pointé) ou -1 en cas d erreur. 21

22 rename() int rename(const char* oldpath, const char* newpath); Cette fonction permet de modifier le nom d un fichier. Le nouveau nom peut se trouver dans un répertoire différent. Le paramètre oldpath spécifie le nom du fichier de référence. Le paramètre newpath définit le nouveau nom du fichier. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. chmod() fchmod() #include<sys/types.h> #include<sys/stat.h> int chmod(const char* pathname, mode_t mode); int fchmod(int fd, mode_t mode); Cette fonction permet de modifier les droits d accès sur un fichier. Le paramètre pathname (appel chmod) spécifie l emplacement du fichier dont on veut modifier les droits d accès. Le paramètre fd (appel fchmod) spécifie le descripteur de fichier pour lequel on veut modifier les droits d accès. Le paramètre mode définit les droits sur le fichier. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. Remarque: seuls les propriétaire du fichier et le super utilisateur peuvent modifier les droits sur un fichier. 22

23 Constantes possibles pour la variable mode_t Le fonctionnement et les valeurs des constantes sont les mêmes que pour l appel open(): option S_ISUID S_ISGID S_ISVTX S_IRUSR S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO signification Bit setuid Bit setgid Bit sticky Droit de lecture pour le propriétaire Droit d écriture pour le propriétaire Droit d exécution pour le propriétaire Droits de lecture, écriture, exécution pour le propriétaire Droit de lecture pour le groupe Droit d écriture pour le groupe Droit d exécution pour le groupe Droits de lecture, écriture, exécution pour le groupe Droit de lecture pour le reste des utilisateurs Droit d écriture pour le reste des utilisateurs Droit d exécution pour le reste des utilisateurs Droits de lecture, écriture, exécution pour le reste des utilisateurs chown() fchown() #include<sys/types.h> int chown(const char* pathname, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); Cette fonction permet de modifier le propriétaire ou le groupe d un fichier. Le paramètre pathname (appel chown) spécifie l emplacement du fichier dont on veut modifier le propriétaire/groupe. Le paramètre fd (appel fchown) spécifie le descripteur de fichier pour lequel on veut modifier le propriétaire/groupe. Le paramètre owner définit le nouveau propriétaire. Le paramètre group définit le nouveau groupe. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. Remarque: seul le super utilisateur peut modifier le propriétaire d un fichier. 23

24 stat() fstat() #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *pathname, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *pathname, struct stat *buf); Cette fonction permet de récupérer les propriétés d un fichier. Le paramètre pathname (appels stat et lstat) spécifie l emplacement du fichier dont on veut connaître les propriétés. Le paramètre fd (appel fstat) spécifie le descripteur de fichier pour lequel on veut connaître les propriétés. Cela suppose un appel préalable à open(). Le paramètre buf est un pointeur sur une structure stat dans laquelle sera placé les propriétés du fichier spécifié. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. Remarque: la seule différence entre stat() et lstat() est que si le fichier est un lien symbolique alors lstat() renvoi les propriétés du lien lui-même alors que stat() renvoi les propriétés du fichier pointé par le lien symbolique. Les champs de la structure stat struct stat { dev_t st_dev; /* numéro de périphérique */ ino_t st_ino; /* numéro d i-noeud */ mode_t st_mode; /* droits */ nlink_t st_nlink; /* nombre de liens */ uid_t st_uid; /* propriétaire */ gid_t st_gid; /* groupe */ dev_t st_rdev; /* périphérique (si fichier spéciale) */ off_t st_size; /* taille en octets */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ }; 24

25 Attributs du champ st_mode Les attributs suivants correspondent au champ st_mode. S_IFMT (non POSIX) masque de l'ensemble des bits du type de fichier S_IFSOCK (non POSIX) socket S_IFLNK (non POSIX) lien symbolique S_IFREG (non POSIX) fichier régulier S_IFBLK (non POSIX) périphérique blocs S_IFDIR (non POSIX) répertoire S_IFCHR (non POSIX) périphérique caractères S_IFIFO (non POSIX) fifo S_ISUID bit Set-UID S_ISGID bit Set-Gid S_ISVTX (non POSIX) bit "sticky" S_IRWXU droits de lecture/écriture/exécution du propriétaire S_IRUSR le propriétaire a le droit de lecture (comme S_IREAD qui n'est pas POSIX) S_IWUSR le propriétaire a le droit d'écriture (comme S_IWRITE qui n'est pas POSIX) S_IXUSR le propriétaire a le droit d'exécution (comme S_IEXEC qui n'est pas POSIX) S_IRWXG droits de lecture/écriture/exécution du groupe S_IRGRP le groupe a le droit de lecture S_IWGRP le groupe a le droit d'écriture S_IXGRP le groupe a le droit d'exécution S_IRWXO droits de lecture/écriture/exécution des autres S_IROTH les autres ont le droit de lecture S_IWOTH les autres ont le droit d'écriture S_IXOTH les autres ont le droit d'exécution Macro S_ISLNK(m) est-ce un lien symbolique? S_ISREG(m) un fichier régulier? S_ISDIR(m) un répertoire? S_ISCHR(m) un péripherique en mode caractère? S_ISBLK(m) un périphérique en mode blocs? S_ISFIFO(m) une FIFO? S_ISSOCK(m) une socket? m est le champ st_mode. 25

26 Appels systèmes liés à la gestion des répertoires mkdir() rmdir() chdir() getcwd() chroot() opendir() readdir() closedir() mkdir() #include<sys/types.h> #include<fcntl.h> int mkdir(const char* pathname, mode_t mode); Cette fonction permet de un répertoire. Le paramètre pathname spécifie le nom et emplacement du nouveau répertoire. Le paramètre mode définit les droits sur le répertoire. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. 26

27 mkdir() int rmdir(const char* pathname); Cette fonction supprimer un répertoire. Le paramètre pathname spécifie le nom et emplacement du répertoire à supprimer. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. chdir() int chdir(const char* pathname); A chaque processus est associé un répertoire courant. Les noms relatifs des fichiers et répertoire sont basés sur ce répertoire courant. Cette fonction permet de changer de répertoire courant. Le paramètre pathname spécifie le nom et emplacement du nouveau répertoire courant. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. 27

28 getcwd() char* getcwd(char* buf, size_t size); Cette fonction permet de connaître le nom du répertoire courant. Le paramètre buf spécifie un pointeur dans lequel est placé le nom absolu du répertoire courant. Le paramètre size est la taille ne octet de la mémoire tampon pointé par buf. Valeur renvoyée: retourne le pointeur buf en cas de succès ou le pointeur NULL en cas d erreur. Remarque: cette fonction n est pas un appel système mais une fonction de la bibliothèque C. chroot() int chroot(const char* pathname); A chaque processus est associé un répertoire racine. Le répertoire racine associé à un processus peut être différent de la racine de l arborescence du système de fichiers. Les noms de fichiers absolus sont basés sur ce répertoire racine. Cette fonction permet de changer le répertoire racine du processus (qui appelle cette fonction). Le paramètre pathname spécifie le nom et emplacement du nouveau répertoire courant. Valeur renvoyée: retourne la valeur 0 en cas de succès ou -1 en cas d erreur. 28

29 opendir() #include<sys/types.h> #include<dirent.h> DIR* opendir(const char* pathname); Cette fonction permet d ouvrir un répertoire. Le paramètre pathname spécifie le nom et emplacement du répertoire que l on souhaite ouvrir. Valeur renvoyée: retourne un pointeur sur un répertoire ouvert en cas de succès ou NULL en cas d erreur. readdir() #include<sys/types.h> #include<dirent.h> struct dirent* readdir(dir* dir); Cette fonction permet de lire un répertoire. Il retourne une entrée de ce répertoire. Le paramètre dir spécifie le descripteur de répertoire ouvert. Une ouverture préalable du répertoire par l appel opendir() est nécessaire. Valeur renvoyée: retourne un pointeur non NULL sur une structure dirent en cas de succès ou NULL en cas d erreur. 29

30 Structure d une entrée du répertoire struct dirent { long d_ino; /* inode number */ off_t d_off; /* offset to this dirent */ unsigned short d_reclen; /* length of this d_name */ char d_name [NAME_MAX+1]; /* file name (null-terminated) */ }; Attention: Les deux champs d_off et d_reclen ne fonctionnent pas toujours. closedir() #include<sys/types.h> #include<dirent.h> int closedir(dir* dir); Cette fonction permet de fermer un répertoire. Le paramètre dir spécifie le descripteur de répertoire ouvert. Une ouverture préalable du répertoire par l appel opendir() est nécessaire. Valeur renvoyée: retourne 0 en cas de succès ou -1 en cas d erreur. 30

31 Appels systèmes liés à la synchronisation des lectures/écritures sur un fichier flock() lockf() #include<sys/file.h> int lockf(int fd, int operation, off_t len); Cette fonction permet de poser ou de retirer un verrou sur un fichier. Le paramètre fd spécifie le descripteur du fichier sur lequel on va mettre/enlever un verrou. Le paramètre operation décrit l opération à effectuer. Les opérations possibles sont: F_LOCK : Poser un verrou exclusif sur le fichier. Un seul processus peut posséder un verrou exclusif sur un fichier donné à un moment donné. Si le fichier est déjà verrouillé, l'appel bloque jusqu'à la suppression du verrou précédent. F_TLOCK : Comme F_LOCK mais l'appel n'est pas bloquant, il renvoie une erreur si le fichier est déjà verrouillé. F_ULOCK : Déverrouiller un fichier. F_TEST : Vérifie s'il y a un verrou : l'appel renvoie 0 si le fichier est libre, ou s'il est verrouillé par le processus appelant. Il renvoie -1 avec EACCES dans errno si un autre processus possède le verrou. Le paramètre len spécifie la portée du verrouillage. Cette portée s exprime par rapport à la position courante. Valeur renvoyée: retourne -1 en cas de succès ou 0 en cas d erreur. 31

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Cours 6 : Tubes anonymes et nommés

Cours 6 : Tubes anonymes et nommés Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels

Plus en détail

Cours de Système : Gestion de Fichiers

Cours de Système : Gestion de Fichiers Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)

Plus en détail

Le système de gestion des fichiers, les entrées/sorties.

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

Plus en détail

Les processus. Système L3, 2014-2015 1/39

Les processus. Système L3, 2014-2015 1/39 Les processus Système L3, 2014-2015 1/39 Les processus Processus = Instance d un programme en cours d exécution plusieurs exécutions de programmes plusieurs exécutions d un même programme plusieurs exécutions

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

Chapitre 3 : Système de gestion de fichiers

Chapitre 3 : Système de gestion de fichiers : 3.1- Introduction Le système de gestion de fichiers (SGF) est la partie la plus visible d un système d exploitation qui se charge de gérer le stockage et la manipulation de fichiers (sur une unité de

Plus en détail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté

Plus en détail

Unix : Programmation Système

Unix : Programmation Système Département Informatique Année Universitaire 2004/2005 1 Compilation et programmation...6 1.1 Préparation du fichier source...6 1.1.1 L'éditeur vi (mode console)...6 1.1.2 L'éditeur nedit ou xedit (sous

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) Chapitre 4 Le système de Gestion de Fichiers 1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1 Systèmes d entrée/sortie Concepts importants : Matériel E/S

Plus en détail

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF. Programmation système II Socket UNIX, Terminaux, Async IO, Mémoire, ELF Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 Plan global 1 Socket UNIX 2 Terminaux 3 Autres modèles

Plus en détail

Gestion des fichiers. Telecom-ParisTech BCI Informatique

Gestion des fichiers. Telecom-ParisTech BCI Informatique 319 Gestion des fichiers 1 Généralités Définitions Organisation logique, organisation physique 2 Organisation physique UNIX : i-list et i-node rappels sur le fonctionnement d'un disque 3 Organisation logique

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Qu'est-ce qu'un processus: Définitions

Qu'est-ce qu'un processus: Définitions Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

LA mémoire principale est le lieu où se trouvent les programmes et les

LA mémoire principale est le lieu où se trouvent les programmes et les Chapitre 9 Gestion de la mémoire LA mémoire principale est le lieu où se trouvent les programmes et les données quand le processeur les exécute. On l oppose au concept de mémoire secondaire, représentée

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Session 8: Android File System

Session 8: Android File System Session 8: Android File System LO52 - Automne 2014 Fabien BRISSET 2 mai 2014 fabien.brisset@utbm.fr www.utbm.fr Droits de reproduction Copyright 2013-2014, Fabien Brisset, Copyright 2004-2014, Free Electrons

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

Plus en détail

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH PARAGON Disk Wiper Guide de l utilisateur Paragon Technology GmbH, System Programmierung Copyright Paragon Technology GmbH Publié par : Paragon Technology GmbH System Programming Pearl-Str. 1 D-79426 Buggingen

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire

Plus en détail

Arguments d un programme

Arguments d un programme Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1

Plus en détail

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5 Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 La Sauvegarde...4 Les différents types...4 Planification...4 Les outils...5 Quelques commandes...5 La commande tar...5 La

Plus en détail

Architecture d un système d exploitation

Architecture d un système d exploitation Architecture d un système d exploitation 1/71 Architecture d un système d exploitation Jean-Claude Bajard IUT de Montpellier, Université Montpellier 2 Première année de DUT Architecture d un système d

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Compression de Données - Algorithme de Huffman Document de Conception

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

Plus en détail

Playing with ptrace() for fun and profit

Playing with ptrace() for fun and profit sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

Personnes ressources Tice. Académie de Rouen

Personnes ressources Tice. Académie de Rouen Personnes ressources Tice Académie de Rouen Objectifs Acquérir les connaissances de base concernant Linux Découvrir la solution technique SambaEdu3 : serveur de fichiers sous Linux Mettre en oeuvre cette

Plus en détail

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix Ce TP est destiné à vous familiariser avec les fichiers sous l'environnement UNIX. Fortement axé sur la pratique, il aborde la création, la manipulation et la suppression des répertoires et fichiers. 1

Plus en détail

Le Network File System de Sun (NFS)

Le Network File System de Sun (NFS) 1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation

Plus en détail

Manuel de System Monitor

Manuel de System Monitor Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation

Plus en détail

Chapitre IX : Virtualisation

Chapitre IX : Virtualisation Chapitre IX : Virtualisation Eric Leclercq & Marinette Savonnet Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 5 mai 2011 1 Principes Problématique Typologie

Plus en détail

LES SYSTÈMES DE FICHIERS

LES SYSTÈMES DE FICHIERS SECTION M.R.I.M. - L.P. CHATEAU-BLANC 45120 CHALETTE SUR LOING LES SYSTÈMES DE FICHIERS Table des matières : Supports physiques (média) Les fs supportés par MS-Windows Principe de la table d'allocation

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Présentation du SC101

Présentation du SC101 Présentation du SC101 True SAN (Storage Area Network) Boîtier intégrant la technologie Z-SAN 2 emplacements IDE 3,5" (jusqu'à 2 disques durs) 1 port Ethernet RJ45 10/100 Logiciel SmartSync Pro Backup Stockage

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

TD 1 - Installation de système UNIX, partitionnement

TD 1 - Installation de système UNIX, partitionnement Département des Sciences Informatiques Licence Pro R&S 2009 2010 Administration Système T.T. Dang Ngoc dntt@u-cergy.fr TD 1 - Installation de système UNIX, partitionnement 1 Préambule Il existe de très

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

Communication par sockets

Communication par sockets Rappel : le réseau vu de l!utilisateur (1) Communication par sockets Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia (demande un service)

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

Introduction au Système d Exploitation Unix/Linux

Introduction au Système d Exploitation Unix/Linux 1 iere partie: Système de Gestion de Fichier B. Jacob IC2/LIUM 17 septembre 2013 Plan 1 Notions de fichier 2 Notions de répertoire 3 Organisation des répertoires 4 Identification d un fichier dans l arborescence

Plus en détail

Systèmes de fichiers répartis

Systèmes de fichiers répartis Systèmes de fichiers répartis INF346 Samuel Tardieu sam@rfc1149.net Télécom ParisTech 16 mars 2012 Samuel Tardieu (Télécom ParisTech) Fichiers répartis 16 mars 2012 1 / 42 Introduction Pourquoi partager

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

1 Mesure de la performance d un système temps réel : la gigue

1 Mesure de la performance d un système temps réel : la gigue TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core

Plus en détail

Les fichiers. Chapitre 4

Les fichiers. Chapitre 4 Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,

Plus en détail

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2 Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................

Plus en détail

Le traitement du temps

Le traitement du temps Programmation Système Mesure Horloges Sommeil Mise en forme Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/ enib, F.H... 1/30 Intérêt Cadencer les

Plus en détail

Programmation défensive

Programmation défensive Programmation défensive Matthieu Herrb INSA Toulouse, Novembre 2012 http://homepages.laas.fr/matthieu/cours/mh-prog-defensive.pdf Licence Ce document est sous licence Creative Commons Paternité - Partage

Plus en détail

Manuel du logiciel PrestaTest.

Manuel du logiciel PrestaTest. Manuel du logiciel. Ce document décrit les différents tests que permet le logiciel, il liste également les informations nécessaires à chacun d entre eux. Table des matières Prérequis de PrestaConnect :...2

Plus en détail

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Introduction aux Systèmes et aux Réseaux, Master 2 CCI aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail