En fait, un while(1) suffit à bouffer 100% du CPU. Tu peux essayer sur ta machine Linux, celui-ci n'en souffrira pas plus.
Cela vient du fait que ce programme est une boucle très rapide qui ne contient aucun appel noyau ni section atomique. Donc interruptible à tout moment si le besoin s'en fait sentir !
Tous les programmes peuvent donc utiliser à souhait leur quantum de temps, ton while(1) bouffera le temps qu'il reste. C'est même d'ailleurs le travail et l'unique utilité du process Idle.
Cela peut commencer à devenir pénalisant, lorsque tu lances plusieurs fois ce même while(1). Là, chaque processus revendiquera son quantum de temps dans son intégralité, et il faudra tous les écouler avant de pouvoir rendre à nouveau la main aux autres processus. Mais là encore, du fait de l'interruptibilité quasi-permanente de tes processi, tu n'auras pas de « retard » sur l'exécution programmée d'un autre processus.
C'est ce dernier problème qui fait fait ramer une machine en général.
[^] # Re: Mouahahahaha !
Posté par Obsidian . En réponse au journal Mouahahahaha !. Évalué à 1.