TP 18 - Communication
|
|
- Arthur César Bossé
- il y a 8 ans
- Total affichages :
Transcription
1 TP 18 - Communication 3 GI, INSA de Lyon Mars Objectifs Le but de ce TP est d étudier la programmation directe à bas niveau du hardware d un ordinateur et du système d exploitation (Linux). Pour cela, de nouveaux concepts sont présentés : le signal, lié au concept de l interruption la temporisation le fichier virtuel, utilisé pour gérer un périphérique Quelques remarques : N oubliez pas de consulter le manuel de Linux si vous avez besoin de plus d informations sur une fonction (e.g., man open ). N oubliez pas de vérifier les valeurs renvoyées par les fonctions (ex. open(), read(), write(), ioctl(), etc.). Pensez que le code d exemple dans ce sujet n est pas toujours à copier-coller! (Ceci est une remarque moins évidente que l on pourrait croire). Souvent il s agit du prototype d une fonction ou de la déclaration d une structure qui permet d expliquer le type de chaque paramètre d une fonction!! Les exercices 2 et 3 nécessitent les permissions d administrateur lors de l exécution du programme (demander au prof). Les fichiers suivants sont à inclure dans tous les exercices : #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> Exercice 1 : capturer un signal Cet exercice utilise le signal SIGINT pour terminer un programme bloqué dans une boucle sans fin. Pour cela, il faut capturer ce signal par une routine avant de bloquer le processus principal. Quand le signal est reçu, un message est écrit sur l écran avant de terminer le programme. Le signal SIGINT peut être envoyé par l utilisateur en appuyant sur les touches CTRL + C ou par le terminal en exécutant la commande kill. Exercice 2 : programmer une temporisation Dans cet exercice nous écrivons un programme qui va jouer une plage de fréquences sur l haut-parleur interne du PC. Les bornes de la plage (les limites inférieure et supérieure de 1
2 la fréquence) ainsi que la vitesse de changement sont saisies au clavier. Ensuite, la plage est jouée. En parallèle, une nouvelle commande peut être saisie au clavier. Cet exercice reprend la notion de signal de l exercice précédent. Nous mettrons en place une temporisation déclenchant un signal toutes les 1/10 seconde. Le signal est capturé par une routine chargée de programmer la fréquence courant en respectant les commandes dans des variables globales. Ces variables sont mises à jour par le programme principal. Remarque : lors de la programmation d un système de signal l utilisation des variables globales est permise. Dans ce cas, les variables globales sont nécessaires puisqu il est impossible de rajouter un argument à une routine gérant un signal. Exercice 3 : programmer le port série (logiciel de chat ) Nous désirons faire communiquer deux PC par l intermédiaire de leurs ports série. La communication sera alternée : un PC émet pendant que l autre reçoit. Puis, ils échangent leur rôle à la réception/émission du caractère spécial \n (nouvelle ligne : clavier Entrée ). La fin de la communication est déclenchée à l émission/réception du caractère #. Le logiciel de chat utilisera le mode dite non-canonique, c.à.d. chaque caractère est immédiatement envoyé au récepteur. Le transfère ne s effectue donc pas ligne par ligne ou message par message. 2
3 2 Interruptions et signaux Un système d interruptions est un outil technique crucial pour la programmation d un système de contrôle : l ordinateur est capable d interrompre la tâche en cours d exécution et de changer de contexte. Cet ordonnancement est basé sur la génération d interruptions. Une interruption déclenche l exécution d une fonction associée à l interruption (un gestionnaire d interruptions ou handler ). Cela permet de gérer les périphériques de manière asynchrone, sans avoir besoin de boucler en attendant qu un registre soit à la bonne valeur ou qu une opération soit terminée. Lorsqu un périphérique a besoin de signaler un événement au noyau (par exemple une touche du clavier est appuyée), il déclenche une interruption. Sous UNIX, le noyau du système gère tout ce qui est de bas niveau, c.à.d la gestion des processus, des interruptions matérielles, etc... Il est donc impossible de changer directement les routines associées aux interruptions. C est pour cela que la programmation de routines asynchrones est réalisée à l aide de signaux. Les signaux sont des interruptions logicielles. Comme les interruptions, les signaux sont envoyés pour indiquer l arrivée d un événement, par exemple : signalisation des erreurs, violation mémoire, erreur dans une E/S, terminaison par l utilisateur. Les signaux peuvent être envoyés par un processus afin de communiquer avec d autres processus. Chaque signal est identifié par un numéro, représenté par une constante déclarée dans la librairie signal.h, par exemple : Signal Function SIGALRM Alarm clock SIGTERM Terminaison SIGINT Interruption SIGUSR1 User signal 1 SIGUSR2 User signal 2 SIGPIPE Broken Pipe SIGKILL Killed SIGQUIT Quit SIGTERM Terminated Dans un terminal, la commande kill permet d envoyer un signal à un processus en spécifiant son PID. Par défaut, le signal SIGINT est envoyé. Un Exemple : kill Cette commande envoie le signal SIGTERM (=9) au processus ayant le PID Comportement vis à vis des signaux Plusieurs comportements d un processus vis à vis d un signal sont possibles : terminer (souvent par défaut) capturer (certains signaux) ignorer (certains signaux) 3
4 Un processus peut modifier son comportement suivant le signal reçus par l appel de la fonction signal() : sighandler_t signal(int signum, sighandler_t new_handler); La fonction signal prend comme premier paramètre le signal à gérer. Le deuxième argument est un pointeur sur la fonction qui va être exécutée lorsque le signal sera reçu (handler=sig IGN permet au processus appelant d ignorer le signal). La fonction renvoie le pointeur à la fonction qu était installée avant l appel. Rappel : en C ou C++, un pointer sur une fonction est obtenu en spécifiant le nom de la fonction, sans parenthèses. La déclaration d une variable de type pointeur sur une fonction, nécessaire pour stocker l ancien handler renvoyé par signal(), se fait comme suit : void (*old_handler)(int); Les fichiers suivants sont à inclure : #include <unistd.h> #include <sys/signal.h> 3 Programmer une temporisation Le système fournit pour chaque processus trois temporisations, chacune avec un fonctionnement particulier. Dans cet exemple nous nous servons de la temporisation ITIMER REAL qui décroît en temps réel une fois le processus est démarré. Un signal SIGALRM est émis à l expiration du délai et la temporisation redémarre éventuellement. Lors de la configuration de la temporisation, deux propriétés lui sont associées : la durée de l intervalle (it interval) et la valeur courante (it value). Les temporisations décroissent de it value à zéro, déclenchant un signal, et sont remplacées à it interval. Une temporisation s arrête si elle est mise à zéro (it value vaut zéro) ou bien elle expire et it interval vaut zéro. Une temporisation est configurée par la fonction suivante : int setitimer(int which, const struct itimerval *val, struct itimerval *old); setitimer() positionne la temporisation avec les valeurs de val. Si old est non NULL, les paramètres précédents de la temporisation y sont inscrits. La fonction renvoie 0 si elle réussit, ou -1 si elle échoue, auquel cas errno contient le code d erreur. Les arguments new est old sont de type struct itimerval, une structure prédéfinie dans la librairie sys/time.h. Elle comprend les éléments nécessaires pour stocker les deux proprietés d une temporisation (it interval) et (it value). Chaque unité de temps est séparée en deux parties secondes et µ-secondes à l aide d une structure timeval : 4
5 struct itimerval { struct timeval it_interval; /* valeur suivante */ struct timeval it_value; /* valeur actuelle */ }; struct timeval { long tv_sec; /* secondes */ long tv_usec; /* micro secondes */ }; Le fichier suivant est à inclure : #include <sys/time.h> 4 Entrée/sortie avec les appels systèmes Jusqu à présent, les fonctions d entrée et de sortie que nous avons évoquées (fprintf, fscanf, etc.) sont de haut niveau. Elles sont indépendantes des systèmes d exploitation que l on utilise. Nous allons nous intéresser, à présent, à des fonctions de plus bas niveau qui peuvent différer d un système à l autre. Dans cette famille d appels systèmes, nous identifions les différents flux entrées/sorties par des entiers appelés descripteurs. Les périphériques (clavier et écran par exemple), peuvent ainsi être utilisés par les mêmes appels de systèmes que pour les fichiers. Sous UNIX, on considère souvent toute forme d entrée/sortie comme un fichier (virtuel). Les avantages d utiliser directement les appels systèmes pour manipuler des fichiers (comparé à scanf() par exemple) sont qu ils sont plus rapides, et généraux. scanf() et printf() utilisent des tampons pour éviter d appeler trop souvent les appels systèmes read() et write(). Cependant, dans certains cas, cela peut être un désavantage. Les fichiers suivants sont à inclure : #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> Ouverture d un fichier int open(const char *pathname, int flags, mode_t mode); open() ouvre un fichier et retourne un descripteur de fichier (petit entier non négatif à utiliser avec read, write, etc...). flags est l un des éléments O RDONLY, O WRONLY ou O RDWR qui réclament, respectivement, l ouverture du fichier en lecture seule, écriture seule, ou lecture/écriture. D autres options peuvent être rajoutées dans certains cas. Par exemple, en ouvrant un l option O NOCTTY nous permet de nous détacher du terminal, puisque nous ne voulons pas être terminé si l on reçoit un caractère CTRL-C (le comportement par défaut). 5
6 Fermeture d un fichier int close(int fd); La fonction close() ferme le descripteur fd. Lecture ssize_t read(int fd, void *buf, size_t count); read() lit jusqu à count octets depuis le descripteur du fichier fd dans le tampon pointé par buf. La fonction renvoie -1 si elle échoue, auquel cas errno contient le code d erreur. Sinon, read renvoie le nombre d octets lus (0 en fin de fichier). Ecriture ssize_t write(int fd, const void *buf, size_t count); write écrit jusqu à count octets dans le fichier associé au descripteur fd depuis le tampon pointé par buf. La fonction renvoie le nombre d octets écrits (0 signifiant aucune ecriture), ou -1 si elle échoue, auquel cas errno contient le code d erreur. Fichiers et périphériques Sous UNIX, un périphérique est géré par l intermédiaire d un fichier virtuel correspondant situé dans le répertoire /dev (Angl. device =périphérique). Ainsi, l interface de série peut être utilisée en ouvrant le fichier /dev/ttys0, la souris est géré par le fichier /dev/mouse, etc. Lors du démarrage d un processus, trois fichiers virtuels sont ouverts automatiquement par le système : il s agit de l entrée standard, la sortie standard et la sortie d erreur. Leurs descripteurs sont 0, 1 et 2 (respectivement) : descripteur fonction equiv. librairie C equiv. librairie C++ par défaut 0 entrée standard stdin cin clavier 1 sortie standard stdout cout écran (terminal) 2 sortie erreur stderr cerr écran (terminal) 5 Programmer le haut-parleur interne L accès au haut-parleur interne d un PC se fait par l intermédiaire d un fichier virtuel /dev/console. L émission d un son avec la fréquence freq est déclenchée par la commande : ioctl(fd,kiocsound, /freq); 6
7 fd est le descripteur du fichier /dev/console et KIOCSOUND est une constante prédéfinie. La commande ioctl() renvoie 0 si elle réussit, ou -1 si elle échoue, auquel cas errno contient le code d erreur. Les fichiers suivants sont à inclure : #include <sys/ioctl.h> #include <linux/kd.h> 6 Configurer le clavier et le port série Par défaut, la plupart d entrées et de sorties de Linux sont configurées en mode canonique, c.à.d les caractères reçus sont stockés dans un tampon et ils ne sont disponibles qu à la réception d un caractère \n. Ceci est un handicap pour notre logiciel de chat : un caractère rentré par l émetteur ne serait pas disponible tout de suite sur l écran du récepteur. Il serait envoyé avec le reste de la ligne après la saisie du retour à la ligne (clavier Entrée ). Pour éviter cette situation, nous allons configurer les entrées en mode non-canonique, c.à.d. tous les caractères sont immédiatement disponibles à la lecture. Ce raisonnement s applique à la gestion du port série aussi qu à la lecture du clavier. Par défaut, la lecture du clavier à l aide des fonctions scanf() et getch() ainsi qu à l aide de l appel système read() est configurée en mode cannonique. Pour se servir du mode noncannonique, le paramétrage du périphérique doit être changé. De plus, les fonctions fprintf() et fscanf() ne sont pas supportées. La configuration d un port de communication (terminal, clavier, port série, etc.) est réalisée par deux fonctions : int tcgetattr (int fd, struct termios *termios_p); int tcsetattr (int fd, int optional_actions, struct termios *termios_p); tcgetattr() obtient les paramètres associés à l objet référencé par le descripteur fichier fd et les stocke dans la structure termios pointée par termios p. tcsetattr() fixe les paramètres du terminal en lisant la structure termios pointée par termios p. optional actions précise quand les changements auront lieu (=TCSANOW dans le cadre de ce TP). La structure termios est prédéfinie dans la librairie termios.h. Dans ce TP nous ne nous intéressons pas à toutes les propriétés d un port de communication, puisqu elles dépendent du type de port (clavier, port série) et de l utilisation. Ceci est expliqué dans les sous sections suivantes. Les fichiers suivants sont à inclure : #include <termios.h> #include <unistd.h>device 7
8 6.1 Configurer le clavier Concernant le clavier, le seule paramétrage que nous désirons faire est le passage au mode non-cannonique. Ceci se fait en changeant l élément c lflag de la structure termios : val.c_lflag &= (~ICANON); Bien évidemment, la variable val de type struct termios doit être chargée avec tcgetattr() avant le changement. Ensuite, les changements sont appliqués à l aide de la fonction tcsetattr(). Rappelons nous, que nous n avons pas besoin d ouvrir le clavier avec open(). Le descripteur fichier du clavier est disponible dés le démarrage du programme, il est égale à Configurer le port série Comme nous l avons déjà évoqué, le fichier virtuel gérant le port série est le fichier /dev/ttys0. Concernant le paramétrage du port série nous suivons une autre stratégie : tous les éléments d une structure termios sont initialisés à zéro à l aide de la fonction memset(). Ensuite, les différents éléments sont remplis avec des constantes définissant les paramètres de la connexion : memset (&newtio, 0, sizeof(newtio)); newtio.c_cflag = B38400 CRTSCTS CS8 CLOCAL CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; newtio.c_lflag = 0; newtio.c_cc[vtime] = 0; newtio.c_cc[vmin] = 1; La fonction des paramètres est expliquée dans le tableau suivant : Constante B38400 CRTSCTS CS8 CLOCAL CREAD IGNPAR fonction affecte la vitesse contrôle de flux matériel 8n1 (8 bits, sans parité, 1 bit d arrêt) permet la connexion locale, pas de contrôle par le modem permet la réception des caractères permet d ignorer les octets ayant une erreur de parité Bien évidemment, comme dans le cas du clavier, les changements doivent être appliqués à l aide de la fonction tcsetattr(). Après l ouverture et la configuration, nous pouvons accéder au port série comme nous accédons à un fichier, c.à.d. à l aide des appels système read() et write. 8
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étailProgrammation 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étailLe 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étailLe 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étailProgrammation 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étailGESTION 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étailCours 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étailCours 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étailLEs 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étailIntroduction 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étailDans 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étailProgrammation 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étailLe 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étailCours 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étailBases 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étailLes 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étailLes 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étail3IS - 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étailENSP Strasbourg (Edition 2009-2010) Les Systèmes Temps Réels - Ch. DOIGNON. Chapitre 3. Mise en œuvre : signaux, gestion du temps et multi-activités
Chapitre 3 Mise en œuvre : signaux, gestion du temps et multi-activités 77 GENERALITES SUR LES SIGNAUX Un signal est une information de contrôle (requête) transmise à un processus par un autre processus
Plus en détailPlan 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étailArguments 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étailEPREUVE 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étail1 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étailCours de S.E. les Signaux
Cours de S.E. les Signaux A. Dragut Univ. Aix-Marseille, IUT Aix en Provence 2012 A. Dragut Cours de S.E. les Signaux 1 / 76 Plan notion noms et numéros kill() effets de l arrivée des signaux Dynamique
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailPlaying 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étailExé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étailIntroduction à 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étailTravaux 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étailStructure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
Plus en détailProgrammation système
Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailCommunication Interprocessus
Communication Interprocessus Introduction Segments de données et fichiers communs Les signaux Les tubes de communication d UNIX Tubes anonymes Tubes nommés Les tubes de communication de Windows Tubes anonymes
Plus en détailAlgorithmique 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étailTRAVAUX 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étailIntroduction à 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étail1. 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étailLes processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)
Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les
Plus en détail03/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étailCARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1
CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table
Plus en détailDUT 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étailOutils 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étailRappels 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étailSystè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étailProcessus! 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étailManuel 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étailWinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits
WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits Manuel d initiation du Planificateur 2 INTRODUCTION 5 CHAPITRE I : INSTALLATION
Plus en détailSession 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étailCahier 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étailContrôle d accès UTIL TP N 1 découverte
Contrôle d accès UTIL TP N 1 découverte A partir de : Documents sur CD TIL : \CD usesame\documentations\produits_til\modules\util_tillys fpr_utilv2.pdf FTe_UTiL_V2.pdf UTiL2_express.pdf \CD usesame\documentations\logiciels_til\tilman
Plus en détailArchitecture 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étailSYSTÈ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étailINITIATION 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étailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailTravaux 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étailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailLe 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étailGuide de l utilisateur Mikogo Version Windows
Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste
Plus en détailOrdinateurs, Structure et Applications
Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détail- Visioconférence - Utiliser NetMeeting au quotidien. Richard BONMARIN DSO/DSI/EMC-EBZ
- Visioconférence - Utiliser NetMeeting au quotidien Richard BONMARIN DSO/DSI/EMC-EBZ Janvier 2001 Sommaire 1 LES CONDITIONS DE MISE EN OEUVRE... 3 1.1 INTÉRÊT DE LA CHOSE... 3 1.2 COMPOSANTS MATÉRIELS
Plus en détailSYSTÈ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étailApplications client/serveur TCP/IP - Sockets Rappels. C.Crochepeyre Applications CS 1
Applications client/serveur TCP/IP - Sockets Rappels C.Crochepeyre Applications CS 1 PLAN Modèle client/serveur Modèle ISO et protocole TCP/IP Comment ça marche? La programmation: les sockets Exemples
Plus en détailUnix : 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étailGuide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4
D3E ELECTRONIQUE Copyright D3E Electronique SAS 2010 Guide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4 D3E Electronique Parc du Grand Troyes - 3 Rond-point Winston Churchill - 10302 SAINTE
Plus en détailASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :
TP1 ASR4 Réseaux Département Informatique, IUT Bordeaux 1 ASR4-R Prénom : Nom : Groupe : 1 Gestion du réseau virtuel Le réseau virtuel utilisé lors de ce TP a été réalisé avec NEmu (Network Emulator),
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailSystème et réseaux (SR1) Gestion des utilisateurs
Système et réseaux (SR1) Gestion des utilisateurs Il existe un utilisateur privilégié (de nom root et de groupe root) qui dispose de droits étendus sur le système de fichier et sur le contrôle de l'activité
Plus en détailGuide Utilisateur Transnet
Guide Utilisateur Transnet > Sommaire 1 I Introduction 3 2 I Les premiers pas sous Transnet 4 2.1 Configuration informatique nécessaire pour accéder à Transnet 4 2.2 Initialisation de Transnet 4 3 I Téléchargement
Plus en détailSCL LOGICIEL DE CONTROL
SCL LOGICIEL DE CONTROL Version 1.3 MRC AUDIO LD- 500 www.mrcaudio.com 1 Contenu 1 - Bienvenu a MRC AUDIO SCL v1.3 2 - Installation du logiciel 3 - Configuration du programme SCL 4 - Contrôle des installations
Plus en détailPremiers pas avec NetSupport SCHOOL
Premiers pas avec NetSupport SCHOOL QUERY INFORMATIQUE 1 boulevard Charles de Gaule 92700 COLOMBES - FRANCE Tel. : + 33 (0) 1.49.97.33.00 Fax : + 33 (0) 1.49.97.33.09 www.query-informatique.com Sommaire
Plus en détailProgrammation en langage C
Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des
Plus en détailTutorial Terminal Server sous
Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailST1 (Installation-Protection) 1 ST1. Version 23. Janvier 2013. Calcul de structures. Installation Protection S E T R A
ST1 (Installation-Protection) 1 ST1 Version 23 Janvier 2013 Calcul de structures Installation Protection S E T R A ST1 (Installation-Protection) 2 TABLE DES MATIERES PROCEDURE D'INSTALLATION...3 1.1 -
Plus en détailLes débordements de tampons et les vulnérabilités de chaîne de format 1
Les débordements de tampons et les vulnérabilités de chaîne de format 1 Patrice Lacroix Groupe LSFM Département d informatique et de génie logiciel Université Laval 18 décembre 2002 1 Cette recherche a
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailCompression 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étailProgrammation Réseau. Anthony Busson IUT Info Lyon 1
Programmation Réseau Anthony Busson IUT Info Lyon 1 Plan du cours Introduction Rôles du système et des applications Rappel TCP-IP Panorama des langages Couche socket : introduction Panorama de la couche
Plus en détailLes 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étailChap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
Plus en détailUniversal Robots. Fiche Méthode : Installation du simulateur Polyscope
Objectif : Installer le simulateur Polyscope sur un ordinateur Windows. Une connexion internet est requise pour cette installation. Méthode : Téléchargez le fichier Ubuntu.zip sur notre site puis décompressez
Plus en détailVirtualisation 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étailOrdinateurs, Structure et Applications
Ordinateurs, Structure et Applications Cours 13, Le DOS Etienne Tremblay Université Laval, Hiver 2011 Cours 13, p.1 Le DOS DOS signifie Disk Operating System Le DOS est un système d exploitation. Il existe
Plus en détailAdministration de Parc Informatique TP07 : Installation de Linux Debian
Institut Galilée L2 Info S1 Année 2012 2013 1 Une machine virtuelle Administration de Parc Informatique TP07 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution
Plus en détailConventions 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étailINSTALLATION ET CONFIGURATION DE OPENLDAP
INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration
Plus en détailLe système GNU/Linux IUP NTIC2-1013 - 17/11/05
Capocchi Laurent Doctorant en Informatique capocchi@univ-corse.fr http://spe.univ-corse.fr/capocchiweb Objectifs Comprendre les notions de noyau Linux et des modules. Le système GNU/Linux IUP NTIC2-1013
Plus en détailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en détailTHEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs
Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et
Plus en détailProgrammation 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étailFormation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session 2012-2013 J04 Version 01
Formation Technicien Supérieur de Support en Informatique T2SI Le module LINUX Session 2012-2013 J04 Version 01 Christian DELAIR christian@delair.fr.eu.org GRETA / GITA Formation continue au Lycée polyvalent
Plus en détailPocketNet SNMP/Modbus
Volume 1 RBEI-ADISCOM Manuel utilisateur PocketNet SNMP/Modbus CONVERTISSEUR SERIE - ETHERNET Manuel utilisateur PocketNet SNMP/Modbus Table des matières CHAPITRE 1 Caractéristiques utiles à la mise en
Plus en détailOrdinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un
ESZ Introduction à l informatique et à l environnement de travail Éric Gaul (avec la collaboration de Dominic Boire) Partie 1: Concepts de base Ordinateur Logiciel Mémoire Données Entrées/sorties Périphériques
Plus en détailPlantVisorPRO. Supervision d installations. Manuel rapide. Integrated Control Solutions & Energy Savings
PlantVisorPRO Supervision d installations Manuel rapide Integrated Control Solutions & Energy Savings +040000082 ver. 2.0 14/09/2010 2 Indice PlantVisorPRO 1 1. IntroduCTION 5 7. PersonNALISER L INTERFACE
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 Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation
Plus en détailProcédure d installation :
Procédure d installation : 1 / Pré-requis : Vous pouvez télécharger le fichier d installation sur le site Internet de Microsoft à l adresse suivante : http://www.microsoft.com/downloads/details.aspx?familyid=01af61e6-2f63-4291-bcad-
Plus en détailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détail