IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation d'OS Assembleur Discussion :

multi coeur, multi processeur


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut multi coeur, multi processeur
    bonjour,
    je suis en train d'essayer de créer un mini système d'exploitation et je me demander comment on fait pour executer deux programme en parallèle sur un ordinateur multi coeur/processeur, je me doute que chaque processeur doit avoir un jeu indépendant de registre (surtout cs:eip)
    est ce que l'un des processeur est maitre et commande aux autres?
    est ce qu'on uttilise un système d'intteruption? (avec des tables d'interruption spécifique a chaque processeur)
    au démarrage on est en mode protégé, seul l'un des processeur doit etre actif et les autres en sommeil, comment faire pour les activer?

    si quelqu'un a une bonne doc sur le sujet je suis preneur

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Points : 10
    Points
    10
    Par défaut
    Salut,

    Rendre ton OS multi-core n'est pas extrêmement complexe, mais il faut être assez rigoureux. Comme tu l'as deviné, chaque processeur possède son jeu de registre.

    Bon, je suis pas un expert là dessus mais en gros :

    Les processeurs peuvent être détecté dans la table ACPI.

    Il faut les démarrer (en leur envoyant une sequence d'interruption) puis les passer en mode protégé, charger la GDT, l'IDT, Le TSS (puisque ce soit des registres différents) pareil pour la pagination.

    Je sais pas exactement comment ça marche mais tu as des interruptions inter-core.

    Ensuite, tous les processeurs sont à égalité (pas de maitre/esclave), ils travaille en collaboration. Tu dois avoir un kernel thread-safe (et pas qu'un peu ). Pour ça il faut utiliser des instructions atomiques (avec le prefixe LOCK: ).

    Pour la doc, j'ai du mal à trouver, mais voilà un tuto pas trop mal :
    http://www.cheesecake.org/sac/smp.html

    J'espère t'avoir éclairer un peu. Si tu as des questions n'hésite pas
    Pour mon propre OS, j'en suis pas encore là, mais j'ai une question : Quel VM tu utilises pour simuler plusieurs coeurs ?

  3. #3
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    merci pour la doc, pour ce qui est de la VM j'en uttilise pas, j'ai un pc complet dédié aux test, mais c'est un vieux pentium2 alors il ne supporte pas le multicoeur,

    pour le moment j'ai pas d'os multitache, il n'est qu'au stade du dos like en "flat real mode" je voulait savoir comment ça marchait grosso modo avant de définir le fonctionnement de la version multitache

    il va falloir que je me renseigne a fond sur l'APIC avant de continuer

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2014, 02h42
  2. fork() et processeur multi-coeur
    Par LaurentD88 dans le forum Débuter
    Réponses: 3
    Dernier message: 05/03/2010, 18h06
  3. Réponses: 12
    Dernier message: 06/01/2009, 18h43
  4. Réponses: 5
    Dernier message: 13/10/2008, 01h23
  5. [BP7] Multi-cpu, multi-core, multi-thread et programme Pascal
    Par Transgarp dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 07/04/2008, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo