2010-05-31 4 views

Répondre

1

Cela ressemble plus d'une division conceptuelle d'une division réelle, à savoir:

  • moitié inférieure - envoie et reçoit des messages à partir de l'appareil et
  • moitié supérieure - parle à la plate-forme

Dans un pilote sans périphérique réel, la "moitié inférieure" fait ce que le pilote est censé faire. Par exemple, s'il s'agit d'un disque RAM, il gère les blocs de mémoire.

1

Cette réponse utilise une métaphore pour expliquer les pilotes de périphériques. Il n'y a pas nécessairement une division de deux moitiés, dans laquelle le bas contrôle le matériel. Dans tous les cas, la réponse pourrait être que cette "moitié inférieure" simule un peu de matériel à la place, comme un lecteur de CD-ROM virtuel ou quelque chose comme ça.

2

Le concept de la moitié inférieure n'est utile que lorsque vous effectuez l'entretien d'une interruption matérielle dans votre pilote. Un routage de service d'interruption matérielle masquera les interruptions de priorité inférieure, de sorte que vous souhaitiez sortir de l'ISR matériel le plus rapidement possible. Les moitiés inférieures, qu'elles soient des tâches ou des files d'attente de travail, sont traitées comme une interruption logicielle, de sorte qu'elles ne masquent généralement rien.

En ce qui concerne la séparation des tâches, vous ne souhaitez pas effectuer d'appels bloqués dans l'ISR matériel. La meilleure pratique consiste à enregistrer vos données dans la moitié supérieure, puis à effectuer les traitements/appels système/kmalloc/etc dans la moitié inférieure.

Questions connexes