( Outils pour controle du noyau temps reel. Version 2.00 du 9 Juillet 2006. Ecrit par jpb.forth . ) ( TELECHARGEMENT ) ( Calcul pour evaluation du taux d'occupation de l'unite centrale : OCCUPATION_ON lance le calcul en permanence, OLIST permet d'afficher le taux d'occupation des 20 dernieres secondes. PERF affiche le taux d'occupation en permanence toutes les secondes jusqu'a ce qu'une touche du clavier du terminal soit activee. ) DECIMAL 0 VARIABLE V_MESURE_OCCUPATION 0 VARIABLE V_OCCUPATION HERE 1 20 2/ + ALLOT CONSTANT F_MESURE 0 VARIABLE V_MESURE TACHE: T_OCCUPATION 1 V_OCCUPATION +! 0 T_OCCUPATION T_ACTIVE ; TACHE: T_MESURE V_MESURE DUP >R @ DUP NOT R> ! IF F_MESURE DUP >R @ 100 OVER R@ + 2+ C@ - SWAP 1+ 20 MOD R> ! 10 * DROP 1000 TEMPS 2@ OVER U/MOD DROP - 0 MAX ELSE 100 V_OCCUPATION DUP >R @ 10 / 100 MIN - DUP F_MESURE DUP @ + 2+ C! 0 R> ! 99 MIN 10 * THEN T_MESURE T_ACTIVE ; : OCCUPATION_ON V_MESURE_OCCUPATION @ 0= IF 0 V_OCCUPATION ! 0 V_MESURE ! F_MESURE 22 0 FILL 1 T_OCCUPATION T_AJOUTE 65535 T_MESURE T_AJOUTE 10 T_OCCUPATION T_ACTIVE 1000 T_MESURE T_ACTIVE -1 V_MESURE_OCCUPATION ! THEN ; : OCCUPATION_OFF V_MESURE_OCCUPATION @ IF T_OCCUPATION T_RETIRE T_MESURE T_RETIRE 0 V_MESURE_OCCUPATION ! THEN ; ( Instruction de visualisation du taux d'occupation de l'unite centrale : - OLIST - ) : OLIST OCCUPATION_ON ." Taux d'occupation de l'unite centrale pendant les 20 dernieres secondes :" CR BASE @ DECIMAL 0 F_MESURE DUP @ >R 2+ R> 20 0 DO I 1+ DUP 10 < IF SPACE THEN . OVER OVER + C@ DUP 1+ 2/ DUP IF DUP 0 DO 42 EMIT LOOP THEN 51 SWAP - OVER 100 < - OVER 10 < - SPACES DUP . >R ROT R> + ROT ROT 37 EMIT CR 1+ 20 MOD LOOP DROP DROP ." Moyenne : " 5 100 */MOD SWAP <# # # DROP SWAP 44 HOLD #S #> TYPE SPACE 37 EMIT SPACE BASE ! ; TACHE: T_PERF 100 V_OCCUPATION DUP >R @ 10 / 100 MIN - 0 R> ! BASE @ DECIMAL SWAP DUP 1+ 2/ DUP IF DUP 0 DO 42 EMIT LOOP THEN 51 SWAP - OVER 100 < - OVER 10 < - SPACES . 37 EMIT CR BASE ! 1000 TEMPS 2@ OVER U/MOD DROP - 0 MAX T_PERF T_ACTIVE ; : PERF OCCUPATION_OFF PRIORITE DUP >R @ 0 R@ ! OCCUPATION_OFF 0 V_OCCUPATION ! 1 T_OCCUPATION T_AJOUTE 65535 T_PERF T_AJOUTE 1 T_OCCUPATION T_ACTIVE 1000 T_PERF T_ACTIVE ." Appuyer sur une touche du clavier pour stopper." CR KEY DROP T_OCCUPATION T_RETIRE T_PERF T_RETIRE R> ! ; ( FIN )