processus et acces aux ressources mémoire de la RAM
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

processus et acces aux ressources mémoire de la RAM



  1. #1
    cosmoff

    processus et acces aux ressources mémoire de la RAM


    ------

    Bonjour,

    voila sur mon ordinateur, j'ai plusieurs processus qui vont chercher des ressources mémoires dans la RAM. Mais si le processus 1 accede à la RAM pour récupérer une variable, alors tous les autres processus doivent attendre leur tour pour acceder à la RAM ?
    Je demande car cette méthode me parait super lente.

    Merci d'avance pour votre aide

    -----

  2. #2
    pm42

    Re : processus et acces aux ressources mémoire de la RAM

    C'est beaucoup plus compliqué que cela. Déjà, ton processeur ne fait pas tourner tant de processus que cela à la fois. 2 à 4 sur une machine normale, jusqu'à 8 à 12 sur une machine plus haut de gamme.
    Ensuite, on accède à la mémoire à travers plusieurs niveaux de cache, et via plusieurs canaux à travers un controleur qui peut faire tourner effectivement pas mal de requêtes en parallèle.

    Si tu es courageux et que tu lis l'anglais, tu as pas mal d'infos ici : https://stackoverflow.com/questions/...ern-processors

  3. #3
    invite936c567e

    Re : processus et acces aux ressources mémoire de la RAM

    Bonjour

    La réponse dépend énormément de l'architecture de l'ordinateur (processeurs, contrôleurs de mémoire, mémoires et niveaux de cache), de la taille et des performances de cette dernières, et de la façon dont elle est sollicitée (nombre de processus, débit de données, ordre des accès, ...).

    Un accès particulier à la mémoire nécessite un certain nombre d'opérations de natures différentes. Ce nombre va de paire avec la complexité de l'architecture.


    Dans les architectures matérielles les plus dépouillées (monoprocesseur, accès direct à la mémoire), les processus étaient exécutés l'un après l'autre, et chaque accès à la mémoire n'était réalisé qu'après la fin de l'accès précédent.

    Une première amélioration a consisté à paralléliser les opérations de natures différentes de plusieurs accès afin de pouvoir démarrer un accès avant que le précédent ne se termine. Cela permettait de réduire le temps entre deux accès consécutifs, mais restait limité par la lenteur de la mémoire.

    L'introduction de systèmes de cache avec des mémoires intermédiaires à accès plus rapide (de petite taille pour des raisons techniques) a permis d'augmenter la vitesse moyenne d'accès malgré un nombre plus important d'opérations, certains accès futurs à la mémoire lente pouvant avoir été anticipés par ce moyen. Toutefois, un logiciel inadapté à ce type d'architecture (provoquant notamment un vidage et un remplissage quasi-permanent du cache) risquait de provoquer un allongement important du temps d'accès par rapport à une architecture plus simple.

    En poussant le parallélisme des opérations à tous les niveaux du système, en augmentant la longueur des pipelines et en multipliant les niveaux de cache, on a pu réaliser en même temps, et majoritairement de façon anticipée, des opérations de même nature correspondant à des accès distincts initiés par des processus exécutés de façon parfaitement simultanée. Même si certains accès peuvent être très longs, en moyenne leur durée reste en principe assez courte pour ne pas ralentir l'exécution des processus. Toutefois, un tel système présente toujours des limites : si un nombre raisonnable de processus réalisant un nombre raisonnable d'accès à la mémoire dans un ordre raisonnable donne des performances optimales, il n'en reste pas moins qu'un nombre trop grand de processus simultanés, ou un nombre d'accès à la mémoire trop important, ou encore des logiciels mal adaptés à l'architecture, peuvent aboutir à des résultats catastrophiques, quelquefois pire que si l'on en était resté à une architecture matérielle minimale.


    Donc pour répondre à ta question, « ça dépend » ! Deux processus exécutés simultanément peuvent dans le meilleur des cas accéder directement et en même temps à leurs variables déjà présentes en cache de premier niveau. Au pire, d'autres processus plus prioritaires peuvent les mettre en attente avant qu'ils commencent à récupérer leurs variables depuis la mémoire la plus lente.

  4. #4
    polo974

    Re : processus et acces aux ressources mémoire de la RAM

    Je demande car cette méthode me parait super lente.
    et bien, ça se voit que ton ordi n'est pas encore parti en swap...

    la mémoire est chère, donc avec la mémoire virtuelle, quand il y a besoin de plus de mémoire qu'il n'y en a plus de libre dans la machine, on range un paquet sur le disque en espérant ne pas en avoir besoin de si tôt... et on jongle entre la mémoire et le disque. c'est ça partir en swap... (en fait, en gros on a l'impression que tout est planté, mais non, ça marche juste mille à un million de fois moins vite...)

    le disque est trèèèèèèès lent comparé à la mémoire, mais il est aussi très grand...
    Jusqu'ici tout va bien...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Complément concernant la mémoire et sur son processus de fabrication.
    Par invite14b2b743 dans le forum Neuropsychologie et psychologie cognitive
    Réponses: 6
    Dernier message: 17/09/2017, 13h03
  2. latence d'accès à une mémoire
    Par invitebfa43842 dans le forum Électronique
    Réponses: 4
    Dernier message: 10/11/2012, 21h57
  3. acces mémoire pic 16f57
    Par invite2d0122e6 dans le forum Électronique
    Réponses: 0
    Dernier message: 09/10/2009, 15h21
  4. Vhdl-accès à la mémoire
    Par invited5095748 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/02/2007, 19h53