Programmation système

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

Download "Programmation système"

Transcription

1 3 ème année Licence d Informatique Programmation système Philippe Lahire & G. Menez Université de Nice Sophia-Antipolis Septembre 20 Ce cours fait de nombreux emprunts à celui de R. Rousseau Version Septembre 20 N 2 Organisation du cours ère partie : outils de développement G. Menez : 3 premiers cours 2 ème partie : prog système Planning : Cours: 9 séances (h30) TP: 8 ou 9 séances (3h) Contrôle continu : TP: deux à trois TP notés deux partiels Note complémentaire : Le travail : Motivation, Compréhension, Progression, La tenue : Assiduité, Respect, Matériel : PC 3 ème étage

2 Version Septembre 20 N 3 Acquisition (cours Système de L2) Notion de processus + API (fork, exec) Système de Fichiers Entrée-sortie + API (read, write ) Tubes + API (pipe) Signaux + API Sockets + API Langage : principalement python complété par du C Version Septembre 20 N 4 Démarche proposée Evaluation: compréhension des concepts acquis Approfondissement des concepts vues Reprise détaillée des concepts + complément Apprentissage de nouveaux concepts TPs plus approfondis en C Adaptation de la rapidité en fonction de la compréhension 2

3 Version Septembre 20 N 5 Organisation des enseignements cours Introduction + Entrées-Sorties E/S 2 Entrées-Sorties + Syst. Fichiers Syst. Fichier 3 Syst. Fichiers Syst. Fichier 4 Processus Process. 5 Processus Process. 6 Tubes Tubes 7 Signaux Signaux 8 IPC-Système V IPC 9 TP Selon avancement : Ajout Thread posix + Gestion mémoire virtuelle Programmation «réseau» Version Septembre 20 N 7 Tentative de bibliographie C Windows Uni ix Concepts. S. Harbison & G. Steele Jr. C, a reference manual (st ed. 984) Prentice Hall, 2nd edition, 987, 404 p. 2. B. Kernighan & D. Ritchie The C Programming g Language g (st ed. 978),, Prentice Hall, 2nd ed., 988. Traduction française Masson, A. Tannenbaum Systèmes d exploitation : systèmes centralisés, systèmes distribués MacGraw Hill, 990. Traduction française (2e ed) Dunod, A. Siberschatz & P. Galvin Operating Systems Concepts, 5e ed, Addison-Wesley, J. Beauquier & B. Berard Systèmes d exploitation : concepts et algorithmes MacGraw Hill, W. Stevens Advanced Programming in the Unix environment Addison Wesley, 992, 744 p. 7. M.J. Bach Conception du système Unix, Prentice Hall, 986. Traduction française Masson, J.M. Rifflet La programmation sous Unix, Ediscience intern., 3ème éd., 993, 630 p. 9. U. Vahalia Unix Internals : the new Frontiers Prentice Hall, A.D. Solomon Le guide officiel sur l architecture et le noyau Windows NT 2nd ed., Microsoft Press, Site microsoft 3

4 Version Septembre 20 N 8 Documentation en ligne Sur le langage C En L2MI (Gilles Menez) : www-mips.unice.fr/ menez/l2/l2cours.html Cours vidéo sur le langage C de l Université de Paris VI : Sur la programmation réseau : Cours réseau du CNRS : Cours programmation réseau avec sockets, de Brian "Beej" Hall : beej/guide/net/html/. id h A propos de l UE «Programmation système et réseau» : Site web officiel de cet enseignement : Chapitre : Présentation générale 4

5 Version Septembre 20 N 0 Chapitre : Présentation générale Historique des systèmes UNIX Vers une normalisation: POSIX Unix propriétaires ou Linux Survol de l'architecture Noyau du système Principales caractéristiques Rappels des notions de base: le Shell Principales commandes Interprétation de commande Notion de base: La session, le manuel, Parallèle avec Windows Version Septembre 20 N 3 Vers une normalisation: POSIX Portable Open System Interface exchange Norme IEEE & Description: 003.0: Guide et présentation 003.: Bibliothèque de fonctions 003.2: Shell et utilitaires 003.3: Méthode de tests et conformité 003.4: Extension temps réel 003.5: Form. appels systèmes en ADA 003.6: Sécurité 003.7: Administration système 003.8: Accès commun aux fichiers 003.9: Interface sous Fortran : Interface supercalculateurs Normes: ISO ( P003.) 5

6 Version Septembre 20 N 4 Unix propriétaires ou Linux Linus Torvald (FIN-9 sur i386) Philosophie Un noyau et des outils de base Indépendant de tout constructeur Libre et Basé sur des contributions bénévoles (GPL) Organisation en projets ambitieux (FSF, SourceForge) Un grand nombre d'utilisateurs motivés Un excellent produit : stable et code original libre de droits Porté un grand nombre d'architectures : SPARC, INTEL, ALPHA, MAC, Quelques projets: Apache Gnome GNU Version Septembre 20 N 5 De nombreuses distributions Linux Les différences Nom: Debian, Redhat, Suse, Mandrake, Prix (commerciale ou pas), Nombre de logiciels, Versions des logiciels, Pilotes supportés, Organisation des fichiers de configuration, Procédures d'installation, Sérieux de la gestion (site web, mise à jour, etc.), Fréquence des versions Certifications, Mais encore: Debian: de 4500 à 9000 Logiciels, Orienté informaticien, Une dérive vers l'automatisation, 6

7 Version Septembre 20 N 6 Survol de l'architecture () UTILISATEUR Interface Utilisateur PROGRAMMES UTILITAIRES STANDARD Shell, éditeur, compilateur, Interface Bibliothèques BIBLIOTHEQUE STANDARD fopen, fclose, fread, fwrite, Interface Appels Systèmes SYSTEME D EXPLOITATION UNIX Gestion des processus, de la mémoire, des E/S, MATERIEL: UC, mémoire, disques, terminaux, etc Autre système en couche : logiciels réseaux suivant norme - OSI Version Septembre 20 N 9 Noyau du système Programme Utilisateur Bibliothèques Interface des appels systèmes Sous-systèmes de contrôle de fichiers Sous-systèmes de contrôle des processus Communication interprocessus Ordonnanceur Gestion mémoire Cache Buffer Caractère Bloc Contrôleurs de périphériques Contrôle de la partie matérielle PARTIE MATERIELLE 7

8 Version Septembre 20 N 2 Principales caractéristiques Langage de haut niveau Le noyau : plus d' million de lignes de C Expressivité et simplicité de l'interface Construction de programmes: des primitives élémentaires Un système de fichiers «hiérarchique» Un format cohérent de fichier (octet) Accès aux périphériquesp é Multi-utilisateurs et multitâches Indépendance avec l'architecture matérielle 54 % du code Mémoire virtuelle (versions actuelles) Version Septembre 20 N 23 Notion d interprète de commandes Shell : Interface textuelle vers le système Fonctionnalités Message d'invitation (prompt) Attend la saisie d'une commande Commandes internes Commandes externes (charg. + exec. programmes) Historique des commandes précédentes Redirections et tubes Structures de contrôles (boucles, tests, fonctions,...) Mécanisme d'alias, variables d'environnement Gestion de processus 8

9 Version Septembre 20 N 24 Différents shells unix possibles Bourne shell (historiquement, le er) Toujours utilisé par les scripts internes du système C-shell (csh, tcsh) syntaxe différente Évolutions du Bourne shell ksh (Korn shell) Où indiquer le shell par défaut? bash (Bourne Again shell): le shell du projet GNU zsh: Évolution prétendument "ultime" du bourne shell Améliorations : historique, complétion,... Possibilité de (demander à) changer le shell par défaut lancé automatiquement au début de session Version Septembre 20 N 25 Quelques éléments d administration /etc/passwd nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe : commentaire : répertoire : programme_de_demarrage demarrage root:x:0:0:root:/root:/bin/bash bin:x:::bin:/bin:/bin/bash daemon:x:2:2:daemon:/sbin:/bin/bash news:x:9:3:news system:/etc/news:/bin/bash user:x:500:00:mr User...:/home/user:/bin/bash /etc/group nom_de_groupe : champ_special : numero_de_groupe : membre, membre2 root:x:0:root bin:x::root,bin,daemon daemon:x:2: users:x:00: 9

10 Version Septembre 20 N 30 Caractéres spéciaux du shell Pas en C Certains caractères ont une signification spéciale pour le shell * : 0 ou plusieurs caractères quelconquesq t*o : nom de fichier qui débute par t et finit par o? : (et un seul) caractère quelconque t?t? : désigne toto ou titi ou ttta,... \ : enlève la signification spéciale du caractère qui suit t\*to : désigne t*to Certaines constructions ont une signification spéciale [a-z] : un caractère entre a et z (a ou b ou c... ou z) [aefgij] : un caractère (et un seul) parmi a,e,f,g,i,j t[oau]t[oau] : toto, ou totu, ou tata, ou tato,... {mot,mot2} : soit mot, soit mot2 Version Septembre 20 N 36 Notions de base: Le manuel Principales sections (environ 20 Mo) taille dépendante des paquetages - nyx : ( 20 Mo de.gz ) man: Commandes utilisateurs à partir shell ( 800) man2: Primitives du noyau ( 250) man3: Routines C ( 400) man4: Fichiers spéciaux: les pilotes des périphériques (disque dur, clavier/écran, graveur, lecteur de dvd, zip, mémoires usb...) ( 90) man5: Formats de fichiers et protocoles ( 200) man7: Format des systèmes de fichiers, jeux de caractères, macros, nroff... ( 80) man8: Commandes d administration à partir shell ( 450) man9: routines du noyau non standards ( 90) Attention : Un ordre d'évaluation Base whatis: recherche de commandes apropos: recherche de mots clés 0

11 Version Septembre 20 N 37 Anatomie d une page de manuel () Section Brève description Syntaxes possibles Description détaillée de la commande Description détaillée des options (ordre alphab.) Prompt du «PAGER» 'q' : quit 'b' : retour p. < spc> : défil p. < enter> : défil l. /xy : rechercher «xy» Version Septembre 20 N 38 Anatomie d une page de manuel (2) Autres pages intéressantes sur un sujet voisin Nul n'est parfait... Parfois ambiguës ou confuses Version anglaise (défaut) : unset LANG LC_ALL puis man à nouveau...

12 Version Septembre 20 N 40 Principe général d'utilisation /* Fichier Z2.h */ R (int i) Z.o Zlib.a man r PREPROCESSEUR /* Fichier Y.c */ #include "Z2.h" main () { /* MAN!!!!! */ R (23)... } Z2.o... R (int i) {...}... Z3.o COMPILATION Y.o a.out EDITION DE LIEN Version Septembre 20 N 4 Traitement standard des erreurs () Exception vs compte-rendu Presque toutes fonctions/appels systèmes entier pointeur normale : positive ou nulle, non void, anormale : négative ou void Utilisation de errno : Syntaxe : extern int errno ; n dernière erreur détectée par un appel système pas remise à zéro à chaque appel. intro(2) : liste des différents codes Méthodologie : test compte-rendu + errno 2

13 Version Septembre 20 N 42 Traitement standard des erreurs (2) Fonctions associées #include <string.h> char* strerror (int errnum) retourne message «en clair» associé à errnum #include <stdio.h> void perror (const char* message) affiche «message» + message associé à errno (stderr) Méthodologie : utiliser en s appuyant sur «man» (Errors / Erreurs) ou traitement ad hoc (ex: gestion paramètres de «main») Version Septembre 20 N 43 Traitement standard des erreurs (3) Exemple #include <string.h> #include <stdio.h> int main (int argc, char* argv[]) { FILE* fichier; if (argc!= xxx) { ici > fprintf(stderr, «nombre paramètres incorrect»); exit() } if ( (fichier = fopen(argv[], «rw»)) == NULL) { fprintf(stderr,«erreur %i:%s \n», errno, strerror(errno)); exit(2); } } 3

14 Version Septembre 20 N 44 Traitement des erreurs de W. Stevens () + return + exit() + abort format message d erreur avec nb %+ nb arguments Affiche aussi le message associé à errno Macros : en majuscule et sans paramètre Pas de message passé en paramètre mais : Affichage: Nom du fichier + numéro de ligne Version Septembre 20 N 45 Traitement des erreurs de W. Stevens (2) Exemple #include <stevens.h> Pas par défaut dans linux #include <stdio.h> int traiter_fichier (char* f) { FILE* fichier; char tab[30]; if ( (fichier = fopen(f, «rw»)) == NULL) ERR_EXIT; if (fclose(fichier))!= 0) ERR_RETURN; } 4

15 Chapitre 2: Entrées - Sorties Version Septembre 20 N 47 Plan de travail Principes généraux Structures internes Hiérarchie de descripteurs Tables pour la gestion des entrées-sorties Principaux appels systèmes Ouverture / fermeture de fichiers: open, close Entrées-sorties: read, write Positionnement : lseek, fseek Duplication en vue de redirection : dup, dup2 5

16 Version Septembre 20 N 48 Mise au point / Survol bash gcc emacs FILE* fopen (.) { } int open (.) { } int read (.) { } Consulte / met à jour «appelle» / exécute Système exploitation Bien sur on se sert aussi du «shell» pour lancer un programme Tables : Fich. Ouvert Volumes Blocs. processus Version Septembre 20 N 49 Principes généraux () Sous UNIX: tout est fichier Périphérique, réseau, mémoire... Fichier = une suite d octets Organisation : Hiérarchie de Système de fichiers (partitions ) répertoires Exemples : «hardware» (/dev) Accès au réseau (sockets) Tb Tubes persistants it t (FIFO) Tables du noyau(tdf) Fichiers «normaux» (en anglais Regular) ) Liens entre fichiers (symboliques et physiques) Fichiers virtuels (/proc) Fichiers spéciaux (périphériques,fifo, ) Montage : local distant 6

17 Version Septembre 20 N 50 Principes généraux (2) Méthodes d accès Séquentiel (read) Direct - unité: l octet (lseek) Protection propriétaire, groupe d utilisateurs, les autres Pas de journal (log) mais possibilité de verrous Généralité + simplicité Implantation de SGBD : bonne aptitude fichiers à trou, accès direct, octets mécanismes additionnels non intégrés: évolution (gestion des versions), typage des données, système transactionnel (SGBD), Version Septembre 20 N 5 Principes généraux (3) Deux points de vues Utilisateur (commandes, applications, ) Programmeur (C et appels systèmes) Utilisateur échanges entre un processus et des entités : disque, machine distante, autre processus, terminal... Fichier au sens large Programmeur Echanges avec n importe quelle entité par des flots d octets consécutifs Accès direct possible sur des disques locaux ou distants (curseur lecture/écriture) 7

18 Version Septembre 20 N 52 Principes généraux (4) Disque Une suite d octets Tampon Mémoire F.D. Curseur Programme Descripteur de fichier : Prédéfini (fich. Stand.) A associer (open) Simple numéro Version Septembre 20 N 53 Principes généraux (5) Dans le programme Association (open ) p nom externe / Desc. Fichier chemin relatif chemin absolu Pas de caractère générique Utilisation (read, write ) Desc. Fichier: numéro de voie obtenu par association prédéfini : 0 : voie standard d entrée : voie standard de sortie 2 : voie standard d erreur Appel du programme chemin relatif chemin absolu On n utilise jamais directement Le clavier ou l écran 8

19 Version Septembre 20 N 54 Un modèle d E/S adaptable aux langages Impact: Performance Utilisation Un modèle d entrée sortie de bas niveaux Langage C Java Version Septembre 20 N 55 Modèle langage C vs Modèle UNIX Appels systèmes () open, lseek, write, stat... Mécanismes de base Streams et routines C (2) isastream, fopen, fseek, fread, fwrite, fgets, feof,... Notion de stream Remarques et Conclusion Mode noyau et Préemption struct FILE vs numéro d'entrée dans la TDF lect./écr. d'enregistrement vs d'octet (2) utilise () signatures de (2) indépendantes du système, mais l'implémentation dépend elle, du système... qu'en concluez vous? 9

20 Version Septembre 20 N 56 Qu'est-ce qu'un processus Définitions Instruction = indécomposable et indivisible Processeur =... Processus = exécution d'un programme (instructions + données) Approche intuitive UNIX = système "temps partagé Plusieurs processus en même temps Un seul processus actif Attente des autres (dans/hors mémoire) Version Septembre 20 N 57 Tables pour gérer les fichiers Privé Tables partagées P Tables Descripteurs Fichiers Processus Processus P Position : État : N inode : Nombre : Nb. copies : Inode Infos Position : État : Nombre : Position : État t : Nombre : Position : État : Nombre : N inode : Nb. copies : Inode Infos N inode : Nb. copies : Inode Infos Espace utilisateur Table fichiers Table inodes 20

21 Version Septembre 20 N 58 Modèle UNIX - Synthèse Trois points de vues Le processus L usage Le «fichier» Rôles : Gestion des voies d échange Gestion du curseur Gestion des protections Deux abstractions (par point de vue) Processus : Usage et nature du fichier Usage : raison de l utilisation par le processus et la nature du fichier «Fichier»: raison de l utilisation et usage du fichier Permettre le partage D un même usage par un/plusieurs processus D un même fichier par un/plusieurs processus D une même fichier par un/plusieurs usages Version Septembre 20 N 59 Ouverture/Création d un fichier: open Descripteur de fichier Nom fichier Mode d ouverture Lors de la création: f(perm,umask) Mise à jour des tables internes (processus + noyau) Oflags/perm : 9/5 macros dans les fichiers.h Un petit ensemble de combinaisons valides Les incohérences ne sont pas détectés 2

22 Version Septembre 20 N 60 Ouverture/Création: open (oflags) Valeurs possibles O_CREAT: création, si le fichier n existe pas O_ EXCL: combiné avec O_ CREAT, création si le fichier n existe pas, erreur sinon O_RDONLY: ouverture en lecture seule. O_WRONLY: ouverture en écriture seule (création ou ajout) O_RDWR: ouverture en lecture et écriture (mise à jour n importe où) O_ TRUNC: libération du contenu du fichier, s il existe + curseur placé en début de fichier O_APPEND: contenu du fichier non touché + curseur placé en EOF O_SYNC: attend la fin d écriture sur le média après chaque write (pas de cache) O_NONBLOCK: E/S non bloquantes. Version Septembre 20 N 6 Ouverture/Création: open (oflags) Règles et choix incohérents Choisir l un des 3 types exclusifs d action : O_RDONLY, O_WRONLY, O_RDWR + O_CREAT si la création est permise O_RDONLY O_EXCL si le fichier ne doit pas déjà exister O_WRONLY + O_CREAT O_TRUNC ou O_APPEND pour placer le curseur au début (resp. à la fin) du fichier (doit donc déjà exister O_EXCL) O_SYNC si les écritures doivent être immédiates O_RDONLY. 22

23 Version Septembre 20 N 62 Ouverture/Création: open (oflags) Exemples open (nomfichier, O_RDONLY) Curseur au début du pour lire open (nomfichier, O_WRONLY O_CREAT O_TRUNC, ) [Création + effacement] si nécessaire + curseur au début pour écrire open (nomfichier, O_WRONLY O_APPEND, ) Curseur en fin pour écrire open (nomfichier, O_WRONLY O_CREAT O_APPEND, ) Création si nécessaire + curseur en fin pour écrire open (nomfichier, O_WRONLY O_CREAT O_EXCL, ) Création si n existe pas (erreur sinon) + curseur au début pour écrire open (nomfichier, O_RDWR) Doit exister + curseur au début pour lire ou écrire n importe où Version Septembre 20 N 63 Ouverture/Création: open (perm) Règle Les permissions associées à un fichier lors de sa création sont fixées par la conjonction de deux points de vue : Point de vue : du programmeur, qui propose des permissions logiques Ex: Compilateur: exécution / Editeur: lecture et écriture de l utilisateur, propriétaire des fichiers créés, qui peut interdire certaines permissions umask : pas de lecture/écriture pour les autres Masque interdictions Permission appliquée = perm &~umask 23

24 Version Septembre 20 N 64 Ouverture/Création: open (perm) Valeurs possibles Pour donner des droits Le propriétaire Le egoupepop Groupe propriétaire Les autres Version Septembre 20 N 65 Ouverture/Création: open (perm) Exemple 022 open («f», O_WRONLY O_CREAT, ) umask Group = write ~ Other = write = &

25 Version Septembre 20 N 66 Création d'un fichier Equivalences open (path, O_WRONLY O_CREAT) creat (path, mode) mknod : Fichier spéciaux (FIFO,...) Deux Phases: création et ouverture Voir Communication inter-processus Paramètres oflag = (O_RDONLY,...) Commande(s) associée(s): emacs, gcc, cp,... Structure(s) interne(s): tables, super-bloc Version Septembre 20 N 67 Création d'un fichier: mécanisme interne Etapes Localisation inode parent (I.P), Recherche nom fichier... Si le nom n existe pas alors: Verrouillage I.P., liste des inodes libres Allocation inode: inode-mémoire = get (inode-disque) Modification I.P.: Informations fichier Sinon (le nom existe) : Désallocation blocs: contenu fichier Non-Modification I.P. Importance des verrous et du mode noyau 25

26 Version Septembre 20 N 68 Ouverture/Création d'un fichier () Processus #include <sys/types.h> yp #include <sys/stat.h> #include <fcntl.h> int main () { int rfd, wfd, rwfd; Attention! if ((rfd = open("/etc/bashrc",o_rdonly)) < 0) erreur; if ((rwfd = open("/etc/bashrc", O_RDWR)) < 0) erreur; if ((wfd = open("/.bashrc",o_wronly O_CREAT)) < 0) erreur; } Action: ouverture: rfd, rwfd - création/ouverture: wfd Version Septembre 20 N 69 Ouverture/Création d'un fichier (2) Processus 2 #include <sys/fcntl.h> #include <sys/stat.h> #include <sys/types.h> int main () { int rfd, wfd; if ((wfd = open("/etc/bashrc",o_wronly)) < 0) erreur; if ((rfd = open("/.bash_profile",o_rdonly)) < 0) erreur; } Deux processus indépendants Des tables partagées et privées Action: ouverture: rfd -ouverture: wfd 26

27 Version Septembre 20 N 70 Ouverture d'un fichier: Vision interne Attention : partage possible dup/fork P Processus Processus P Espace utilisateur Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : O_RDONLY O_RDWR O_WRONLY Table fichiers O_WRONLY O_RDONLY /etc/bashrc N inode : Nb. copies : Inode Infos /.bashrc N inode : Nb. copies : Inode Infos /.bash_profile N inode : Nb. copies : Inode Infos Table inodes 2 3 Version Septembre 20 N 7 Fermeture d un fichier: close Descripteur de fichier Mise à jour des tables internes (processus + noyau) fd est une entrée dans la TDF : open, fork, voie standard Fermeture par le noyau des fichiers à la terminaison d un processus (exit(?)) 27

28 Version Septembre 20 N 72 Fermeture d'un fichier Processus 2 #include <unistd.h> int main () { int rfd, wfd; /* Ouverture et utilisation */... close (rfd); /* exit: fermeture implicite */ close (wfd); /* exit: fermeture implicite */ } Tables fichiers/inodes Décrémentations compteurs Désallocations éléments Libération complète si le compteur atteint 0 Commande(s) associée(s): exit, éditeur Structure(s) interne(s): tables, buffers Version Septembre 20 N 73 Fermeture d'un fichier: Vision interne P Processus Processus P null 4 null 5 Espace utilisateur Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : Position : État : Nombre : O_RDONLY O_RDWR O_WRONLY Table fichiers O_WRONLY O_RDONLY /etc/bashrc N inode : Nb. copies : Inode Infos /.bashrc N inode : Nb. copies : Inode Infos /.bash_profile N inode : Nb. copies : Inode Infos Table inodes

29 Version Septembre 20 N 74 Lecture d un fichier: read Nombre octets lus Descripteur fichier Nombre octets à lire Lieu de stockage données lues Mise à jour des tables internes (noyau) fd est une entrée dans la TDF ouverte en lecture : open, fork, voie standard Allocation de buffer impérative Nb octets lus Nb octets à lire (EOF, périphérique, ) Début = position du curseur Après = position + nb oct.lus Version Septembre 20 N 75 Lecture d'un fichier Processus #include <sys/types.h> #include <unistd.h> int main () { int rfd, nb; char tabp[30]; char tabg[024]; /* Ouverture rfd */... nb = read (rfd, tabp, 30); nb = read (rfd, tabg, 024); nb = read (rfd, tabp, 20); } Lecture à travers une même entrée Commande(s) associée(s): cat, more, emacs,... Structure(s) interne(s): tables, blocs, buffers 29

30 Version Septembre 20 N 76 Lecture d'un fichier: Commentaires Verrouillage/partage Durée d'un read Verrouillage explicite possible Schéma lecteur/écrivain possible Plusieurs descripteurs possibles Lecture réelle Attention: Lecture bloc par bloc Bloc dans le "buffer cache" ou sur le disque? Lecture anticipée Version Septembre 20 N 77 Lecture d'un fichier Processus #include <sys/types.h> #include <unistd.h> int main () { int rfd, rfd2, nb; char tab[30], tab2[30]; /* Ouverture rfd, rfd2 */... nb = read (rfd, tab, 30); nb = read (rfd2, tab2, 30); } Lecture à travers plusieurs entrées attention Ici: 2 descripteurs indépendance fork: "2" descripteurs dépendance 30

31 Version Septembre 20 N 78 Lecture d un fichier (2) Version Septembre 20 N 79 Ecriture dans un fichier: write Nombre octets écrits Descripteur fichier Nombre octets à écrire Données à écrire Mise à jour des tables internes (noyau) fd est une entrée dans la TDF ouverte en écriture : open, fork, voie standard Nb octets écrits Nb octets à écrire EOF, périphérique (imprimante, réseau ), signal, média/quota plein Début = position du curseur Après = position + nb octets écrits 3

32 Version Septembre 20 N 80 Ecriture dans un fichier Processus #include <sys/types.h> #include <unistd.h> int main () { int wfd, nb; char tab[30]; /* Ouverture wfd */ /* Remplissage de tab */... nb = write (wfd, tab, 30); /* Remplissage à partir de tab */... nb = write (wfd, tab, 30); } Commande(s) associée(s): cat, emacs, Structure(s) interne(s): Tables, blocs, buffer Version Septembre 20 N 8 Ecriture dans un fichier (2) 32

33 Version Septembre 20 N 82 Ecriture d'un fichier: commentaires Verrouillage/partage Durée d'un write Verrouillage explicite possible Schéma lecteur/écrivain possible Plusieurs descripteurs possibles Ecriture réelle Allocation de blocs par nécessité (indirect, données) Ecriture partielle Lecture du bloc Ecriture différée des blocs: "buffer cache" Version Septembre 20 N 83 Positionnement dans un fichier: lseek position Descripteur fichier Entier 64 bits déplacement Référentiel Mise à jour des tables internes (noyau) fd est une entrée dans la TDF ouverte en écriture : open, fork, voie standard Retour = position par rapport au début du fichier Référentiel = SEEK_SET, SEEK_CUR, SEEK_END déplacement positif/négatif avant (resp. après) le début (resp. fin) 33

34 Version Septembre 20 N 84 Positionnement : commentaires Référentiel : SEEK_SET SET : par rapport au début SEEK_CUR: par rapport au curseur SEEK_END :par rapport à la fin Comment connaitre la position courante? On peut se positionner i après la fin Toute écriture crée des trous La lecture de trous rend des octets nuls Une position négative est souvent une erreur Version Septembre 20 N 85 Positionnement dans un fichier #include <sys/types.h> #include <unistd.h> int main () { int fd, pos; char tab[30]; /* Ouverture fd */... pos = lseek (fd, 000, SEEK_CUR); // voir aussi SEEK_SET pos = lseek (fd, -50, SEEK_END); } read/write accès séquentiel lseek accès direct Pas d'accès disque Commande(s) associée(s): éditeur Structure(s) interne(s): tables des fichiers 34

35 Version Septembre 20 N 86 Duplication d entrée: dup2 Descripteur fichier à dupliquer Descripteur fichier où copier Mise à jour des tables internes (processus et noyau) fd est une entrée dans la TDF fd2 est une entrée libre (ou qui sera fermée) le contenu de fd est recopié dans fd2 + MAJ de compteurs de références dup réalise la copie dans la première entrée libre Version Septembre 20 N 87 Duplication d entrée: dup Descripteur fichier à dupliquer Démarche. Sauvegarde de fd2 (dup) 2. Recopie de fd dans fd2 3. Restauration (dup2 + close) Idem à dup2 La copie se fait dans la ère entrée libre fl le contenu de fd est recopié dans fl + MAJ de compteurs de références Il est nécessaire de connaître l état de la TDF 35

36 Version Septembre 20 N 88 dup: mécanismes de base () P Processus Position : État : Nombre : Position : État : Nombre : O_RDONLY O_RDWR 2 /etc/bashrc N inode : Nb. copies : Inode Infos 2 Espace utilisateur Table fichiers Table inodes Version Septembre 20 N 89 dup: mécanismes de base (2) Fonctionnement général Duplication i du descripteur de fichier Table des fichiers (ouverture): incrémentation des références Table des fichiers (fermeture): décrémentation des références Table des inodes: pas de modification Deux accès au même buffer Utilisation dup et dup2 (routine) Implémentation du shell: redirections E/S Liens avec les structures internes: voir open 36

37 Version Septembre 20 N 90 dup: exemple simple #include <sys/types.h> #include <unistd.h> #include <fcntl.h> int main () { int fd, nfd; char tab[52], tab2[52]; fd = open ("/etc/bashrc", O_RDONLY); /* ex: fd = 3 */... nfd = dup (fd); /* ex: nfd = 6 */ read (fd, tab, 52); read (nfd, tab2, 52); close (fd); read (nfd, tab2, 52);... } Version Septembre 20 N 9 dup2: exemple simple #include <sys/types.h> #include <unistd.h> #include <fcntl.h> int main () { int fd, nfd; char tab[52], tab2[52]; fd = open ("/etc/bashrc", O_RDONLY); /* ex: fd = 3 */ nfd = dup2 (fd, 4); /* nfd = 4 */ /* si non libre: "4" est fermé avant */ read (fd, tab, 52); read (nfd, tab2, 52); close (fd); read (nfd, tab2, 52);... } 37

38 Version Septembre 20 N 92 dup: exemple de la redirection en shell #include <sys/types.h> #include <unistd.h> #include <fcntl.h> int main () { int pid, fd, nfd;... if ( (pid = fork ()) < 0) erreur; if (pid == 0) { /* Traitement fils */ if (/* redirection */) { fd = open (fichier,...); /* création... */ close (stdout); nfd = dup (fd); /* nfd = stdout */ close (fd); exec de la commande}... }... } Version Septembre 20 N 93 A propos de fcntl Descripteur fichier Commande sur fd Arguments de la commande Commande : fcntl (fd, F_DUPFD, 0) dup (fd) si 0 est libre F_GETFL : attributs positionnés lors de open F_SETFL : nouveaux attributs - dans arg. Seuls O_APPEND, O_NONBLOCK et O_ASYNC Gestion de verrous, Signaux (interruptions IO), PID processus concerné... relatifs au fichier 38

39 Version Septembre 20 N 94 A propos de ioctl Descripteur fichier Commande sur fd Arguments de la commande Commande : Opérations sur un périphérique Pas une commande POSIX Grand nombre de commande qui dépendent du matériel Version Septembre 20 N 95 Opérations atomiques ou pas? Attention : Programmation mono ou multi processus On peut être interrompu entre deux instructions 39

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

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

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

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

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

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

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

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

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

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

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

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

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

Linux 1: Présentation

Linux 1: Présentation 1: Présentation 11.05.04, Avon arrighi@univ-mlv.fr, IGM, Université de Marne-la-Vallée 1: Présentation Unix Normalisation Consortiums Logiciel libre Distributions Conseils Caractéristiques Notions 1: Présentation

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

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

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

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

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

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

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

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

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

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

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

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

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

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

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

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel

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

Premiers pas en Linux

Premiers pas en Linux Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité

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

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

PLAN Introduction à UNIX Patrick Fuchs Dynamique des Structures et Interactions des Macromolécules Biologiques Université Paris Diderot patrick.fuchs@univ-paris-diderot.fr 2 PLAN Système d'exploitation

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

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

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

Découverte des Logiciels Libres. Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr

Découverte des Logiciels Libres. Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr Découverte des Logiciels Libres Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr Découverte des Logiciels Libres 10 Séances de 3h00 [14h00-17h15] 4, 11, 25 février 4, 18, 25 mars 1, 22, 29 avril 6 mai

Plus en détail

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier Tout d abord TIC TC IUT Montpellier Nancy Rodriguez Destruel Dans la salle de cours (et partout ailleurs ) : Ponctualité et assiduité exigées Ne pas manger, ni boire, ni dormir, ni travailler à autre chose

Plus en détail

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.) SYSTEME Chapitre 1 HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.) Ce qu'est un S.E. = partie intelligente d'un système donné. Les S.E. ont évolué au fil des années. Ils dépendent de l'architecture des ordinateurs

Plus en détail

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Aide-Mémoire unix. 9 février 2009

Aide-Mémoire unix. 9 février 2009 Aide-Mémoire unix Nicolas Kielbasiewicz 9 février 2009 Le système d exploitation unix est de plus en plus présent aujourd hui. Comme tous les projets Open Source, on le trouve sous différentes formes :

Plus en détail

Outils pour la pratique

Outils pour la pratique Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.

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

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

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Communication inter-processus (IPC) : tubes & sockets exemples en C et en Java F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Java : implémentation

Plus en détail

LEs processus coopèrent souvent pour traiter un même problème. Ces

LEs processus coopèrent souvent pour traiter un même problème. Ces Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

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

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

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

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

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

Chapitre 02. Configuration et Installation

Chapitre 02. Configuration et Installation Chapitre 02 Configuration et Installation Introduction I- Configuration et Installation de Windows Server 2008 R2 1. Installation du contrôleur de domaine Active directory 2. Création des différents objets

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Environnement Informatique EMSE Linux

Environnement Informatique EMSE Linux Environnement Informatique EMSE Linux Xavier Serpaggi École Nationale Supérieure des Mines de Saint-Étienne. Septembre 2013 Xavier Serpaggi (ENSM-SE) Environnement Informatique

Plus en détail

Séance 0 : Linux + Octave : le compromis idéal

Séance 0 : Linux + Octave : le compromis idéal Séance 0 : Linux + Octave : le compromis idéal Introduction Linux est un système d'exploitation multi-tâches et multi-utilisateurs, basé sur la gratuité et développé par une communauté de passionnés. C'est

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

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

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

Systèmes informatiques

Systèmes informatiques Systèmes informatiques Franck Guingne, sur la base du cours d Olivier Lecarme Cours Licence 1; Semestre 2 2009 2010 Troisième cours : Installation d une distribution GNU/Linux. 1 Les différentes distributions

Plus en détail

Systèmes en réseau : Linux 1ère partie : Introduction

Systèmes en réseau : Linux 1ère partie : Introduction Systèmes en réseau : Linux 1ère partie : Introduction Les fondements de Linux : le logiciel libre Historique de Linux Présentation générale de Linux Les applications à succès Les distributions Qu'est-ce

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

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

Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique Année 2007 Cours Unix-Shell par Karam ALLALI Ecole Spéciale d Informatique Table des matières 1 Introduction. 5 1.1 Historique.................................... 6 1.2 Système d exploitation.............................

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

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

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

Démarrer et quitter... 13

Démarrer et quitter... 13 Démarrer et quitter... 13 Astuce 1 - Ouvrir, modifier, ajouter un élément dans le Registre... 14 Astuce 2 - Créer un point de restauration... 18 Astuce 3 - Rétablir un point de restauration... 21 Astuce

Plus en détail

Simulation d un système de paiement par carte bancaire

Simulation d un système de paiement par carte bancaire Simulation d un système de paiement par carte bancaire Mini projet IN301/IN3ST01-2009-2010 Sujet rédigé par Jean Cousty et Laurent Najman, très librement inspiré d un projet de Jérome Gueydan pour l ENSTA

Plus en détail

Parallels Transporter Lisez-moi ---------------------------------------------------------------------------------------------------------------------

Parallels Transporter Lisez-moi --------------------------------------------------------------------------------------------------------------------- Parallels Transporter Lisez-moi TABLE DES MATIERES : 1. A propos de Parallels Transporter 2. Configurations systиme requises 3. Installer Parallels Transporter 4. Supprimer Parallels Transporter 5. Notice

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

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