Je peux comprendre comment on peut écrire un programme qui utilise plusieurs threads ou processus: fork() un nouveau processus et d'utilisation de la CIB, ou créer plusieurs threads et l'utilisation de ces sortes de mécanismes de communication.
Je comprends aussi que le changement de contexte. Qui est, avec seulement une fois que le CPU, le système d'exploitation horaires de temps pour chaque processus (et il y a des tonnes d'algorithmes de planification de là) et donc nous parvenir à l'exécution de plusieurs processus simultanément.
Et maintenant que nous avons processeurs multi-core (ou multi-processeurs des ordinateurs), nous pourrions avoir deux processus en cours d'exécution simultanément dans les deux noyaux.
Ma question est sur le dernier scénario: comment le noyau de contrôle de la base d'un processus s'exécute sur? Qui appels système (Linux, ou même Windows) planifier un processus sur une base spécifique?
La raison pour laquelle je suis en demandant: "je travaille sur un projet pour l'école où nous en sommes pour explorer un sujet récent dans l'informatique et j'ai choisi architectures multicœurs. Il semble y avoir beaucoup de matériel sur la façon de programmer ce genre d'environnement (comment regarder des blocages ou des conditions de course) mais pas beaucoup sur le contrôle de l'individu cœurs eux-mêmes. J'aimerais être capable d'écrire quelques programmes de démonstration et de présenter certains des instructions de montage ou de code C à l'effet de "Voir, je suis en cours d'exécution d'une boucle infinie sur le 2e core, regarder le pic de l'utilisation du PROCESSEUR pour que de base".
Tous les exemples de code? Ou des tutoriels?
edit: Pour clarifier - beaucoup de gens ont dit que c'est le but de l'OS, et que l'on doit laisser l'OS en prendre soin. Je suis complètement d'accord! Mais alors ce que je demande (ou d'essayer d'obtenir une sensation pour) est ce que le système d'exploitation ne fait pour cela. Pas l'algorithme de planification, mais en plus "une fois un coeur est choisi, ce que les instructions doivent être exécutées pour avoir que le noyau de commencer l'extraction des instructions?"