2010-12-12 6 views
2

Ich bin neu in Computer Architecture.Can jemand mir helfen, die Verwendung von begrenzten Registern bei der Verarbeitung von mehreren komplexen Anwendungen zu verstehen. Meine Frage ist, es gibt eine feste Anzahl von Registern (zum Beispiel :: 80386 enthält insgesamt 16 Register), die für den Anwendungsprogrammierer von Interesse sind.General Purpose Register

Was passiert, wenn wir mehr Register haben wollen (zB um erhöhte Stack-Größe zu berücksichtigen), werden die Adressen und Daten von Registern zurück in den Hauptspeicher geschrieben? .In Multitasking-Umgebung werden die Register Daten und Adressen verschiedener Anwendungen verschoben zwischen dem Hauptspeicher und zurück zu registrieren für die Verarbeitung?

Haben Betriebssysteme spezielle Register, die die allgemeinen Register der Anwendung nicht stören?

Und schlagen Sie eine gute Ressource für das Verständnis solcher Konzepte für Starter?

Antwort

1

Register sind der schnellste Speicher in einem Computer. Der Befehlssatz einer bestimmten CPU wird speziell für die Registerarchitektur geschrieben. Sie haben Recht, dass Daten/Adressen in den Speicher gesichert werden müssen, wenn mehr Registerraum verwendet wird.

Soweit ein Multitasking-System geht, muss der Scheduler im Allgemeinen den Ausführungskontext zwischen Aufgaben speichern. Dieser Kontext beinhaltet den aktuellen Zustand der Register sowie andere Statusbits (abhängig von der CPU).

Ein guter erster Schritt wäre, die Programmierung der Baugruppe zu lernen. Es ist so nah an der Hardware, dass Sie all diese Dinge gründlich lernen werden. Sobald Sie das haben, holen Sie sich ein Betriebssystem-Buch, um zu sehen, wie es auf einer höheren Ebene getan wird. Abhängig von Ihrem Engagement (und Ihrer Neugierde) könnten Sie auch einen Teil des Quellcodes für kleinere Echtzeitbetriebssysteme wie FreeRTOS lesen. Das Lesen auf 8-Bit-Mikrocontroller-Architekturen ist auch nett, da sie einfach sind. Zum Beispiel, AVR oder HC08 sind ziemlich einfache Architekturen zu lernen. Alle Informationen sind kostenlos; Sie müssen es nur lesen. Genießen.

+0

Können Sie mir einen Hinweis geben, wo ich die Grundlagen des theoretischen/konzeptionellen Arbeitens der Register, des Hauptspeichers und der Verarbeitung usw. lernen kann? – Carbonizer

+0

Ich würde vorschlagen, mit einem Buch über Assembler zu beginnen. Es ist so nah an der Architektur, dass man es lernen muss, um Assembly zu machen. Leider habe ich keine Empfehlungen zu x86-artigen Architekturen, aber ich würde vorschlagen, dass dies aufgrund des einfachen Experimentierens der Fall ist. – caveman