Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2829 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Ca correspond a quoi le taux d'utilisation d'un cpu?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ca correspond a quoi le taux d'utilisation d'un cpu?

n°227104
Ace17
Posté le 11-10-2002 à 22:30:38  profilanswer
 

Le pross n'est-il pas censé tourner en permanence? Comment cette valeur est-elle calculée? A-t-elle un sens dans un environnement non-multitache?


Message édité par Ace17 le 11-10-2002 à 22:31:58
mood
Publicité
Posté le 11-10-2002 à 22:30:38  profilanswer
 

n°227106
mrbebert
Posté le 11-10-2002 à 22:36:23  profilanswer
 

Ace17 a écrit a écrit :

Le pross n'est-il pas censé tourner en permanence? Comment cette valeur est-elle calculée? A-t-elle un sens dans un environnement non-multitache?



On peut voir l'OS (multitache) comme une boucle dans ce genre là :
 
while (True) {
  if (quelque_chose_a_faire)
    le_faire;
}
 
L'inactivité, c'est toute les fois où quelque_chose_a_faire est faux :D

n°227107
MagicBuzz
Posté le 11-10-2002 à 22:43:29  profilanswer
 

:lol:
 
Quand c'est Windows t'as oublié d'ajouter :
 

Code :
  1. while (True) {
  2. if (quelque_chose_a_faire)
  3.    if (truc_tres_important)
  4.      doError();
  5.    else
  6.    {
  7.      if (j_ai_de_la_chance)
  8.        le_faire;
  9.      else
  10.        doError();
  11.    }
  12. }


 
:D

n°227109
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-10-2002 à 22:45:09  profilanswer
 

t'as oublié un bout:
 
if(swap_pas assez_utilisé && déjà_des_trucs_en_cours)
{
  swapper un bon coup
  faire un autre truc dont on a pas besoin maintenant
}


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°227111
MagicBuzz
Posté le 11-10-2002 à 22:47:41  profilanswer
 

Ca ça va, depuis que j'ai 1 Go de RAM sous 2K, j'ai plus de problème de SWAP :)

n°227112
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-10-2002 à 22:50:19  profilanswer
 

même avec 512 Mo j'ai pas de problèmes


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°227113
MagicBuzz
Posté le 11-10-2002 à 22:56:00  profilanswer
 

Ouais mais des fois je suis méchant, je lui demande des gros trucs ;)
 
Là, en utilisation normale sans rien d'ouvert (IE + Winamp) j'ai 420 Mo de RAM...
 
Mais bon, y'a une chiée d'outils serveurs qui tournent derrière aussi ;)
 
En tout cas, un coup j'ai fait un beau pic à 960 Mo :sol:

n°227177
Ace17
Posté le 12-10-2002 à 10:45:27  profilanswer
 

mrbebert a écrit a écrit :

 
L'inactivité, c'est toute les fois où quelque_chose_a_faire est faux :D  




 
Ouais mais comment cela peut-il arriver? A partir du moment ou un programme est lancé il y a toujours quelque chose a faire non?

n°227204
MagicBuzz
Posté le 12-10-2002 à 13:32:35  profilanswer
 

Ben non.
 
Plus exactement, un soft qui utilise les évènement est managé par un eventhandler qui est celui de windows. et quand il se produit qqchose, alors l'eventhandler indique au prog concerner qu'un évènement s'est produit, ce qui lance un traîtement.
 
Mais s'il ne se produit rien et que les programmes n'ont rien à faire, l'eventhandler récupère 100% du temps CPU.
 
Et c'est le temps processur utilise par l'eventhandler qui correcpond au taux d'innocupation.
 
Et l'eventhandler est un peu ce qu'on t'as décrit là-haut en écrivant du code à 2 balles.
 
Il tourne en rond en attandant une action utilisateur ou logicielle. Et dès qu'une action se produit il recherche à quel logiciel c'est destiné et voilà.

n°227241
Ace17
Posté le 12-10-2002 à 14:52:28  profilanswer
 

Ok je commence a saisir!
Mais n'y a-t-il pas dans chaque programme windows une pompe a messages qui tourne en permanence?

mood
Publicité
Posté le 12-10-2002 à 14:52:28  profilanswer
 

n°227249
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-10-2002 à 14:59:42  profilanswer
 

oui
chaque programme a une boucle de ce genre
Par ex un programme Delphi a dans sa procédure application.Run :

Code :
  1. repeat
  2.         try
  3.           HandleMessage;
  4.         except
  5.           HandleException(Self);
  6.         end;
  7.       until Terminated;


(Terminated est un booléen qui se met à true quand on quitte le programme)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°227285
Ace17
Posté le 12-10-2002 à 16:23:22  profilanswer
 

Dans ce cas la , pourquoi la pompe n'utilise-t-elle pas 100% du cpu?

n°227312
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-10-2002 à 17:30:21  profilanswer
 

Parce que :


procedure TApplication.HandleMessage;
var
  Msg: TMsg;
begin
  if not ProcessMessage(Msg) then Idle(Msg);
end;


 
Si y a pas de message en attente, alors on ne fait rien :)
La procédure Idle fait, entre autres, un appel à la fonction de l'API "WaitMessage", qui pause le thread jusqu'à ce qu'il y ait un nouveau message.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°227324
Ace17
Posté le 12-10-2002 à 18:19:09  profilanswer
 

Ok je vois! Dans ce cas, si je fais un programme qui tourne sans boucle de messages il occupera toujours le maximum possible?

n°227346
mrbebert
Posté le 12-10-2002 à 19:45:41  profilanswer
 

Ace17 a écrit a écrit :

Ok je vois! Dans ce cas, si je fais un programme qui tourne sans boucle de messages il occupera toujours le maximum possible?



Oui. C'est généralement le cas des de jeux qui bouclent sans faire de pause. C'est pour ca que le framerate dépend de la puissance du processeur.
 
Ce n'est pas le cas des applications bureautiques qui attendent les "instructions" (click de souris, appui d'une touche....) et les traitent quand elles arrivent.

n°227411
apolon34
Vive Linux!!
Posté le 13-10-2002 à 04:45:52  profilanswer
 

en fait dans un systeme d'exploit digne de ce nom c'est plutot:
 
on attribue a chaque processus du temps processeur.
 
chaque process a le droit a sa tranche
quand le temps imparti est ecoule, on passe au suivant.
 
Si aucun processus ne requiert de temps processeur, on fait tourner le process 'idle' qui est la pour consommer le temps processeur inutile en ne faisant rien.
 
Et pour repondre a ta question, un processeur tourne en permanence oui, d'ou le process idle
 
sur les portables, on reduit la vitesse du proc par acpi(bios) quand il a rien a faire pour economuiser les batteries

n°228317
HelloWorld
Salut tout le monde!
Posté le 15-10-2002 à 17:54:16  profilanswer
 

Et qu'en est-il des programmes qui font baisser la temperature du CPU (livre avec le carte mere d'hab) a l'aide de l'instruction halt du proc ?
Quand est-ce qu'ils declenchent cette instruction ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°228364
mrbebert
Posté le 15-10-2002 à 19:49:28  profilanswer
 

HelloWorld a écrit a écrit :

Et qu'en est-il des programmes qui font baisser la temperature du CPU (livre avec le carte mere d'hab) a l'aide de l'instruction halt du proc ?
Quand est-ce qu'ils declenchent cette instruction ?


Je suppose qu'ils prennent la priorité "idle" (exécuté seulement lorsque l'OS n'a aucune autre tâche à exécuter).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Ca correspond a quoi le taux d'utilisation d'un cpu?

 

Sujets relatifs
[MFC] Utilisation de la touche TAB dans un RichEditProgrammer différents niveaux d'utilisation CPU
[HTML, JS] mise en forme et utilisation des div, frames, ...Utilisation de Perl
Utilisation d'une union : probleme[BORLAND]Utilisation de paquets Delphi dabs Builder 5
[BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!]VB : Utilisation d'une TextBox, dans un cas particulier
HELP : Utilisation des arguments dans un batchutilisation des raccourcis alt + ..
Plus de sujets relatifs à : Ca correspond a quoi le taux d'utilisation d'un cpu?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR