3 votes

Quel type de modèle de conception doit être utilisé pour créer un émulateur ?

J'ai programmé un émulateur, mais j'ai quelques doutes sur la façon de l'organiser correctement, car, je vois qu'il a quelques problèmes sur la connexion des classes (CPU <-> Machine Board). Par exemple : Les ports d'E/S, les interruptions, la communication entre deux ou plusieurs CPU, etc.

J'ai besoin que l'émulateur ait les meilleures performances et une bonne compréhension du code.

PD : Désolé pour mon mauvais anglais.

ÉDITION :

Demander des modèles multiples.

4voto

S.Lott Points 207588

Vous avez deux choses étroitement liées qui se passent ici.

  1. L'émulateur est une collection de Commande définitions. Chaque chose que l'émulateur peut faire est une commande. Certaines commandes sont des séquences imbriquées de commandes.

  2. L'émulateur possède un certain nombre de fonctions internes État définitions. Chaque action de l'émulateur met à jour un ou plusieurs objets d'état.

1voto

dash-tom-bang Points 9384

Construisez votre logiciel sans tenir compte des "modèles". Les modèles découleront naturellement de votre travail s'ils sont destinés à être là. Construire votre logiciel pour qu'il corresponde à des notions préconçues de ce que seront les modèles a tendance à le rendre plus volumineux et plus résistant au changement.

(Si vous ne l'avez pas encore fait, téléchargez un cadre de tests unitaires pour votre langue et utilisez-le pour guider votre développement).

1voto

Michal Sznajder Points 6292

Jetez d'abord un coup d'œil à wiki . Il semble donner un point d'entrée à l'art de l'émulation. Ensuite, je regarderais comment QEMU o DOSBox sont structurés. Jetez également un coup d'œil à SourceForge. Requête simple donne les émulateurs logiciels suivants :

En général, il n'existe pas de modèle unique pour une tâche aussi complexe. Vous aurez certainement besoin Machine à états et vous pouvez utiliser Commande pour la répartition des actions. Mais je vous suggère vraiment de regarder le travail des autres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X