2013-06-16 1 views
0

Tout ce que l'on me dit, c'est que le SEULEMENT façon de faire du multitraitement dans le langage d'assemblage est d'utiliser les appels du système d'exploitation, ce qui rend impossible de le faire depuis le langage assembleur. Mais disons que je faisais mon propre système d'exploitation. Comment utiliser le langage d'assemblage pour utiliser plusieurs processeurs? Je sais que c'est possible sinon aucun ordinateur ne serait capable de le faire. Je ne sais pas comment le faire et je ne peux pas trouver de bonnes ressources pour cela.Comment implémenter le multitraitement dans la langue de l'assemblage?

+1

Il se trouve dans Intel Manuel 3A chapitre 8 – harold

+0

Y a-t-il des exemples d'assemblage que je peux examiner qui implémente cela? Ce serait un grand salut :) Et merci pour ce manuel. Je ne savais pas qu'Intel avait ces ressources: S lol – Firstpick5

+0

Je ne connais aucun exemple montrant cela, mais je suppose que vous pourriez regarder un noyau open source – harold

Répondre

0

Fondamentalement, vous devez configurer un minuteur d'interruption, qui se déclenche chaque N intervalls. Dans ce cas, vous sauvegardez l'état du processeur, comme les registres et les indicateurs, chargez le nouvel ensemble à partir d'une tâche différente et laissez-le continuer. C'est la partie facile d'un planificateur. :)

Si vous voulez vraiment faire du multitraitement, en détail, alors vous devriez vraiment regarder dans les sources pour le noyau Linux.

+0

J'aime cette réponse. Merci :) – Firstpick5

+0

Je crois cependant que le noyau Linux est écrit dans le langage de programmation C ...:/Y a-t-il un moyen de changer le code C en Assemblage en le compilant? – Firstpick5

+0

Bien sûr, vous pouvez le traduire en ASM. C'est ce que le compilateur fait aussi. :) Votre question est un peu vague, donc il est difficile de donner une réponse correcte. Si vous voulez juste faire des tâches, alors c'est plutôt facile. Je l'ai fait dans mes premiers jours sur la plate-forme DOS et même sur le C64. La partie la plus difficile est quand il s'agit de gérer les périphériques et de les faire se comporter correctement dans toutes les situations possibles, ou, en faisant un système d'exploitation, faire une bonne configuration en mode protégé. Un autre code pour regarder dans, pourrait être ReactOS. Je ne sais pas combien de montage il y a, mais pour le boostrapping c'est probable. – Devolus

Questions connexes