Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011.

Slides:



Advertisements
Présentations similaires
Didacticiel Mon EBSCOhost
Advertisements

Module 5 : Implémentation de l'impression
DTD Sylvain Salvati
D/ Partage et permission NTFS
Synchronisation des processus père - fils
C.
Linux de Base Merci à Arnaud dupont.
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
Utilisation de VNC dans une salle informatique avec des élèves
INTRODUCTION.
Introduction : Compilation et Traduction
FLSI602 Génie Informatique et Réseaux
La fonction Style Permet de créer des types de texte, par exemple
Assistance à distance Parfois on se sent bien seul face à un problème informatique surtout si on n’est qu’un simple utilisateur. Lorsqu'un problème survient.
1 vidéogramme séance 2 du 13 février 2012 Micro Informatique au Cellier Joseph HOHN Séance du 13 février 2012 Sur le thème de Découverte de lordinateur.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Systèmes d'exploitations GRARI Mounir ESTO Année 2011.
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Aide-mémoire – FORMULAIRE Web DA/DT
Module 1 : Préparation de l'administration d'un serveur
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
Section XI Traitement de fichiers
Recherche avancée multi-champs EBSCOhost
La création de sinistre, la sélection à des fins de consultation, modification ou impression sont accessibles grâce à la barre de menu à gauche de l'écran.
Version 2007Administration système Linux Francis Rogard 1 SYSTEME DEXPLOITATION LINUX La ligne de commandes.
Une fois le logiciel décompressé, lancer lexécution en cliquant sur « setup »
Système d’exploitation
Les instructions PHP pour l'accès à une base de données MySql
TRANSMISSION DES DONNEES.
Création d'un diaporama Création d'un diaporama
Systèmes d'exploitations
Introduction à la programmation (Java)
Module 6 : Gestion du stockage des données
FICHIERS : Définition : Algorithme général:
Concepts de base. Fichiers et Répertoires Pour le système, des fichiers répertoires (directory files) contiennent les informations permettant de retrouver.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
GPA435 – Lab #2 partie 2 Explications compl é mentaires GPA435 – révision 2013, Tony Wong, ing., Ph.D.
Programmation concurrente
Module 2 : Préparation de l'analyse des performances du serveur
Module 7 : Accès aux ressources disque
Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5.
ÉLÉMENTS DE BASE UNIX.
TP Scripts 1 Commandes périodiques 2 Droits d'accès 3 Liste de processus 4 Application 5 Application graphique © BTS II 2002 [tv]
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Utilisation avancée de linux
Systèmes d'exploitations Processus
Digitaliser des images
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
LES INFOS de Philippe et Patrick Journal d'informations en ligne Infospp.free.fr Mai 2006.
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Systèmes d’exploitation
 Formulaires HTML : traiter les entrées utilisateur
Les schémas anatomiques  Fenêtre appelée à partir de la fiche patient en cliquant sur l'icône " Crâne "
Le Korn Shell. 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande.
Elaboré par Ahmed BESSAIDI
Architecture Client/Serveur
FORMATION Unix/Linux CHAPITRE 3: Commandes De Base.
Scripts et fonctions Instructions de contrôle
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Utiliser le dossier Mon EBSCOhost Tutoriel support.ebsco.com.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011

Les redirections d'entrées/sorties Tout processus effectue ses entrées/sorties via des « descripteurs de fichiers ». Ils sont numérotés à partir de 0. Par convention une commande ou un programme utilise : – le descripteur 0 (entrée standard) pour lire des données, – le descripteur 1 (sortie standard) pour envoyer ses données en sortie et – le descripteur 2 (sortie d'erreur) pour envoyer ses messages d'erreurs.

Les redirections d'entrées/sorties Chaque descripteur peut être associé : – à un fichier, – à un périphérique (terminal par exemple), – au descripteur d'un autre processus. La configuration de ces descripteurs, c'est-à-dire leur association à un fichier ou à un périphérique, fait partie de l'environnement d'un processus.

Les redirections d'entrées/sorties Note : La commande elle même ne connaît pas la destination finale des données qu'elle écrit. Elle se contente d'écrire sur un descripteur. C'est l'interprêteur de commandes qui met en place un environnement spécifique avant d'appeler la commande. Les demandes de redirection sont traitées par l'interpréteur de commandes avant même le lancement des commandes.

Les redirections d'entrées/sorties Première approche Redirection de la sortie standard – Pour rediriger la sortie standard vers un fichier, vous devez utiliser la syntaxe suivante : – commande > fichier – Si le fichier n'existe pas, il est créé par le shell. S'il existe déjà, le shell détruit son contenu pour le remplacer par la sortie de la commande.

Les redirections d'entrées/sorties Première approche – $ who > who.t – $ Cette ligne ne produit aucune sortie sur le terminal. Toutes les informations de la commande who sont écrites dans le fichier who.t – $ cat who.t – c1 tty1 Apr 25 02:44 – c2 tty3 Apr 25 02:55 – c3 tty6 Apr 25 02:33 – $ Le fichier who.t contient la sortie de la commande précédente who, c'estàdire la liste des personnes connectées au système à l'instant où cette commande a été exécutée.

Les redirections d'entrées/sorties Première approche Il est possible de rediriger plus d'une commande dans un fichier, il suffit de délimiter ces commandes par des parenthèses. – $ (date; who) > who.x – $ Les sorties date et who seront redirigées dans le même fichier who.x Si on omet les parenthèses, le shell exécute date, imprime le résultat sur le terminal et ensuite lance who, en redirigeant le résultat sur le fichier who.x.

Les redirections d'entrées/sorties Première approche Pour rediriger la sortie standard dans un fichier, vous pouvez également utiliser la syntaxe suivante : commande >> fichier Dans ce cas, la sortie de la commande est rajoutée à la fin de fichier. Si fichier n'existe pas, le shell le crée. – $ date > date.t ; cat date.t – Sun Jul 31 10:45:21 MET 1996 – $ date >> date.t ; cat date.t – Sun Jul 31 10:45:21 MET 1996 – Sun Jul 31 10:45:22 MET 1996 – $

Les redirections d'entrées/sorties Redirection de l'entrée standard Le shell permet aussi de rediriger l'entrée standard d'un processus, en utilisant la syntaxe suivante : commande < fichier Dans ce cas, la commande lit ses données dans fichier. – $ cat < who.x Cette commande affiche le contenu du fichier who.x.

Les redirections d'entrées/sorties Syntaxe générale n<fichier redirige en lecture le descripteur n sur fichier. Si n n'est pas précisé, ce sera 0 (l'entrée standard). Si fichier n'existe pas le shell renvoie une erreur. n>fichier redirige en écriture le descripteur n sur fichier. Si n n'est pas précisé, ce sera 1 (la sortie standard). Si fichier existe il sera écrasé, sinon créé. n>>fichier redirige en écriture le descripteur n à la fin de fichier, sans détruire les données préalablement contenues par ce fichier. Si n n'est pas précisé, ce sera 1 (la sortie standard). Si fichier n'existe pas il sera créé.

Les redirections d'entrées/sorties Syntaxe générale n<&m duplique le descripteur n sur le descripteur m en lecture, ainsi n et m seront dirigés vers le même fichier, ou le même périphérique. n>&m duplique le descripteur n sur le descripteur m en écriture. n<&- ferme le descripteur n en lecture. n>&- ferme le descripteur n en écriture. Exemples : $ ls > f1 2> f2 $ ls fichinexistant >> f1 2>&1 $ ls fichinexistant 1>> f1 2>>&1 $ ps >&$

Les redirections d'entrées/sorties Remarques générales Il est possible de rediriger à la fois l'entrée et la sortie. Exemples : Les redirections d'entrées/sorties standards sont effectuées par le shell d'une façon totalement indépendante du contexte. Les caractères spéciaux '>' et '<' peuvent être situés n'importe où sur une ligne de commande (précéder ou suivre la commande). $ wc tmp $ cat tmp $

Les redirections d'entrées/sorties Remarques générales Les indications de redirections des entrées/sorties sont traitées par le shell et ne sont pas passées à la commande. Le shell appelle la commande après ces modifications. Un processus ne possède qu'une seule entrée, qu'une seule sortie et une seule sortie d'erreur. Par conséquent chaque descripteur ne peut être redirigé qu'une seule fois par commande : Exemple : cmd > fichier1 > fichier2 Cette ligne de commande n'a pas de sens, et cmd verra sa sortie standard redirigée uniquement vers fichier2, après avoir détruit le contenu de fichier1.

Les redirections d'entrées/sorties Remarques générales Le shell traite les séparateurs avant les redirections ; par conséquent il y a une différence importante entre les deux commandes suivantes : cmd 2> fichier Dans le premier cas, on redirige la sortie d'erreur de la commande cmd vers fichier. Alors que dans le second cas, on redirige la sortie standard de la commande cmd vers fichier et 2 sera considéré comme un argument de cmd (dû à l'espace entre le 2 et le >).

Les redirections d'entrées/sorties Remarques générales On peut rediriger la sortie d'erreur vers la « poubelle » (/dev/null); dans ce cas les messages d'erreur seront perdus : – $ cat fichierinexistant 2>/dev/null – $

Communication entre processus Les utilisateurs disposent d'un mécanisme leur permettant de lancer un certain nombre de processus de façon concurrente (en quelque sorte parallèlement) et communiquant entre eux par l'intermédiaire de tubes (pipes), le système assurant la synchronisation de l'ensemble des processus ainsi lancés. Principe de fonctionnement : la sortie standard d'un des processus est redirigée sur l'entrée dans un tube et l'entrée standard de l'autre processus est redirigée sur la sortie de ce tube. Ainsi les deux processus peuvent échanger des données sans passer par un fichier intermédiaire de l'arborescence.

Communication entre processus Le lancement concurrent de processus communiquant deux par deux par l'intermédiaire d'un tube sera réalisé par une commande de la forme : – commande_1 | commande_2 |... | commande_n Exemple : – $ who > tmp ; grep cours < tmp – cours ttya4 Jul 31 10:50 – cours ttyc6 Jul 31 09:34 – $ rm tmp L'utilisation de la commande rm évite de conserver le fichier intermédiaire.

Communication entre processus L'utilisation d'un pipe (|) permet de résumer ces trois lignes de commandes en une seule : – $ who | grep cours – cours ttya4 Jul 31 10:50 – cours ttyc6 Jul 31 09:34 – $ La sortie produite par la commande who est associée à l'entrée de la commande grep.who donne la liste des personnes connectées au système à un moment donné ; grep cherche si la chaîne cours est présente dans le flot de données qu'elle reçoit. On peut donc considérer que la commande grep joue le rôle de filtre.

Communication entre processus Exemple – $ ps -a | wc -l – 9 – $ La commande "ps -a | wc -l" entraîne la création de deux processus concurrents (allocation du processeur). Un tube (fichier particulier, appelé buffer) est créé dans lequel les résultats du premier processus ("ps -a") sont écrits. Le second processus lit dans le tube. Lorsque le processus écrivain se termine et que le processus lecteur dans le tube a fini d'y lire (le tube est don vide et sans lecteur), ce processus détecte une fin de fichier sur son entrée standard et se termine.

Communication entre processus Le système assure la synchronisation de l'ensemble dans le sens où : il bloque le processus lecteur du tube lorsque le tube est vide en attendant qu'il se remplisse (s'il y a encore des processus écrivains); il bloque (éventuellement) le processus écrivain lorsque le tube est plein (si le lecteur est plus lent que l'écrivain et que le volume des résultats à écrire dans le tube est important). Le système assure l'implémentation des tubes. Il est chargé de leur création et de leur destruction.

Communication entre processus Exemple Un tube de communication (|) permet de mémoriser des informations. Il se comporte comme une file FIFO, d'où son aspect unidirectionnel. Pour vérifier que plusieurs processus existent simultanément, il suffit de lancer la séquence suivante : $ ps -l | tee /dev/tty | wc -l F S UID PID PPID PRI... CMD 1 S bash 1 R ps 1 S tee 1 S wc $

Communication entre processus Exemple La commande "tee fichier" utilisée ici correspond au schéma suivant : Elle permet d'envoyer à la fois sur sa sortie standard et dans le fichier de référence donné en paramètre ce qu'elle lit sur son entrée standard (ici la référence utilisée est /dev/tty qui permet de visualiser à l'écran les résultats de la commande ps).

Communication entre processus PS : Les commandes ayant la propriété à la fois de lire sur leur entrée standard et d'écrire sur leur sortie standard sont appelées des filtres. Les commandes cat, wc, sort, grep, sed, sh ou awk sont des filtres ; par contre echo, ls ou ps n'en sont pas.

Communication entre processus Autre exemple d'utilisation de la commande tee : ls envoie la liste des fichiers contenus dans le répertoire /tmp sur sa sortie standard cette sortie est associée à l'entrée standard de grep grep lit les données qui arrivent sur son entrée standard, sélectionne les lignes contenant c1, et les envoie sur sa sortie standard cette sortie est associée à l'entrée standard de tee

Communication entre processus Autre exemple d'utilisation de la commande tee : tee se contente de dédoubler ses sorties, c'est à dire de lire les données qui arrivent sur son entrée standard, et d'envoyer ces données sur sa sortie standard et sur le fichier dont le nom est donné en argument, ici « out ». Note : vous ne verrez aucun des résultats intermédiaires de cette suite de pipes.