A réaliser par binôme. Le travail à réaliser est composé de quatre parties.

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

Download "------------------ ------------------ A réaliser par binôme. Le travail à réaliser est composé de quatre parties."

Transcription

1 ROJET RCHITECTURE Titre : OUTILS POUR LE DIAGNOSTIC SUR UN SYSTÈME LINUX A réaliser par binôme. Le travail à réaliser est composé de quatre parties. Une machine virtuelle Ubuntu avec tous les outils dont vous avez besoin est fournie. Il est conseillé de travailler avec cette machine virtuelle et d'utiliser VirtualBox by Oracle ( sur Mac/Windows/Linux pour la lancer. ARECAR nsary Projet réalisé par ALI ASIC, DIRIL NOEL, MARECAR ANSARY tous étudiant en informatique.

2 Partie 1 : tester les performances du disque 1.1 L'outil bonnie++ Il s'agit d'un utilitaire qui effectue des tests de performance de votre système de fichiers. Dans un système de fichiers, on y écrit et on y lit. Ces opérations peuvent être effectuées de manière séquentielle, octet par octet ou par blocs de tailles fixes. On peut aussi être amené à lire (dans un fichier) de manière aléatoire, par exemple on lisant le premier octet puis le 1000ème puis le 50ème etc. Ces différentes donnent d'accès impactent sur les performances que l'on peut obtenir c est à dire sur le nombre de kb/s que l'on peut attendre. On observe généralement que les méthodes séquentielles sont plus performantes (en terme de kb/s) que les accès aléatoires par exemple. Nous allons vous demander d'observer, grâce à bonnie++, des performances du système de fichiers, et selon différents schémas d'accès.. Exemple d'un test bonnie++ #./bonnie++ -u root Using uid:0, gid:0. Writing with putc()...done Writing intelligently...done Rewriting...done Reading with getc()...done Reading intelligently...done start 'em...done...done...done... Create files in sequential order...done. Stat files in sequential order...done. Delete files in sequential order...done. Create files in random order...done. Stat files in random order...done. Delete files in random order...done. Version 1.03d Sequential Output Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP localhost 300M Sequential Create Random Create Create-- --Read--- -Delete-- -Create-- --Read--- -Delete files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP localhost,300m,6000,40,5913,9,4213,10,10407,86,20664,20,1078.1,13,16,10,93,+++++,+++,74,63,1 7,90,+++++,+++,27,58 La dernière ligne est au format CSV (c'est un format pour tableurs comme Exel ou Calc de Libreoffice)

3 Questions Quelle est la taille du fichier qui a été utilisée dans le précédent exemple? (Hint : lire la page du manuel de bonnie++) D'après la page de manuel de bonnie++, on remarque que la taille du fichier du précédent exemple est de 300Mo. Lancer la commande précédente dans votre machine virtuelle Ubuntu. c) Interpréter la dernière ligne de l'exemple précédent i.e. les résultats expérimentaux du point b) (à quoi correspondent les valeurs obtenues) La dernière ligne est au format CSV (c'est un format pour tableurs comme Exel ou Calc de Libreoffice). La dernière ligne nous donne des informations sur la vitesse de lecture (en K/sec) et du pourcentage du processus utilisé pour chaque sortie (input/output). 3000M Correspond à la taille du fichier utilisé pour le test Ecriture du fichier 6000 Par caractère, Bonnie a enregistré une vitesse de sortie de 80 K /seconde. 40 Ce travail a consommé 99% du temps du CPU. Lecture du fichier 5913 Par caractère, Bonnie a enregistré une vitesse d'entrée de 549 k/s 9 Ce travail a consommé 99% du temps du CPU Processus de recherche 4213 Le processus de recherche aléatoire à durée sec 10 Ce processus a utilisé 228% du temps du CPU Files 16 Le système indique la présence de 16 fichiers (ou pas) Création séquentielle La création séquentielle a duré sec et a demandé 81% du temps du CPU C est le temps que le système a pris lors de la suppression des fichiers et cela a demandé 75% du temps du CPU Création aléatoire La création séquentielle a duré sec et a demandé 81% du temps du CPU C est le temps que le système a pris lors de la suppression des fichiers et cela a demandé 75% du temps du CPU

4 Les résultats suivant sont autres que les temps de latences pour chacun des processus. d) Relancer un test pour évaluer les performances du répertoire /tmp Qu'observez-vous? bonnie++ -d tmp -u root -s300 -r2 Normalement votre HOME directory correspond à un disque qui est sur le réseau et /tmp un répertoire qui est physiquement attaché à votre machine. Nous devrions obtenir des performances différentes car généralement, accéder à un disque réseau coûte "plus cher" qu'accéder à une partition locale. e) Montez une clé USB (attention, cela peut être technique de rendre visible cette clé à la machine virtuelle) et refaite un test pour évaluer les performances de la clé USB. On peut voir que les résultats au niveau des différentes vitesses enregistrées sont beaucoup moins bons puisque le test a été effectué sur une clé USB qui n'appartient donc pas physiquement à la machine. En revanche on peut voir que le travail du CPU est moins important que sur les précédents tests. f) Faites une synthèse de tous les résultats expérimentaux. On peut apercevoir que les tests sur le HOME directory et sur le répertoire /tmp ont des résultats qui sont assez proche mais diffèrent, cependant le test sur la clef USB présente des résultats bien plus faibles.

5 1.2 L'outil sysstat On veut comparer les résultats expérimentaux fournis par bonnie++ avec ceux qui sont fournis par les outils Sysstat ( Sysstat est en faîte un ensemble de programmes qui permet non seulement de récupérer de l'information sur les performances des disques mais aussi sur les performances du processeur, de la mémoire, du réseau. Avant toute chose, faites un man iostat et un man pidstat qui sont les deux outils étudiés. a) Première expérimentation : L'outil sysstat a)./iostat (PASS1)./bonnie++ -u root./iostat (PASS2) Meilleur rapidité d ecriture et de lecture que sur PASS1 les 2 valeurs en correspojndent pas b)./pidstat -d

6

7 ./bonnie++ -u root

8 ./pidstat -d On observe que lors de notre deuxième lancement de pidstat les différents processus prennent plus de RAM

9 Partie 2 : débogage avec ddd Un débogueur (ou débogueur, de l'anglais debugger) est un logiciel qui aide un développeur à analyser les bugs d'un programme. Pour cela, il permet d'exécuter le programme pas-à-pas, d'afficher la valeur des variables à tout moment, de mettre en place des points d'arrêt sur des conditions ou sur des lignes du programme... Les outils installés dans votre machine virtuelle Ubuntu sond ddd (outil graphique), gdb et lldb (outils en mode texte). On lance ddd en tapant ddd sous le prompt Linux. Le programme C que l'on va tracer doit avoir été compilé avec l'option -g (g comme debugging), sinon il ne sera pas possible de travailler avec ces outils. La grande majorité des débogueurs offrent des fonctionnalités similaires à celles qui suivent : a) Outils pour stopper (mettre en pause) l'exécution du programme o commande d'arrêt manuel : le programmeur peut décider à tout moment de stopper l'exécution o point d'arrêt : placé à un endroit spécifique du programme (généralement dans le code source), il indique au débogueur d'arrêter l'exécution lorsqu'elle atteindra cet endroit o point d'arrêt conditionné : comme le point d'arrêt, mais avec une condition supplémentaire (comme le nombre de passages sur ce point d'arrêt par exemple) o point d'observation (watch) : permet d'arrêter l'exécution du programme sur la condition de la modification d'une variable b) Outils pour piloter l'exécution du programme o pas-à-pas : exécution instruction par instruction o pas-à-pas sommaire : une instruction est exécutée, dans le programme principal, à chaque fois que le programmeur le demande o pas-à-pas détaillé : comme le pas-à-pas sommaire, sauf que le pas-à-pas entre aussi dans les fonctions o avec cadencement : à intervalles périodiques, une instruction est exécutée (cela permet de ralentir l'exécution du programme afin qu'elle puisse être suivie de près par l'œil humain) o redémarrage de la fonction courante (drop frame) : abandon de l'exécution actuelle de la fonction courante et démarrage d'une nouvelle exécution de la fonction courante o retour en arrière : revenir à l'instruction précédente, en retrouvant l'état précédent (fonctionnalité assez rare) c) Outils pour observer l'état du programme o observation d'une variable o observation d'une zone mémoire o observation d'un registre du microprocesseur o observation de la pile d'appel (backtrace) o observation du code source avec point d'exécution actuel o observation du code assembleur (sauf langage interprété) avec point d'exécution actuel o trace : permet d'observer des informations en différé, sans stopper l'exécution du programme En outre, le débogueur permet généralement de modifier l'état du programme, lorsque son exécution est stoppée : o modification d'un registre o modification d'une variable o modification d'une zone mémoire Votre travail : nous allons travailler sur le code source td09.c qui est dans le répertoire M2101.

10 Questions : Ce programme comporte des erreurs. Essayez de les repérez, ne les corrigez pas. Le but de ce programme est de remplir un tableau avec des valeurs, puis de faire des modifications de ces valeurs (multiplier par deux, puis ajouter 1). Check list : o Compilez le programme, et exécutez-le avec le débogueur ddd. Le listing du programme doit s'afficher. o Commencez, avant de faire tourner le programme par insérer un point d'arrêt au début du main, un point d'arrêt dans la toute première boucle, un point d'arrêt dans la fonction fact.

11 o Faites afficher la fenêtre de données de ddd. En faisant un clic droit, faites afficher toutes les variables du programme. Que se passe-t-il si on essaye d'afficher NUM? NUM a été déffinie au début du programme et doit retourner 6. Or dans ce cas ce n es pas cela! Que remarque-t-on quand on essaye d'afficher la variable i de la fonction fact?

12 La valeur de i retourner depend de l'endroit ou on demande de l'afficher. o Remarquez la différence d'affichage entre b et c. À quoi cela peut-il être dû?

13 L un est un tableau mais un tableau est un pointeur. L autre est uniquement un pointeur. o Dans un terminal, testez le programme. Vérifiez qu'il ne fonctionne pas. Il ne fonctionne pas o Commencez l'exécution du programme (bouton run ou menu équivalent). Après le premier arrêt, utilisez le bouton step pour avancer pas à pas dans le programme. Regardez évoluer peu à peu les valeurs des variables. Que remarque-t-on sur la valeur affichée de i lorsqu'on rentre dans l'évaluation de la fonction fact? Le i du main est stoppé et le i de la fonction débute à 12 puis et puis problème dans la boucle de la fonction. (i=n au lieu de i<=n). o Quelle est la première erreur? Corrigez-là, recompilez (de l'intérieur du débogueur, avec le bouton make).

14 Les entiers du main sont à l extérieur. Dans fact et dans sa boucle il est mis i=n or c est tant que i<=n. o Refaites une exécution pas-à-pas. Vérifiez que la fonction renvoie maintenant la bonne valeur. Que constate-t-on dans l'affichage du tableau b? Trouvez la deuxième erreur. La valeur ne change pas o Faites afficher en partant de la zone de données le contenu pointé par c. Quelle est la troisième erreur? Corrigez-la. «*c=b;» o Quelle est l'adresse du premier élément du tableau b? o Surveillez pas-à-pas l'exécution de la deuxième boucle du programme (qui multiplie par 2). Que remarque-t-on sur le tableau b? Expliquez. A compelter c[i] va prendre la valeur d elle-même multiplié par 2 tant que i est inférieur à 6.

15 o Il serait plus simple de faire afficher c comme un tableau de 6 éléments. Utilisez la syntaxe donnée dans le cours pour le faire. Vérifiez que les valeurs sont changées aussi bien dans c que dans b. o La dernière boucle utilise l'arithmétique des pointeurs : un pointeur (c) change de valeur et pointe tour à tour. Elle comporte une erreur. Trouvez-la et corrigez-la o Est-il correct d'affecter une valeur à *d? Pourquoi? Bonus Pour celles et ceux qui veulent aller plus loin... o Réécrivez le programme précédent en faisant de b non pas un tableau statique, mais un tableau alloué dynamiquement. N'oubliez pas de libérer l'espace mémoire à la fin du tableau. o Est-il possible de lire dans ce tableau après avoir libéré la mémoire? o Après avoir libéré la mémoire (à la fin du programme), créez un nouveau tableau d'entiers (de taille similaire mais pas identique). Que constate-t-on?

16 Partie 3 : tester les performances du processeur Performance Application Programming Interface (PAPI) est une interface portable (sous la forme d'une librairie) vers les compteurs de performance des processeurs. Un compteur de performance est un dispositif matériel (du silicium) dédié à l'observation de certains évènements de très bas niveau (internes au processeur). Il peut s'agir du nombre d'instructions réellement exécutées, du nombre de défaut de caches... L'intérêt des compteurs de performance est d'être une méthode d'observation non intrusive parce qu'elle est assurée au niveau matérielle et pas au niveau logiciel. Certains processeurs font de l'exécution spéculative c est à dire que pour exécuter une conditionnelle ils choisissent d'exécuter la branche pour laquelle la condition est vérifiée... Mais quand le processeur détecte que la condition est fausse en réalité, alors le processeur arrête l'instruction précédente pour exécuter la branche pour laquelle la condition est fausse. Ainsi, toute instruction qui commence... n'aboutit pas forcément. Les compteurs de performance permettent d'observer ce phénomène. Le monitoring de certains évènements permet de corréler la structure du code c est à dire d'estimer l'efficacité de la mise en correspondance de ce code avec l'architecture. Le fichier que l'on étudie est le fichier papi.c qui se trouve dans le répertoire M2101. Votre travail : a) Faites un commentaire de cet exemple de base qui montre comment utiliser l'interface de haut niveau de PAPI Cet exemple nous permet de se familiariser avec les fonctions de PAPI comme par exemple s'arrêter sur un ensemble d'évènement ou encore compter et lire les instructions ainsi que les cycles lors de ces évènements. -Au départ (l 37) déclaration et initialisation de notre ensemble d'évènements, La première fonction utilisée (l 53 : PAPI_library_init) initialise la bibliothèque et compare le numéro de version du fichier d'entête à la version de la bibliothèque, Si les 2 numéros ne sont pas compatibles la variable retval stock la trace du numéro et nous nous retrouvons donc avec une erreur dans le programme -Ensuite la seconde fonction PAPI_num_counters renvoie la longueur maximale du tableau de valeurs pour les fonctions de haut niveau. Cette valeur équivaut au nombre de compteurs de performances gérer par le système. -Si le programme ne retourne pas d erreur pendant la lecture de l'évènement alors il lit le nombre d'instructions exécutées et de cycles utilisés pour l'évènement sélectionné (ici l'addition (l 89)) grâce à une autre fonction qui est PAPI_read_counters) -Ensuite le programme lance la fonction PAPI_accum_counters (l 102) qui permet d'accumuler les valeurs des compteurs avec les valeurs dans le tableau, avant de réinitialiser ces compteurs. -Pour finir, le programme lance la fonction PAPI_stop_counters (l 114) qui permet de lire puis arrêter les compteurs. Dans notre cas le programme lit le nombre d'instructions exécutées et le nombre de cycles utilisés pour des multiplications.

17 b) Quels sont les résultats? gcc -Wall papi.c -lpapi &&./sorti.out Que signifient-ils? Le lancement du programme nous permet de savoir que le système possède 5 compteurs de performances. Pour le premier évènement (additions), le programme a enregistré instructions executées, et cycles utilisés. c) Faites une série d'expériences en modifiant la valeur de la constante THRESHOLD, par exemple en doublant la valeur de celle-ci à chaque fois. Est-ce que les valeurs des compteurs de performance doublent à chaque fois? Non Pourquoi? Dans la consigne il est dit : «Certains processeurs font de l'exécution spéculative c est à dire que pour exécuter une conditionnelle ils choisissent d'exécuter la branche pour laquelle la condition est vérifiée... Mais quand le processeur détecte que la condition est fausse en réalité, alors le processeur arrête l'instruction précédente pour exécuter la branche pour laquelle la condition est fausse. Ainsi, toute instruction qui commence... n'aboutit pas forcément. Les compteurs de performance permettent d'observer ce phénomène.» d) Pour les binômes les plus avancés (question bonus), modifiez le code de papi.c pour observer les défauts de cache sur le cache L1. (Voir avec votre enseignant pour des explications complémentaires si besoin). Refaites les questions a) b) c). Performance Application Programming Interface (PAPI) est une interface de programmation portable (sous la forme d'une bibliothèque logicielle) permettant d'accéder aux compteurs matériels spécifiques aux microprocesseurs modernes. PAPI est utilisé pour collecter des informations de bas niveau (telles que le nombre d'opérations en virgule flottantes FLOPS par seconde, le nombre de cache misses durant l'exécution d'un code, etc..). PAPI est interfacé avec les systèmes d'exploitation de type UNIX. La bibliothèque PAPI est actuellement capable d'accéder les compteurs matériel de la plupart des processeurs modernes. La liste des processeurs non reconnu ne cesse de diminuer.

18 Partie 4 : surveiller les appels système avec strace strace est un outil de débogage sous Linux pour surveiller les appels système utilisés par un programme, et tous les signaux qu'il reçoit. L'utilisation la plus courante est de lancer un programme en utilisant strace, qui affiche une liste des appels système faits par le programme. Par exemple, utiliser strace peut révéler que le programme tente d'accéder à un fichier qui n'existe pas ou qui ne peut pas être lu. Une autre utilisation est d'utiliser l'option -p pour le rattacher à un programme lancé. C'est utile lorsqu'un programme ne répond plus, et peut révéler, par exemple, que le processus est bloqué car il attend de faire une connexion réseau. Comme strace ne détaille que les appels système, il ne peut pas être utilisé comme un débogueur de code, tel que Gdb. Il reste cependant plus simple à utiliser qu'un débogueur de code, et est un outil extrêmement utile pour les administrateurs système. Exemples concrets d'utilisation : > strace -Ff -tt <program> <arguments> 2>&1 tee strace-<program>.log qui va vous permettre de générer un fichier de log à partir duquel vous pourrez faire une analyse. > strace -Ff -tt -p <PID> 2>&1 tee strace-<program>.log qui va vous permettre de tracer un PID (process identifier) particulier. Votre travail : Compilez le programme suivant : #include <stdio.h> void main() { printf("hi\n"); }

19 Utiliser strace pour Lister tous les appels systèmes faits par votre programme. On tape sur le terminal : strace Ff tt test test est le nom de notre exécutable Quel est l'appel Système qui revient le plus? Pouvez-vous expliquer en quoi consiste cet appel Système (attention, c'est dur!)? L'appel système qui apparaît le plus souvent est mmap2(). Il permet d'établir une projection en mémoire des fichiers ou périphériques. Il est donc utilisé pour l'allocation de mémoire. Cet appel système sert juste a allouer un espace mémoire. Mmap 1 : Établir/supprimer une projection en mémoire (map/unmap) des fichiers ou des périphériques. L'appel système mmap2() réalise la même opération que mmap sauf que l'argument final spécifie un décalage dans le fichier en unité de 4096 octets plutôt qu'en octets comme cela est fait par mmap.

20 Compilez le programme suivant : #include <stdio.h> #include <unistd.h> void main() { int i; for(i=0;i<12;i++){ printf("hello there!\n"); sleep(1); printf("goodbye\n"); } } --Video--

21 Trouver l'option de strace qui va vous permettre d'observer le temps passé dans chaque appel système. Lancer strace avec cette option sur votre exemple et dites quel est l'appel Système qui prend le plus de temps -c : compte le temps, les appels et les erreurs pour chaque appelles système. -r : Sa permet d avoir pour chaque appel système le temps qu il a passé. On appelle cela en anglais le timestamp relatif. -T :temps passé pour chaque appels système. L'option qui permet d'observer le temps passé sur chaque appel est «-T». Soit celui qui prend le plus de temps est nanosleep. asc95@test:~/workspace $ gcc -Wall test.c -o t3 test.c:4:6: warning: return type of main is not int [-Wmain] void main () ^ asc95@test:~/workspace $ strace -T./t3

22 execve("./t3", ["./t3"], [/* 70 vars */]) = 0 < > brk(0) = 0x1b1b000 < > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) < > mmap(null, 8192, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f0c5e7f9000 < > access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/tls/x86_64/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/tls/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/x86_64/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("/etc/ld.so.cache", O_RDONLY O_CLOEXEC) = 3 < > fstat(3, {st_mode=s_ifreg 0644, st_size=59193,...}) = 0 < > mmap(null, 59193, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0c5e7ea000 < > close(3) = 0 < > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) < > open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY O_CLOEXEC) = 3 < > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832 < > fstat(3, {st_mode=s_ifreg 0755, st_size= ,...}) = 0 < > mmap(null, , PROT_READ PROT_EXEC, MAP_PRIVATE MAP_DENYWRITE, 3, 0) = 0x7f0c5e < > mprotect(0x7f0c5e3ce000, , PROT_NONE) = 0 < > mmap(0x7f0c5e5ce000, 24576, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_DENYWRITE, 3, 0x1bb000) = 0x7f0c5e5ce000 < > mmap(0x7f0c5e5d4000, 17088, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_ANONYMOUS, -1, 0) = 0x7f0c5e5d4000 < > close(3) = 0 < > mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f0c5e7e9000 < > mmap(null, 8192, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f0c5e7e7000 < > arch_prctl(arch_set_fs, 0x7f0c5e7e7740) = 0 < > mprotect(0x7f0c5e5ce000, 16384, PROT_READ) = 0 < > mprotect(0x600000, 4096, PROT_READ) = 0 < > mprotect(0x7f0c5e7fb000, 4096, PROT_READ) = 0 < > munmap(0x7f0c5e7ea000, 59193) = 0 < > fstat(1, {st_mode=s_ifchr 0620, st_rdev=makedev(136, 1),...}) = 0 < > mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f0c5e7f8000 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there

23 ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffcc311f70) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > exit_group(9) =? +++ exited with asc95@test:~/workspace $

24 Expliquer L'appel système qui prend le plus de temps est «nanosleep». Car le «sleep» va mettre en pause le processus tandis que les autres appels systèmes sont exécutés à une vitesse non perçu par l Homme. Même question avec le programme : #include <stdio.h> #include <unistd.h> void main() { int i=0; do { printf("hello there!\n"); sleep(1); printf("goodbye\n"); } while(i>12); } asc95@test:~/workspace $ strace -T./t3 execve("./t3", ["./t3"], [/* 70 vars */]) = 0 < > brk(0) = 0x22dc000 < > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) < > mmap(null, 8192, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f91d047c000 < > access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/tls/x86_64/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < >

25 open("~/.c9/local/lib/tls/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/x86_64/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("~/.c9/local/lib/libc.so.6", O_RDONLY O_CLOEXEC) = -1 ENOENT (No such file or directory) < > open("/etc/ld.so.cache", O_RDONLY O_CLOEXEC) = 3 < > fstat(3, {st_mode=s_ifreg 0644, st_size=59193,...}) = 0 < > mmap(null, 59193, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f91d046d000 < > close(3) = 0 < > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) < > open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY O_CLOEXEC) = 3 < > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832 < > fstat(3, {st_mode=s_ifreg 0755, st_size= ,...}) = 0 < > mmap(null, , PROT_READ PROT_EXEC, MAP_PRIVATE MAP_DENYWRITE, 3, 0) = 0x7f91cfe96000 < > mprotect(0x7f91d , , PROT_NONE) = 0 < > mmap(0x7f91d , 24576, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_DENYWRITE, 3, 0x1bb000) = 0x7f91d < > mmap(0x7f91d , 17088, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_ANONYMOUS, -1, 0) = 0x7f91d < > close(3) = 0 < > mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f91d046c000 < > mmap(null, 8192, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f91d046a000 < > arch_prctl(arch_set_fs, 0x7f91d046a740) = 0 < > mprotect(0x7f91d , 16384, PROT_READ) = 0 < > mprotect(0x600000, 4096, PROT_READ) = 0 < > mprotect(0x7f91d047e000, 4096, PROT_READ) = 0 < > munmap(0x7f91d046d000, 59193) = 0 < > fstat(1, {st_mode=s_ifchr 0620, st_rdev=makedev(136, 1),...}) = 0 < > mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, -1, 0) = 0x7f91d047b000 < > write(1, "Hello there\n", 12Hello there ) = 12 < > rt_sigprocmask(sig_block, [CHLD], [], 8) = 0 < > rt_sigaction(sigchld, NULL, {SIG_DFL, [], 0}, 8) = 0 < > rt_sigprocmask(sig_setmask, [], NULL, 8) = 0 < > nanosleep({1, 0}, 0x7fffd269a570) = 0 < > write(1, "Goodbye!\n", 9Goodbye! ) = 9 < > exit_group(9) =? +++ exited with asc95@test:~/workspace $

26 C est toujours nanosleep Même raisonnement que pour le programme précédent Dernier exercice : Nous voulons visualiser avec l'outil Linux totem le film playfilm.avi - Pour cela je lance la commande : > strace -o totem.txt totem playfilm.avi En examinant le fichier totem.txt, faites un diagnostic de ce qui s'est passé. On a plus de 3 millions de lignes! > Brk(0)=0x99ab000 > access()=-1!!!! > mmap2() =0xb76f000 > access()=-1!!!! > open est toujours à 3 > fatat64()=0 > mmap2()=0xb76f000 > close(3)=0 > access()=-1!!!! > open est toujours à 3 > read()=512 >

27 On a tenté d ouvrir un fichier vidéo et movie maker c est lancé. Sauf que le fichier.avi n existe pas. Quelles sont les lignes de ce fichier qui vous permettent de faire le diagnostic? Le début Strace Strace est un utilitaire permettant de tracer/suivre les appels systèmes. Les appels systèmes sont les interfaces fondamentales entre les applications et le noyau. Généralement, ils ne sont pas appelés directement, mais via des wrappers de la glibc. Par exemples : fstat, mmap, open, close,... En utilisant Strace, on peut intercepter ces appels systèmes pour un processus ou une commande donnée. Strace est donc un outil puissant de dépannage pour tous les administrateurs et utilisateurs Unix/Linux.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Débogage de code* Mardi 13 décembre 2011. Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC. hpc.unistra.

Débogage de code* Mardi 13 décembre 2011. Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC. hpc.unistra. Débogage de code* Mardi 13 décembre 2011 Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC *ou l'art de chercher la petite bête Plan Introduction Débogage, quelques

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

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

! #$ $ $ ! %#& ! '& ( )! )*+ ! "! "#$ $ $ ""! %#& """! '& ( ")! )*+ "! "#$ $ $ ""! %#& """! '& ( ")! )*+, ## $ *$-./ 0 - ## 1( $. - (/$ #,-".2 + -".234-5..'"6..6 $37 89-%:56.#&(#. +6$../.4. ;-37 /. .?.@A&.!)B

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

FreeNAS 0.7.1 Shere. Par THOREZ Nicolas

FreeNAS 0.7.1 Shere. Par THOREZ Nicolas FreeNAS 0.7.1 Shere Par THOREZ Nicolas I Introduction FreeNAS est un OS basé sur FreeBSD et destiné à mettre en œuvre un NAS, système de partage de stockage. Pour faire simple, un NAS est une zone de stockage

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

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

I. Introduction aux fonctions : les fonctions standards

I. 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étail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation Serveur Acronis Backup & Recovery 10 pour Linux Update 5 Guide d'installation Table des matières 1 Avant l'installation...3 1.1 Composants d'acronis Backup & Recovery 10... 3 1.1.1 Agent pour Linux...

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

A -Systèmes de fichiers 1 - FAT vs NTFS

A -Systèmes de fichiers 1 - FAT vs NTFS A -Systèmes de fichiers 1 - FAT vs NTFS -------------------------------------------- PETIT HISTORIQUE WINDOWS Windows 3.1 (considéré comme juste une interface, une sur couche sur DOS) FAT 16 Windows 95

Plus en détail

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière Certificat Informatique et internet Niveau 1 Filière TD D1 Domaine 1 : Travailler dans un environnement numérique évolutif Nom N étudiant 1. Généralités : 1.1. Un ordinateur utilise des logiciels (aussi

Plus en détail

LOGICIEL ALARM MONITORING

LOGICIEL ALARM MONITORING LOGICIEL ALARM MONITORING Superviseur des centrales Galaxy - 1 - APPLICATIONS 4 Application locale sur le site 4 Application à distance 4 RACCORDEMENTS 4 CARACTERISTIQUES MATERIELLES 5 Centrale Galaxy

Plus en détail

Le meilleur de l'open source dans votre cyber cafe

Le meilleur de l'open source dans votre cyber cafe Le meilleur de l'open source dans votre cyber cafe Sommaire PRESENTATION...1 Fonctionnalités...2 Les comptes...3 Le système d'extensions...4 Les apparences...5 UTILISATION...6 Maelys Admin...6 Le panneau

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

Éléments d'architecture des ordinateurs

Éléments d'architecture des ordinateurs Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances

Plus en détail

Version 7.1_5.1. Release Notes

Version 7.1_5.1. Release Notes Sommaire 1 PREFACE... 3 1.1 Viadeis CRM...3 2 NOUVEAUTES... 4 2.1 Viadeis CRM...4 2.1.1 Global...4 2.1.2 Sociétés et Contacts...4 2.1.3 Opportunités...5 2.1.4 Contrats et Prestations...5 2.1.5 Demandes

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

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

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

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

Plus en détail

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

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB. global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés

Plus en détail

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

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

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

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

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE. Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE. Lors de la première utilisation de Virtual Box, l'utilisateur devra remplir le formulaire d'inscription Virtual Box. Création

Plus en détail

Le générateur d'activités

Le générateur d'activités Le générateur d'activités Tutoriel Mise à jour le 09/06/2015 Sommaire A. Mise en route du Générateur d'activité... 2 1. Installation de Page... 2 2. Création des bases du générateur d'activités... 3 3.

Plus en détail

Seagate Technology LLC 10200 S. De Anza Boulevard Cupertino, CA 95014, États-Unis

Seagate Technology LLC 10200 S. De Anza Boulevard Cupertino, CA 95014, États-Unis Seagate Access pour Personal Cloud Guide de l'utilisateur 2015 Seagate Technology LLC. Tous droits réservés. Seagate, Seagate Technology, le logo en forme de vague et FreeAgent sont des marques commerciales

Plus en détail

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows Manuel de l utilisateur Service clientèle/ Support technique: Web: http://www.laplink.com/index.php/fre/contact

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

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM Les snapshots (instantannés) sous Linux et FreeBSD Principe Un instantanné permet de pouvoir figer l'état du système de fichier à un instant t pour des besoins de sauvegarde. Une sauvegarde peux parfois

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC! PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC! MAGIX PC Check & Tuning 2010 est la solution logicielle complète pour l'analyse, la maintenance et l'accélération

Plus en détail

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 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

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur TIJARA 1 NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR Logiciel TIJARA Manuel d'utilisateur "TIJARA" 1 SOMMAIRE Introduction Première partie Chapitre 1 : Installation et démarrage Chapitre 2 : Architecture

Plus en détail

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v 1.08 1

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v 1.08 1 ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v 1.08 1 Sommaire 1 ipra*cool en bref 2 Démarrage d' ipra*cool 2.1 Initialisation du logiciel ipra*cool ( sur MOBILE et PC) 2.1.1 Vérification des connexions

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

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

Retrospect 7.7 Addendum au Guide d'utilisation

Retrospect 7.7 Addendum au Guide d'utilisation Retrospect 7.7 Addendum au Guide d'utilisation 2011 Retrospect, Inc. Certaines parties 1989-2010 EMC Corporation. Tous droits réservés. Guide d utilisation d Retrospect 7.7, première édition. L utilisation

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

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Tutoriel code::blocks

Tutoriel code::blocks Tutoriel code::blocks E. Lunéville 2006 Le logiciel code::blocks fait partie des logiciels de type EDI (Environnement de Développement Intégré, IDE en anglais) pour le langage C++. Il est multiplateforme

Plus en détail

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Interface PC Vivago Ultra. Pro. Guide d'utilisation Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci

Plus en détail

But de cette présentation

But de cette présentation Réseaux poste à poste ou égal à égal (peer to peer) sous Windows But de cette présentation Vous permettre de configurer un petit réseau domestique (ou de tpe), sans serveur dédié, sous Windows (c est prévu

Plus en détail

http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux

http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Installation du logiciel de virtualisation VirtualBox 4 3. Création d'une

Plus en détail

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : http://www.hegerys.com/documentation/magicsafe-windows-doc.pdf

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

QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR

QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR Table des matières 1. AVANT-PROPOS...2 2.CRÉER UN POINT de RESTAURATION - RESTAURER le SYSTÈME...2 2.1 Créer un point de restauration...3 2.2 Restaurer

Plus en détail

progecad NLM Guide de l'utilisateur

progecad NLM Guide de l'utilisateur progecad NLM Guide de l'utilisateur Rev. 11.1 Table des matières Table des matières...2 Introduction...3 Comment démarrer...3 Installation de progecad NLM server...3 Enregistrement de progecad NLM server...3

Plus en détail

GUIDE D INSTALLATION RAPIDE DEXH264

GUIDE D INSTALLATION RAPIDE DEXH264 GUIDE D INSTALLATION RAPIDE DEXH264 1. Le branchement Brancher le câble d alimentation comme indiqué à gauche (image) Le système démarre automatiquement une fois que le câble d alimentation est connecté

Plus en détail

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

Plus en détail

Cloner un disque dur

Cloner un disque dur Cloner un disque dur Préambule: J'ai testé beaucoup d'outils disponibles sur le Web, pour cloner des disques dur et/ou des partitions, dans de nombreux cas et sur de nombreuses machines, et avec de nombreux

Plus en détail

Edutab. gestion centralisée de tablettes Android

Edutab. gestion centralisée de tablettes Android Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,

Plus en détail

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0 WINDOWS NT 2000: Travaux Pratiques -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 TABLE DES MATIÈRES Installer un boitier Serveur...3 Fonctions du boitier :...3 Installation du boitier Hp Jetdirect

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Analyse de performance, monitoring

Analyse de performance, monitoring Analyse de performance, monitoring Plan Principes de profilage Projet TPTP dans Eclipse Utilisation des profiling tools de TPTP Philippe Collet Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl

Plus en détail

Symantec Backup Exec Remote Media Agent for Linux Servers

Symantec Backup Exec Remote Media Agent for Linux Servers Annexe I Symantec Backup Exec Remote Media Agent for Linux Servers Cette annexe traite des sujets suivants : A propos de Remote Media Agent Comment fonctionne Remote Media Agent Conditions requises pour

Plus en détail

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Livre blanc Mesure des performances sous Windows Embedded Standard 7 Livre blanc Mesure des performances sous Windows Embedded Standard 7 Table des matières Résumé... 1 Introduction... 1 Utilisation de la boîte à outils Windows Performance Analysis... 2 Fonctionnement...

Plus en détail

Windows Front-End Installation Guide HOPEX V1R1 FR

Windows Front-End Installation Guide HOPEX V1R1 FR Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013 Auteur : Jérôme Horber SOMMAIRE Résumé Ce document décrit les procédures et les paramétrages techniques nécessaires à l'installation, à la mise à jour

Plus en détail

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation

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

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

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

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

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Cloud Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense, QlikView,

Plus en détail

Partie 7 : Gestion de la mémoire

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

Plus en détail

LibreOffice Calc : introduction aux tableaux croisés dynamiques

LibreOffice Calc : introduction aux tableaux croisés dynamiques Fiche logiciel LibreOffice Calc 3.x Tableur Niveau LibreOffice Calc : introduction aux tableaux croisés dynamiques Un tableau croisé dynamique (appelé Pilote de données dans LibreOffice) est un tableau

Plus en détail

Concept de machine virtuelle

Concept de machine virtuelle Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. 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étail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Installation d un poste i. Partage et Portage & permissions NTFS

Installation d un poste i. Partage et Portage & permissions NTFS Filière : Technicien des Réseaux Informatique Installation d un poste i Partage et Portage & permissions NTFS Plan Partage et Permissions NTFS 1. Partage de dossiers 2. Sécurité des systèmes de fichiers

Plus en détail

MEDIAplus elearning. version 6.6

MEDIAplus elearning. version 6.6 MEDIAplus elearning version 6.6 L'interface d administration MEDIAplus Sommaire 1. L'interface d administration MEDIAplus... 5 2. Principes de l administration MEDIAplus... 8 2.1. Organisations et administrateurs...

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Guide de fonctions du téléphone du système SCI Norstar

Guide de fonctions du téléphone du système SCI Norstar Guide de fonctions du téléphone du système SCI Norstar Renseignements généraux Cette fiche sert de référence rapide pour accéder aux fonctions de votre poste. Votre coordinateur de système vous avisera

Plus en détail

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition) Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition) Par LoiselJP Le 01/08/2014 Rev. : 01/03/2015 1 Objectifs Dès qu il s agit de placer des paramètres particuliers, on annonce «il suffit d utiliser

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

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3 Page 1 Service déposant Procédure d installation Version 2.3 Bourse de Luxembourg juillet 2013 1 Page 2 Sommaire 1. Introduction... 3 2. Pré-requis... 4 2.1. Configuration réseau... 4 2.2. Configuration

Plus en détail

Le système GNU/Linux IUP NTIC2-1013 - 17/11/05

Le 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étail

http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla

http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Définitions 3 3. Principes généraux 3 4. Clonezilla

Plus en détail

l'ordinateur les bases

l'ordinateur les bases l'ordinateur les bases Démarrage de l'ordinateur - Le bureau, mon espace de travail - J'utilise la souris - Ouvertes ou fermées, les fenêtres - Dans l'ordinateur, tout est fichier - Le clavier : écrire,

Plus en détail

1 Prise en main des machines

1 Prise en main des machines Module M1105 - Bases des systèmes d exploitation TP 1 : Prise en main des machines & Installation de Linux 8Septembre2015 L objectif de ce TP est de familiariser avec les machines du laboratoire, et d

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

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

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer Messages d'erreurs Erreur 602 Vous essayez de vous connecter à Internet. L'erreur n 602 apparaît et il vous est impossible de vous connecter. L'erreur 602 est souvent issue de l'utilisation de l'accès

Plus en détail

GESTION DES BONS DE COMMANDE

GESTION DES BONS DE COMMANDE GESTION DES BONS DE COMMANDE P1 P2 Table des Matières LA GESTION DES BONS DE COMMANDE 4 PREMIERE EXECUTION DU LOGICIEL 5 DEFINITION DES PARAMETRES 8 Services 9 Comptes Utilisateurs 10 Adresse de livraison

Plus en détail

Utilisation et création de la clé USB OSCAR

Utilisation et création de la clé USB OSCAR N de version 1.0 1.1 Historique des versions Eléments modifiés Date 04/04/2012 Mise en page + corrections 10/04/2012 Page 1 / 25 Rédacteur Laurent COUILLAUD Benjamin TALON SOMMAIRE I. Introduction...3

Plus en détail

Service client LSC 1

Service client LSC 1 Service client LSC 1 Sommaire SOMMAIRE...2 PREAMBULE...3 PARAMETRAGE LSC...4 1\ ACTIVER LE SERVICE CLIENT...5 Licence LSC...5 Nom de domaine...5 2\ DEFINIR LES MODALITES DE PUBLICATION...6 3\ LES MODELES

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Publipostage avec Open Office Writer et Open Office Calc

Publipostage avec Open Office Writer et Open Office Calc Publipostage avec Open Office Writer et Open Office Calc page 1/6 Publipostage avec Open Office Writer et Open Office Calc Créer la base de données sous Open Office Calc Ovrir le tableur Open Office Calc

Plus en détail

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : 1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique

Plus en détail

Sauvegarde des données du scribe sur disque USB

Sauvegarde des données du scribe sur disque USB Sauvegarde des données du scribe sur disque USB Objectif : Palier aux dysfonctionnements provoqués par une sauvegarde «Bacula» proposée dans l'ead du Scribe. Réaliser une sauvegarde des données du serveur

Plus en détail

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office Téléphonie Centres d'appels Mobilité Services Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office 03-602108-FR Édition 1 Mai 2007 Ce guide explique comment utiliser la messagerie

Plus en détail

DOCUMENTATION VISUALISATION UNIT

DOCUMENTATION VISUALISATION UNIT DOCUMENTATION VISUALISATION UNIT Table des matières 1)Documentation Utilisateur CamTrace VU...2 1)Premiers pas:...3 a)le mode Client CamTrace...4 b)le mode VU Standalone...6 2)F.A.Q...9 1)Vérifier la connectivité

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