Home
Table des matières
Contents
1. seconde avec l option static Discutez la diff rence de taille entre ces deux ex cutables et analysez bri vement l tat de la m moire du programme lorsqu il s ex cute utilisez la commande pmap x lt pid gt Evaluez la performance de votre programme lorsque votre tableau tient juste dans la cache est 2 fois plus grand 3 fois etc comparez les r sultats avec un programme dont le tableau ne change pas de taille mais est rempli 2 fois 3 fois etc Remarques Pour effectuer des mesures de performances utilisables il est important que chaque groupe fasse toutes ses mesures sur la m me machine et que cette machine soit la moins charg e RAM et CPU possible durant les mesures N oubliez pas que vous pouvez vous connecter sur ces machines via ssh plut t que d tre directement la console Il n est pas inutile de reproduire quelques fois chaque mesure afin de v rifier qu il n y a pas eu d interf rences durant la mesure A titre d information voici les caract ristiques techniques des trois principaux types de machines auquelles VOUS avez acc s e Salle Parnas Sun s Ultra 5 64Mo RAM 16ko L1 d cache 16ko L1 i cache 256ko L2 cache e __ Salle Siemens Pentium 4 248Mo RAM ou plus variable d une machine l autre 12kuops trace cache 8ko L1 d cache 512ko L2 cache e Salle Intel Pentium 3 128Mo RAM 16ko L1 d cache 16ko L1 i cache 256ko L2 cache La fonction suivante peut vous servir valuer les temps d ex cution
2. seulement si ce signal SIGINT n est pas actuellement ignor RY if signal SIGINT SIG_IGN SIG_IGN signal SIGINT introut creat tempfile mode unlink tempfile Fin normale exit 0 void introut int sig unlink tempfile Nettoyage exit 1 Autres fonctions relatives aux signaux alarm La fonction alarm unsigned int sec envoie le signal SIGALRM au processus lui m me apr s sec secondes Voir man alarm pause Met le processus en attente jusqu ce qu il re oive un signal Voir man pause sleep quivalent signal SIGALRM nothing alarm sec pause avec void nothing int sig signal SIGALRM SIG_DFL Le PIC L environnement hardware Le syst me sur lequel vous allez travailler est constitu principalement d un microcontr leur la grande puce rectangulaire dans la figure 1 d un cran LCD d un RPG rotary pulse generator en bas pr s de l cran d un port s rie gauche dans l image et d un software button tout en bas Le syst me fonctionne avec une alimentation de 9V le connecteur est tout gauche Le microcontr leur PIC18F452 Un microcontr leur concentre en une seule puce toutes les fonctionnalit s d un petit ordinateur Il comporte une unit d ex cution le processeur une m moire RAM FLASH et EEPROM des p riph riques tels qu un timer une horloge ainsi qu un ou plusieurs ports pouvant tre utilis s par exemple
3. Le gestionnaire de signal est func qui peut tre soit une fonction sp cifique de l utilisateur soit l une des constantes SIG_IGN ou SIG_DFL Lors de l arriv e d un signal correspondant au num ro sig les v nements suivants se produisent Si le gestionnaire correspondant est configur avec S1IG_ IGN le signal est ignor Si le gestionnaire vaut SIG_DFL l action par d faut pour le signal est entreprise Finalement si le gestionnaire est dirig vers une fonction func alors tout d abord le gestionnaire est re configur SIG_DFL ou le signal est bloqu puis func est appel avec l argument sig Param tres sig sp cifie the num ro du signal d fini dans lt signal h gt func l action prendre SIG_DFL action par d faut d pend du signal SIG_IGN signal ignor inapplicable pour SIGKILL une fonction capture le signal et ex cute cette fonction avec le num ro du signal comme argument inapplicable pour SIGKILL R sultat Retourne la valeur pr c dente de func pour le signal sp cifique sig En cas d erreur la valeur 1 est retourn e et la valeur errno est modifi e en cons quence Exemple On voudrait tre s r que les fichiers temporaires soient effectivement effac s m me lorsqu un processus se termine pr matur ment cause d un signal SIGINT include lt signal h gt void introut int lt int main Appelle la fonction introut lorsque le signal SIGINT sera g n r
4. terminated SIGCONT 19 continue a stopped process SIGCHLD 20 to parent on child stop or exit Remarque Un seul signal de chaque type peut tre enregistr pour chaque processus Donc si un processus re oit plusieurs signaux du m me type avant de traiter le premier seulement un seul signal sera effectivement trait Tous les autres signaux sont perdus De plus un processus ne peut recevoir de signal que s il est en cours d ex cution ou en attente d entr es sorties Comment et quand sont envoy s les signaux L appel syst me kill L appel syst me kill permet un processus d envoyer un signal un autre processus ou lui m me Le mot kill est mal choisi puisque le signal ne termine pas forc ment le processus certains signaux tuent le processus tandis que d autres signaux informent seulement le processus d un v nement que ce processus doit g rer Pour envoyer un signal le processus qui envoie et le processus qui re oit doivent avoir le m me propri taire effectif ou alors le propri taire du processus qui envoie doit tre le super user Param tres pid ID du processus ou du groupe de processus de destination auquel le signal doit tre envoy sig num ro de signal d fini dans lt signal h gt R sultat Renvoie la valeur 0 en cas de succ s 1 en cas d erreur et la variable errno est modifi e en cons quence Variante la fonction raise include lt sig
5. Les signaux sont parfois appel s interruptions software La plupart des signaux sont asynchrones c est dire que le processus ne sait pas exactement quand un signal sera g n r Mais les signaux peuvent tre g n r s de fa on synchrone lorsqu une erreur se produit dans une application par exemple le signal SIGSEGV Segmentation Fault Les signaux peuvent tre envoy s un processus lorsque le syst me d tecte un v nement software par exemple un utilisateur entrant une requ te d interruption ou d arr t depuis un autre processus Les signaux peuvent aussi venir directement du syst me d exploitation De m me lorsqu un processus se termine anormalement il essaie g n ralement d envoyer un signal indiquant ce qui s est pass Les programmes C peuvent les attraper dans un but de diagnostique par exemple En r sum les signaux peuvent venir e d un autre processus du terminal e du processus lui m me e du syst me Le syst me d finit un ensemble de signaux qui peuvent tre envoy s un processus Pour utiliser les signaux il faut inclure la librairie lt signal h gt Les signaux peuvent tre num rot s de 0 31 Quelques signaux voir man s3HEAD signalouman 7 signal SIGHUP 1 hangup SIGINT 2 interrupt SIGQUIT 3 quit SIGILL 4 illegal instruction SIGABRT 6 used by abort SIGKILL 9 hard kill SIGALRM 14 alarm clock SIGTERM 15
6. Table des mati res 1 Exemple d utilisation de malloc free et de passage par adresse 2y EES SIENAK nine ne ns ne Comment et quand sont envoy s les signaux L appel syst me kill Param tres R sultat La commande UNIX kill Certains caract res au terminal Certaines conditions hardware Certaines conditions software Que fait le processus avec un signal re u l appel syst me signal Fonction Param tres R sultat Exemple Autres fonctions relatives aux signaux Le microcontr leur PIC18F452 La m moire de donn es La m moire de programme Le temporisateur Le LCD Le port s rie L environnement software Environnement software du microcontr leur exercice de sensibilisation l impact de la hi rarchie des m moires 1 Exemple d utilisation de malloc free et de passage par adresse une fonction d un argument de type pointeur KOKROKUK KR UK KR OK KOK OK KOK UK XK KR UK KR OK OKKOKUKKOKUK KR UK OK HOK OK HROKRUK KR UK KR ERREUR UK ROUE KE KE include lt stdio h gt include lt stdlib h gt Protoype de la fonction void alloue int nb int memoire int main int i valeurs int puissance nb printf Entrez le nombre d l ments scanf d amp nb Alloue une zone m moir Comme valeurs pouvant contenir 3 nb l ments de type entier st de typ pointeur vers un entier donc evaleurs est l adresse d
7. a m moire FLASH du PIC e il initialise le microcontr leur et les p riph riques lors de la mise sous tension du syst me Bien que vous ayez th oriquement acc s toutes les ressources du microcontr leur en pratique le compilateur a t configur afin que votre programme n interf re pas avec le syst me d exploitation du moins si vous vous limitez programmer en C Sinon aucune garantie n est donn e exercice de sensibilisation l impact de la hi rarchie des m moires La cache et la m moire virtuelle sont des facilit s tr s pratiques sur les ordinateurs actuels Elles permettent de cacher au programmeur la complexit de la gestion hardware de la m moire Dans la plupart des cas le programmeur peut les ignorer Cependant en pratique les performances des programmes qui manipulent de gros volumes de donn es en m moire pourront d pendre fortement de l habilet du programmeur utiliser efficacemment la hi rarchie des m moires L objectif de ce probl me pratique est de vous sensibiliser l impact de la hi rarchie de m moire sur l ex cution et les performances des programmes applicatifs Pour ce faire vous crirez un programme C qui remplit un tableau dont la taille est un peu inf rieure la cache de votre ordinateur puis qui fait la m me chose pour un tableau 2 fois plus grand puis 3 fois 25 fois 1 Compilez deux variantes de ce programme La premi re avec les options standard du compilateur C et la
8. comme ports s rie ou parall le Le microcontr leur que nous allons utiliser pour ce projet est le 18F452 de la firme Microchip Un diagramme bloc de ce microcontr leur est illustr par la figure 2 Ce microcontr leur pr sente une architecture Harvard m moires distinctes pour programme et donn es Les donn es sont plac es dans une m moire de type RAM d une capacit de 1536 octets La m moire de programme est constitu e de mots de 16 bits est de type FLASH non volatile et a une capacit de 214 16 K mots donc 32 Koctets Ces ressources sont donc pr cieuses en comparaison de celles des ordinateurs classiques Le 18F452 poss de encore 5 ports A E et 3 temporisateurs timers on y reviendra La machine dispose d une petite pile stack interne utilis e pour les appels de proc dure mais elle n a que 31 niveaux Il ne faudra donc pas d passer ce niveau d imbrication d appels sous peine d obtenir un comportement impr visible La m moire de donn es La m moire de donn es appara t comme une s rie de registres Le microcontr leur dispose de deux types de m moire de donn es une m moire RAM volatile et une m moire EEPROM non volatile de 256 Bytes La m moire RAM est divis e en 15 bancs de 256 registres mais seuls 6 de ces bancs contiennent vraiment de la RAM de m me un PC a un espace d addressage de 4 Gbytes mais a rarement plus d un Giga de m moire RAM r elle les bancs 0 5 Certains sont des re
9. ent une erreur SIGFPE e R f rencer une adresse en dehors de l espace d adressage d un processus g n re un signal SIGS segmentation fault ti Q lt Certaines conditions software Exemple le signal S TGURG urgent condition on socket est g n r quand des donn es out of band arrivent sur un socket Que fait le processus avec un signal re u l appel syst me signal Un processus peut ignorer un signal Tous les signaux except SIGKILL peuvent tre ignor s Un processus peut aussi choisir l action par d faut pour le signal La plupart des signaux provoquent l arr t du processus si aucune action n est prise par le processus en r ponse ce signal Chaque signal poss de une action par d faut qui est l une des suivantes e Le signal est ignor apr s sa r ception e Le processus est arr t apr s la r ception du signal e _ Un fichier core est crit puis le processus est termin e __ Le processus est stopp apr s la r ception du signal Un processus peut aussi d finir lui m me le comportement adopter lors de la r ception d un signal Il suffit de sp cifier avant que l v nement se produise la fonction appeler lors de la r ception du signal Cette fonction est nomm e signal handler Un processus sp cifie comment il d sire que le signal soit g r en appelant la fonction signal Fonction L appel syst me signal installe un nouveau gestionnaire pour le signal num ro sig
10. et l activit de la m moire virtuelle void print _usage int errno struct rusage usage see sys resource h if errno getrusage RUSAGE_ SELF amp usage 0 Only a subset of getrusage is supported by Linux 2 4 rintf ser time sd t U t d Sd n usage ru_utime tv_sec usage ru_utime tv_usec printf System time sd d n usage ru_stime tv_sec usage ru_stime tv_usec printf Page reclaims ld n usage ru_minflt printf Page faults ld n usage ru_majfilt printf Swaps ld n usage ru_nswap else printf Error with getrusageln
11. gistres sp cialis s les Special Function Registers du banc 15 d autres sont des registres d usage g n ral les General Purpose Registers Les registres sp cialis s sont des registres li s aux p riph riques ou aux registres d tat du microcontr leur La figure 3 d taille l ensemble des registres et la mani re de choisir les bancs au moyen du registre sp cialis BSR et du bit a La m moire de programme Le PIC 18F452 dispose de 16K fois 16 bits d espace m moire de programme Il s agit d une m moire de type FLASH Le temporisateur Le principe d un temporisateur est celui d un registre qui est incr ment r guli rement et automatiquement chaque coup d horloge par exemple et qui lors d un d bordement g n re une interruption Nous vous fournissons en annexes les feuilles du manuel d utilisation concernant le premier temporisateur du PIC le timerO Comme le temporisateur produit une interruption nous vous fournissons galement la description d un registre sp cial le registre intcon d crit dans la figure 5 Ce registre sert la gestion des interruptions Il permet d activer ou non toutes ou seulement certaines interruptions Il permet galement de tester quelle interruption est produite Question quels sont les bits en relation avec l utilisation du timerO Le LCD Le LCD qui sera utilis pour ce projet comporte 2 lignes de 8 caract res Le LCD se commande au moyen d instructions qui lui sont sp cifiq
12. nal h gt int raise int sig Cette fonction envoie le signal sig au programme en cours d ex cution Elle est l quivalent de kill getpid sig Note e Si pid vaut z ro le signal est envoy tous les autres processus dont l ID de groupe est gal l ID de groupe du processus qui envoie le signal e Si pid vaut 1 le signal est envoy tous les autres processus appartenant au m me utilisateur e Si sig vaut z ro aucun signal n est r ellement envoy mais une v rification d erreur est r alis e validit du pid Un processus peut conna tre son propre pid gr ce la fonction getpid La commande UNIX kill Cette commande envoie le signal indiqu en argument aux processus mentionn s Si on ne pr cise pas de signal le signal SIGTERM est envoy Ce dernier tuera les processus qui ne l interceptent pas Certains caract res au terminal Le caract re d interruption CTRL C termine un processus qui tourne en g n rant un signal SIGINT Le caract re de terminaison souvent CTRL termine un processus qui tourne et provoque un core image m moire du processus par la g n ration du signal SIGQUIT Le core peut alors tre utilis pour d bugger le programme En plus de ces deux caract res certains syst mes en fournissent d autres Par exemple CTRL Z g n re un signal SIGTSTEP stop Certaines conditions hardware Par exemple E e Les erreurs d arithm tique flottante g n r
13. ues Ces instructions sont par exemple l effacement de l cran le d placement du curseur ou l criture d un caract re Chacune de ces op rations prend un certain temps qui varie selon l op ration effectu e par exemple 1 64 millisecondes pour effacer l cran 40 microsecondes pour d placer le curseur d une position Toutes ces op rations et leurs caract ristiques sont d crites dans le tableau de la figure 6 Le RPG Il est utilis pour incr menter ou d cr menter une valeur Le port s rie Il est utilis pour communiquer avec l ordinateur Ceci permet une programmation du PIC directement depuis un PC Il permet aussi de monitorer le fonctionnement du PIC voir environnement software L environnement software La programmation du PIC se fera dans un langage C Les tapes n cessaires pour la mise en route de votre programme sont les suivantes criture du programme en C compilation transfert du programme vers le microcontr leur lancement du programme sur le PIC monitoring du fonctionnement tests et validation du programme nSDbE Environnement software du microcontr leur Vous allez programmer sur machine nue vous aurez acc s sans contr le tous les registres et toutes les ressources du microcontr leur Nous vous fournissons cependant un mini syst me d exploitation QwikBug qui a les r les suivants e il se charge de la r ception de votre programme depuis le PC et son enregistrement dans l
14. un pointeur vers un entier c est dire un pointeur vers un pointeur vers un entier De la sorte valeurs pourra tre modifi par la fonction alloue alloue nb amp valeurs On peut acc der au l ments de la m moire comme pour un tableau On calcule les puissances de 2 74 puissance2 1 for i 0 i lt nb i valeurs i puissance puissance2 2 Affichage du tableau for i 0 i lt nb i 4 printf 2 d d n i valeurs il Lib re la m moire free valeurs return 0 JEE KK KKK kkk k kkk K kkk k kk k k k k k UK k k k k k k HRK k k k OK k k k k k k k k k KR k EH OK k KR UK k k UK KR KE KR k void al Fonction PRE POST alloue nb est le nombre d entiers pour lesquels il faut allouera la zone m moire nb gt 0 si l allocation r ussit memoire pointe vers le d but d une zone m moire pouvant contenir nb entiers sinon le programme se termine KR OKOK KR UK KR UK EH OK UK KOKUK KR UK OK K OK K OK UK KUKUK KR UK KR OK OK HOKUKHORUK OK UK KR UK KR OK UK KR OK KOKK KE EEE loue int nb int memoire A1 ocation de la m moire memoire int malloc nb sizeof int if memoire NULL printf Pas assez de m moire n exit 1 2 Les signaux Un signal est une notification un processus qu un v nement s est produit
Download Pdf Manuals
Related Search
Related Contents
Télécharger la Lettre Synthèse Elevage Volaille n°5 My Document - Point Grey Clip Industrie créé la surprise de la rentrée 取扱説明書 User manual ECDS Data portal LIBRETTO ISTRUZIONI “ECOSTOVE” Manuel d`utilisation Antenne GPS Humminbird 取扱説明書 SUUNTO AMBIT3 SPORT 1.0 - Dutyfreeislandshop.com Copyright © All rights reserved.
Failed to retrieve file