J'aurais voulu savoir comment déterminer l'activité du CPU, comme par exemple trouver le % d'utilisation du CPU utilisé.
Merci d'avance
J'aurais voulu savoir comment déterminer l'activité du CPU, comme par exemple trouver le % d'utilisation du CPU utilisé.
Merci d'avance
si tu trouves qq chose, préviens moi svp, je recherche la même chose, j'avais déjà posté : http://www.developpez.net/forums/viewtopic.php?t=65039
a+
le seul truc qu j'avais trouvé sur le web c'était un truc assez costausd qui utilise le multitache et le timer...Envoyé par le mage tophinus
Le % de cpu, c'est pour les système multithreads non ? Ca corresponds au temps pendant lequel tous les threads sont endormis. Donc il faut une fonction de l'os. c'est ca que vous cherchez ?
Envoyé par Blustuff
oauis je pense que ce doit se rapprocher de ca , tu peut nous en dire + stp ?
lol, non, je trouve rien dans l'API Win32, rien concernant les processus inactif, et rien pour énumerer les processes... C'est quopi la solution avec le timer ? parce que ca je vois pas comment l'utiliser...
Je pense que le %age d'utilisation du processeur ne peut logiquement se faire qu'en multitache, sinon tout le temps machine du microprocesseur va dans le programme de calcul du %age d'utilisation du CPUEnvoyé par dway
En bref : si monotâche => 100% du temps cpu dans ladite tâche.
Merci pour toutes ces infos. En clair, c'est pas simple de calculer le % du CPU utiliser.
Ce qui me faudrait en fait c'est un 'algorithme' (ou une méthode) qui me permette de mesurer le % pour un OS que j'aurais créé.
Je suis d'accord avec Smortex, je pense aussi que ce n'est faisable qu'en multitâche.
Merci encore pour vous attardez sur ce problème.
Tu dois stocker quelque part la liste des processus. Tu commence par donner le controle a un processus. Dès qu'il a finit, il te dit, "le thread peut dormir, jusqu'à ce qu'il recoive un message, ou que tant de ms se sont écoulés. A ce moment là, tu passe le controle à un processus actif. Quand il n'y a plus de processus actifs, tu dit : "top chrono" et dès qu'un evenement attendu survient, tu arrète le chronomètre.
Là tu peux choisir de comter le pourcentage chaque seconde par exemple :
Pourcentage = 100000 / Temps Inactif en milisecondes
Lorsque une tache reste trop longtemps active, tu dois lu repprendre le controle : tu utilises l'irq du timer pour ca. Une fois que tu a repris le controle tu le passes aux autres procesus qui voudraient en profiter. Sous windows xp, il me semble avoir mesuré entre 18 et 20 ms ou on poyuvait grader le controle.
ok d'accord pour la méthode. T'aurais pas une adresse ou deux sur le 'timer' et son IRQ que je me casse un peu la tête la-dessus et que j'arrête de poser mes questions débiles sur le forum ?
c'est pas des questions débiles lol. Euh, moi non, j'ai pas de doc. Enfin pas de docs concernant le PIC. Mais sinon si l'irq est déja programmée, au plus basique de tca donne ca en mode réel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 xor ax, ax mov gs, ax cli mov ax, cs mov gs:[08h*4], ax mov ax, offset TimerProc mov gs:[08h*4 + 2], ax sti ... TimerProc: push ax ;Sauvegarde des registres obligtoire pour les irqs mov al, 20h ;Dire au pic, que c'est fini, comme ca il pourra déclancher l'irq une autre fois out 20h, al pop ax iret
en pmode ca doit etre pareil sauf que c'est dans la IDT qu'on ecrit et pas à 0:08h. Pour l'adresse :
http://www.chez.com/pageasm/tutd/timer/index.htm
Ok, Je vais faire travailler mes neurones maintenant. Merci encore pour les zinfos
tiens nous au courant stp ! merci d'avance...Envoyé par le mage tophinus
pourquoi dway il te manque quelque chose pour mediter toi même sur le sujet ?
Envoyé par Blustuff
bah j'suis pas encore assez baleze en multitache pour cela...
Si c'est pour creer un os dway, c'est a toi de choisir comment fonctionera le multitaches. Le % d'utilisation de la mémoire c'est un peu vague. Si c'est en espace, c'est très facile, puisque c'est l'os qui decide quel programme a le droit d'utiliser quelle zone de la mémoire.
oauis en fait pour le % d'uilisation de la mem j'ai créé un tableau divisé en blosk de X octets alloué à tel prog donc je sais quel % du tableau (et donc de la ram) est occupé ou non...par contre pour le cpu c'est + compliqué car il faut gérer le multitache, les tss etc pour switcher entre les différents prog et j'en suis pas encore la...Envoyé par Blustuff
Comme il a été dit precedement, le % du cpu, c'est juste une notion abstraite pour le multitache. Le processeur que ce soit en multitache ou autre est toujours occupé à 100 %. Le % d'utilisation, est le % pendant lequel il y a une tache d'occupée, puisque chaque tache a la possibilité de rendre le controle avant la fin du temps qu'il lui est donné. Si tu n'as encore rien fait en multitache, tu n'as pas a t'occuper du % du cpu
J'en reviens au %age...
Vous pensez pas que ça doit se faire dans un VxD? parce que le module qui dirige tout son petit monde, c'est le VMM (Virtual Machine Manager) qui a pour rôle de dire toi tu prends la main pendant x ms puis toi, c'est ton tour.....
D'autant plus qu'il utilise les deux métodes suivantes pour gérer le temps de chacun :
Le planificateur primaire
Le 'time-slicer' (le temps de latence) ou Planificateur secondaraire.
C'est peut-être une piste... vous pouvez obtenir plus de détails sur ces sujets grâce aux documents Walter Oney's Systems Programming for Windows 95 ainsi que la documentation Windows 95 DDK.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager