2010-12-12 7 views
2

Je suis novice en architecture d'ordinateur. Est-ce que quelqu'un peut m'aider à comprendre l'utilisation de registres limités dans le traitement de plusieurs applications complexes. Ma question est qu'il y a un nombre fixe de registres (par exemple: 80386 contient un total de seize registres) qui intéressent le programmeur d'applications. Que se passe-t-il si nous voulons plus de registres (par exemple: pour augmenter la taille de la pile), les adresses et les données des registres sont-elles réécrites dans la mémoire principale? Dans un environnement multitâche, les registres sont-ils déplacés? entre la mémoire principale et de retour pour s'inscrire pour le traitement?Registres universels

Les systèmes d'exploitation ont-ils des registres spéciaux qui n'interfèrent pas avec les registres d'applications générales? Et suggérez-vous une bonne ressource pour comprendre ces concepts pour les débutants?

Répondre

1

Les registres sont la mémoire la plus rapide d'un ordinateur. L'ensemble d'instructions de toute unité centrale particulière est écrit spécifiquement pour l'architecture de registre. Vous avez raison: les données/adresses doivent être sauvegardées dans la mémoire à mesure que l'espace de registre est utilisé.

En ce qui concerne un système multitâche, le planificateur doit généralement sauvegarder le contexte d'exécution entre les tâches. Ce contexte implique l'état actuel des registres ainsi que d'autres bits d'état (selon le processeur).

Une bonne première étape serait d'apprendre la programmation d'assemblage. Il est si proche du matériel que vous apprendrez toutes ces choses à fond. Une fois que vous avez cela, prenez un livre de systèmes d'exploitation pour voir comment cela se fait à un niveau supérieur. En fonction de votre engagement (et de votre curiosité), vous pouvez également lire le code source de petits systèmes d'exploitation en temps réel, tels que FreeRTOS. Lire sur les architectures de microcontrôleur 8 bits est également agréable, car elles sont simples. Par exemple, AVR ou HC08 sont des architectures assez simples à apprendre. Toutes les informations sont gratuites. il suffit de le lire. Profitez-en.

+0

Pouvez-vous me montrer où je peux apprendre les bases du fonctionnement théorique/conceptuel des registres, de la mémoire principale et du traitement, etc.? – Carbonizer

+0

Je suggère de commencer avec un livre sur le langage d'assemblage. Il est si proche de l'architecture que vous devez l'apprendre pour faire l'assemblage. Malheureusement, je n'ai aucune recommandation sur les architectures de type x86, mais je suggérerais celle-ci en raison de la facilité de l'expérimentation. – caveman

Questions connexes