|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
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 |
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 4 ![]() |
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 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 ? |
|
|
10
|
|
|
#3 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
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 |
|
00
|
Copyright © 2000-2013 - www.developpez.com