Question

J'ai une idée de la façon dont les interruptions sont gérées par un processeur dual core. Je me demandais comment la gestion des interruptions est mis en œuvre sur une carte comportant plus d'un processeur physique.

est tout de la responsabilité d'interruption déterminée par la configuration de la carte physique? Chaque processeur doit être en mesure de traiter certains types d'interruptions, comme E / S disque. À moins d'un certain circuit à gérer et les interruptions d'expédition au processeur approprié? Je pense que le système doit être neutre processeur, de sorte que tout processeur et le noyau peuvent exécuter le gestionnaire d'interruption.

Si un noyau est en attente sur une lecture de disque, est-ce que le noyau est celui d'exécuter le gestionnaire d'interruption lorsque le disque est prêt?

Était-ce utile?

La solution

Sur les systèmes x86 chaque CPU obtient son propre APIC locale (Advanced Programmable Interrupt Controller) qui sont également câblés les uns aux autres et à un APIC E / S qui gère dispositif de routage interruptions aux APIC locales.

Le système d'exploitation peut programmer les APIC pour déterminer les interruptions se routé vers les processeurs (ou de laisser les APIC prendre cette décision).

J'imagine qu'une CPU multi-core aurait un APIC local pour chaque noyau, mais je ne suis honnêtement pas certain.

Voir ces liens pour plus de détails:

Autres conseils

Qu'est-ce que vous êtes intéressé est d'affinité du processeur SMP. est un excellent article sur la façon dont il est gérée sous Linux. Advanced Programmable Interrupt Controller (APIC) est de savoir comment vous gérez cela dans un système moderne. Fondamentalement, la valeur par défaut serait de tous aller au processeur 0 sauf si vous aviez un OS qui a utilisé cette interface pour configurer les choses correctement. , Vous ne voulez pas nécessairement aussi le noyau qui a émis une commande d'attendre une interruption particulière. Vous voulez que les noyaux moins chargés de le recevoir.

Je l'ai déjà posé cette question un certain temps. Peut-être qu'il peut vous offrir un aperçu:)

comment les interruptions dans les machines multi-cœurs / MultiCPU travail

Je dirais que cela dépend du fabricant de matériel ...

ce lien me fait croire la plupart sont probablement traitées par le processeur principal et / ou premier noyau.

Autre lien

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top