begin process at 2010 03 19 12:42:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

Sleep - Wait


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sleep - Wait

dimanche 21 mai 2006 à 00:36:01 | Sleep - Wait

Blackhorn

Bonjour je voudrais savoir comment faire en assembleur( de base sans windows et tout le tralala :)) une fonction sleep (en ms sa serait bien)
lundi 22 mai 2006 à 09:06:43 | Re : Sleep - Wait

patatalo

Membre Club Administrateur CodeS-SourceS
salut, sleep est une fonction du system d'exploitation, elle permet d'endormir un thread donc sans os, pas de sleep. @++
mercredi 24 mai 2006 à 22:16:42 | Re : Sleep - Wait

Blackhorn

c'est pour ca que j'ai dit faire.. et non pas utilisé
jeudi 25 mai 2006 à 10:12:29 | Re : Sleep - Wait

patatalo

Membre Club Administrateur CodeS-SourceS
salut, dans ce cas, il faudrait preciser le systeme d'exploitation. @++
jeudi 25 mai 2006 à 19:40:02 | Re : Sleep - Wait

Blackhorn

aucun ... a partir de rien ... en gros recreer un delay a partir de l'assembleur de base
lundi 19 juin 2006 à 10:26:15 | Re : Sleep - Wait

Nasman

Bonjour Blackhorn,

Pour occuper le processeur il y a toujours la méthode bestiale : crééer une ou plusieurs boucles imbriquées dont le temps d'exécution dépendra d'une part du nombre de fois que la boucle sera exécutée et du temps d'exécution d'une boucle élémentaire. Pour connaitre ce temps il te faut bien connaitre ton microprocesseur avec fréquence horloge et nombre de cycles horloge pour chacune des instructions.
Dans le principe ce n'est pas bien compliqué mais un peu fastidieux.

Autre désavantage: le code ne sera pas du tout portable. Les délais risquent de varier énormément d'un PC à un autre. Tu pourras toujours corriger en introduisant la fréquence horloge du micro mais selon le microprocesseur la même instruction peut être exécutée avec un nombre de cycles horloge différent.

Si tu ne part plus de rien, tu pourras peut être bénéficier de timers (interruptions dos par exemple).

Bon courage

samedi 29 juillet 2006 à 00:15:14 | Re : Sleep - Wait

_dune2_

Membre Club
salut,


Je suis d'accord avec Nasman et Patalo.

Tout d'abord, la solution de faire une boucle précalculée en cycles d'horloge est peu envisageable. Car avec les processeurs modernes (Pentium, Athlon ...), le cache et la parallélisation des instructions dans les pipelines d'exécution, rendent trés difficile l'estimation exacte en terme de cycles d'horloge. Seule une méthode empirique par essais successifs peut permettre de s'en sortir.

Ensuite, cette méthode de boucle ne peut être valide que si on invalide toute interruption, car on a de forte chance d'être préempté par le scheduler de tâches (que ce soit sous windows ou linux) pendant la boucle et donc fausser notre timing. Mais le fait d'invalider les IT pendant notre 'sleep' va geler notre OS.

Puis il y a la solution de l'interruption du timer qui semble plus élégant. Mais sans passer par l'OS, c'est à dire en utilisant le timer hardware, on va interferer avec les interruptions périodiques du timer servant à l'ordonnanceur de tâches (scheduler) de l'OS. On ne peut donc pas vraiment considerer cette solution comme envisageable sauf si on accepte de 'geler' le système pendant notre chrono.

Pour terminer, reste la solution qui consiste à 'endormir notre tâche jusqu'à la prochaine periode de l'ordonnanceur de tâche. Mais on devient alors, trés lié à l'OS puisqu'on utilise la gestion du multitâche pour rescheduler notre process.

Je ne pense pas qu'il y ait de solution vraiment simple .... sauf à réaliser l'opération sur microcontrolleur type PIC16Cxx et sans OS et seul au monde .

Gentoo... que du bonheur ...


Cette discussion est classée dans : wait, sleep


Répondre à ce message

Sujets en rapport avec ce message

programmer un wait en assembleur pr un PIC [ par rvw27 ] Bonjour a tous,Je voudrais savoir comment faire pr programmer la fonction wait en assembleur car une tempo ne me convient pas (en fait je ne veux pas Comment faire un sleep en assembleur MIPS ? [ par Yakurena ] Bonsoir, J'aimerais faire un programme en assembleur MIPS permettant de synchroniser la saisie de caractères au clavier par l'utilisateur et leur affi


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales