• [^] # Re: j'y connais rien de chez rien mais...

    Posté par (site web personnel) . En réponse au journal meta-tracker, le tueur de beagle .... Évalué à 3.

    Moi je sais.

    T'es en PIO.
    Un disque SATA pourri me posait le même problème.
    Là actuellement, mon lecteur DVD est en PIO, et il m'est impossible de lire un film(sur un dual-core également) car sacadé.

    Le problème du PIO, c'est que le processeur reste bloqué pendant les opérations de lectures/écritures.
    Normalement, (sauf systèmes antiques), lors d'une opération de lecture/écriture(en très gros):
    -Le système place en mémoire les infos nécessaires(données à écrire par exemple).
    -Il dit au périphériques: "écrit moi ça"/"lit moi ça".
    -Le périphérique a directement accès à la mémoire, il se démerde, le processeur peut continuer son travail tranquil(genre par exemple, gérer l'affichage des touches à l'écran). Le thread demandant la lecture étant mis en attante.
    -Lorsque la lecture est terminée, une interruption a lieu, le scheduler redonne alors la main au thread qui pourra traiter la donnée.

    En PIO:
    -Le système demande au périphérique la lecture d'une donnée.
    -Le processeur attend le résultat. Pendant ce temp, il maintient le contact, et reste complètement bloqué jusqu'à ce qu'arrive le résultat.
    -Une fois le résultat arrivé, le système rend la main à l'application avec la donnée. Ce qui, pour un disque dur/lecteur CD, peut représenter des millions de cycles d'horloges.

    Mais ça, c'est pareil sous Windows comme sous Linux. Et si les accès disques tiraient tant notre système vers le bas, Linux ne serait pas tant utiliser sur les serveurs web/de bases de données. Ce qu'il faut, c'est un chipset bien supporté, et bien configuré quoi.