Computer-Systeme Teil 5: Central Processing Unit (CPU)
Transcrição
Computer-Systeme Teil 5: Central Processing Unit (CPU)
Computer-Systeme Teil 5: Central Processing Unit (CPU) Computer-Systeme – WS 12/13- Teil 5/CPU 05.11.2012 1 Literatur [5-1] Bauer, F.L.: Wer erfand den von Neumann-Rechner? Informatik Spektrum, Heft 2, April, 21:84-89 (1998) [5-2] Engelmann, Lutz (Hrsg.): Abitur Informatik – Basiswissen Schule. Duden-Verlag, 2003, S.43-47, 214-224, 239-242 [5-3] Hübscher, Heinrich et al.: IT-Handbuch, IT-Systemelektroniker/-in, Fachinformatiker/-in. Westermann, 2. Auflage, 2001, S.104-109 Der in dieser Einheit vorgestellte Simulator kann von http://www.viktorianer.de/info/info-mops.html herunter geladen werden. Es fehlt dann noch der Python-Interpreter, der von http://www.activestate.com/activepython herunter geladen werden kann. Computer-Systeme – WS 12/13 - Teil 5/CPU 2 Übersicht • • • • • • • • Die Idee der Programme Princeton-Architektur (von Neumann-Rechner) Aufbau der CPU MOPS Allgemeines Registermodell Assembler Compiler Linker Computer-Systeme – WS 12/13 - Teil 5/CPU 3 Die einzelnen Ebenen Computer-Systeme – WS 12/13 - Teil 5/CPU 4 Programmsteuerung I • Damit Programme ausgeführt werden können, muss es möglich sein, unterschiedliche Funktionen in Abhängigkeit von Daten, einem Programm, auszuführen. • Was ausgeführt werden soll, wird durch Steuerleitungen bestimmt. • Die Steuerleitungen werden aus RAM-Speicherzellen bestimmt. Damit bestimmt der Inhalt des RAM, was gemacht werden soll. • Dieser Inhalt wird Befehl genannt. Computer-Systeme – WS 12/13 - Teil 5/CPU 5 Programmsteuerung II Resultat= f(x1,x2,S) ≥1 & & "Gatter" (Tore) S Fa & Fb ≥1 S = Steuerleitung 1 -> OR-Verknüpfung 0 -> AND-Verknüpfung x1 x2 Es sollen zwei Variablen wahlweise mit AND (F a) oder mit OR (F b) verknüpft werden Computer-Systeme – WS 12/13 - Teil 5/CPU 6 Bemerkungen • Die beiden UND-Gatter, die mit "Gatter" bezeichnet sind, sind im wörtlichen Sinne Tore, die den Datenfluss - hier bestehend aus 1 bit - in Abhängigkeit von der Steuerleitung S stoppen oder durchlassen. • Dass eine der beiden Funktionen "umsonst" gearbeitet hat, stört nicht weiter, da grundsätzlich alles parallel arbeitet. Computer-Systeme – WS 12/13 - Teil 5/CPU 7 Programmsteuerung III • Die zweite Realisierungsidee besteht darin, den Datenfluss der Operanden über "Gatter" zu den gewünschten Schaltnetzen zu realisieren, wobei die anderen Schaltnetze mit solchen Werten versehen werden, dass sie "neutrale" Werte liefern, d.h. bei OR ein False. Computer-Systeme – WS 12/13 - Teil 5/CPU 8 Programmsteuerung IV Resultat= f(x1,x2,S) ≥1 Fa Fb & & & & ≥1 & S x1 x2 S = Steuerleitung 1 -> OR-Verknüpfung 0 -> AND-Verknüpfung Es sollen zwei Variablen wahlweise mit AND (Fa) oder mit OR (Fb) verknüpft werden Computer-Systeme – WS 12/13 - Teil 5/CPU 9 Central Processing Unit (CPU) • Eine CPU ist eine Schaltung, die verschiedene Funktionen durch ein- und ausschaltbare Datenflüsse miteinander verbindet. • Die Datenleitungen sind ähnlich zu Gleisen bei einer Eisenbahn samt Weichen und Zusammenführungen. • CPU = Central Processing Unit = Teil eines Computers, der Operationen/Befehle, die aus dem RAM kommen, ausführt. • Operation = Befehl = besondere Art der Abfrage und Änderung von Speicherinhalten in RAM und CPU (Register) • Bedeutung einer Operation = Semantik = Art der Änderung von Speicherinhalten in RAM und CPU Computer-Systeme – WS 12/13 - Teil 5/CPU 10 Aufbau von Befehlen I • Jeder Befehl hat eine Codierung der Operation: Opcode • In Abhängigkeit von der Art der Operation hat ein Befehl keinen bis mehrere Operanden. • Da diese Operanden fast immer Adressen beinhalten, werden die Operanden auch „Adressen“ genannt (Umgangssprache), was eigentlich falsch ist. • Der Operand kann eine Adresse, aber auch einen festen Wert beinhalten. • Opcode = Operation Code = Bitkombination, die angibt, was geschehen soll Z.B. Addition oder Division Computer-Systeme – WS 12/13 - Teil 5/CPU 11 Aufbau von Befehlen II Operation Prinzipieller Aufbau eines Befehls: Operation: Was soll geschehen? Operanden: Mit was soll dies erfolgen? Operanden 0-Address-Befehl Operation Operation OP 1 Operation OP 1 OP 2 Operation OP 1 OP 2 1-Address-Befehl 2-Address-Befehl OP 3 3-Address-Befehl In der Praxis kommen nur 0- bis 3-Adress-Befehle vor, bei Mikroprozessoren eher 0- bis 2-Adress-Befehle. Computer-Systeme – WS 12/13 - Teil 5/CPU 12 Der Computer Maxi Im folgenden wird schrittweise ein kleiner Computer aufgebaut. Da dieser Computer so klein ist, wird er Maxi genannt. Computer-Systeme – WS 12/13 - Teil 5/CPU 13 Vorbereitung - Datenflüsse A & A ≥ B & S C C B S In Abhängigkeit von der Steuerleitung S wird entweder A oder B auf den Ausgang C geleitet – also eine echte Weiche. In der Praxis wird (fast) immer mit mehreren Leitungen parallel gearbeitet, teilweise bis zu 32 Leitungen Computer-Systeme – WS 12/13 - Teil 5/CPU 14 Computer Maxi I Befehle ld Value Acc = Akkumulator = Register = Schneller Zwischenspeicher in der CPU Computer-Systeme – WS 12/13 - Teil 5/CPU IR = Instruction Register OPC = Operation Code, Opcode Acc = Akkumulator Bei dieser Zeichnung sind viele Leitungen weggelassen worden, z.B. die Steuerleitungen 15 Computer Maxi II Befehle ld Value ld Adr st Adr Laden und Speichern des Akkumulators gehen nun. Computer-Systeme – WS 12/13 - Teil 5/CPU 16 Computer Maxi III Befehle ld Value ld Adr st Adr add Adr sub Adr mul Adr div Adr mod Adr Über den Eingang Mode wird die Art der Operation bestimmt. Nun kann Maxi sogar rechnen. Computer-Systeme – WS 12/13 - Teil 5/CPU 17 Computer Maxi IV Befehle … add sub mul div mod cmp cmp Value Value Value Value Value Value Adr Der Compare-Befehl setzt einen kleinen Speicher CC auf das Ergebnis des Vergleichs (CC = Condition Code). Computer-Systeme – WS 12/13 - Teil 5/CPU 18 Computer Maxi V Befehle … jmp jgt jlt jeq Value Value Value Value Nun kommt der Aspekt des Ortes der Befehle hinzu… Computer-Systeme – WS 12/13 - Teil 5/CPU 19 Programm Counter PC • PC = Program Counter enthält die Adresse der aktuellen Instruktion • Um auf die nächste Instruktion zu zeigen, muss dieses Register um 2 Byte (bei Befehlen mit der Länge 2 Byte) inkrementiert werden (Operation INC). • Dies darf nicht den Inhalt des Accumulators Acc zerstören. • Manchmal heißt der PC auch IP: IP = Instruction Pointer (ein besserer Name, der sich nicht durchgesetzt hat) • SR = Status Register enthält Resultate der letzten Operation – hier stehen die CC-Werte drin Computer-Systeme – WS 12/13 - Teil 5/CPU 20 Phasen der Arbeit • Ausführungszyklus eines Interpreters (fetch decode execute cycle): 1. 2. 3. 4. 5. 6. 7. • Holen der aktuellen Instruktion Decodieren der Instruktion Holen aller Operanden Ausführen der Instruktion Speichern der Ergebnisse Bestimmen der Adresse der nächsten Instruktion Weiter mit 1. Schritt Interpreter = Programm oder Hardware, was die Semantik von Befehlen realisiert. Semantik sind hier alle definierten Effekte (Wirkungen) von Befehlen. Effekte könnten sein: Variable auf -3 setzen, zwei Zahlen addieren und das Ergebnis schreiben, etc. Computer-Systeme – WS 12/13 - Teil 5/CPU 21 Sprung-Instruktionen • Ein Sprung wird durch Setzen des PC-Registers auf einen Wert in der Instruktion realisiert. Dies ist ein unbedingter Sprung, da er in jedem Fall durchgeführt wird. • Eine Abfrage hat bei dieser CPU immer zwei Teile: – Vergleichsoperation cmp mit Setzen der CC-Bits – Abfrage der CC-Bits mit einer bedingte Sprunginstruktion: jlt = jump (if) less than jgt = jump (if) less than jeq = jump (if) equal Computer-Systeme – WS 12/13 - Teil 5/CPU 22 Computer Maxi VI – Input/Output Befehle … out Value out Adr in Adr Das waren die Instruktionen… Computer-Systeme – WS 12/13 - Teil 5/CPU 23 Mikroprogramme Befehl: ld adr (Load von Adresse) IR:Adresse Æ RAM:Adresse Modus:= Read RAM Æ ACC Befehl: add adr (add mit Adresse) IR:Adresse Æ RAM:Adresse Modus:= Read RAM Æ Addierer ACC Æ Addierer Addierer Æ ACC Befehl: st adr (store an Adresse) IR:Adresse Æ RAM:Adresse Modus:= Write ACC Æ RAM Computer-Systeme – WS 12/13 - Teil 5/CPU 24 Das ganze sieht etwas unübersichtlich aus I Computer-Systeme – WS 12/13 - Teil 5/CPU 25 Das ganze sieht etwas unübersichtlich aus II Computer-Systeme – WS 12/13 - Teil 5/CPU 26 von-Neumann-Architektur – anders gezeichnet Rechenwerk Steuerung Leitwerk (Steuerwerk) CPU Arbeitsspeicher Daten Instruktionen RAM Ein-/Ausgabewerk I/O Bus Computer-Systeme – WS 12/13 - Teil 5/CPU 27 Grundsätzliche Rechnertypen Harvard-Architektur Arbeitsspeicher Daten Adressen Daten Rechenwerk Daten Ein-/Ausgabewerk Daten Ein-/Ausgabewerk Steuerung Arbeitsspeicher Instruktionen Adressen Befehle Leitwerk (Steuerwerk) Princeton-Architektur (von Neumann) Daten Arbeitsspeicher Daten Instruktionen Rechenwerk Steuerung Adressen Befehle Computer-Systeme – WS 12/13 - Teil 5/CPU Leitwerk (Steuerwerk) 28 Begriffe • CPU = Central Processing Unit = Rechenwerk mit Registern und Leitwerk • Bus = Universeller meist bidirektionaler Kommunikationsweg für Befehle und Daten • Arbeitsspeicher (RAM) enthält Code und Daten. • Ein-/Ausgabewerk besteht aus verschiedenen Schnittstellen zu (externen) peripheren Geräten. • Register = Schneller Speicher innerhalb der CPU als Speicher für Operanden für Operationen Computer-Systeme – WS 12/13 - Teil 5/CPU 29 Vorteile und Nachteile der Princeton-Architektur • Vorteile – Universell und flexibel – Minimalität der Hardware, optimale Nutzung • Nachteile – Bus als zentraler Kommunikationsweg ist Nadelöhr für alle Daten • Viele Rechner, insbesondere PCs haben nicht die reine vonNeumann-Architektur, sondern eine Mischung Computer-Systeme – WS 12/13 - Teil 5/CPU 30 Simulation mit dem MOPS Computer-Systeme – WS 12/13 - Teil 5/CPU 31 Bemerkungen • • • • Der RAM ist sehr klein: 64 Worte. Jede Instruktion umfasst 1 Wort (2 Byte). Die ersten 64 Worte sind für das Programm reserviert. Die Speicherzellen 64 bis 71 (symbolisch a bis h) sind die Speicherzellen für Variablen. Computer-Systeme – WS 12/13 - Teil 5/CPU 32 Die Befehle des MOPS I ld adr Lade den Wert der Speicherzelle von Adress adr in den Akkumulator ld val Lade den Wert val in den Akkumulator st adr Speichere den Wert des Akkumulators in den RAM an Adresse adr in adr Lese einen Wert und speichere ihn an Adresse adr out adr Gib den Wert an Adresse adr aus out val Gib den Wert val aus add adr Addiere zum Akkumulator den Wert an Adresse adr add val Addiere zum Akkumulator den Wert val sub adr Subtrahiere vom Akkumulator den Wert an Adresse adr sub val Subtrahiere vom Akkumulator den Wert val mul adr Multipliziere den Akkumulator mit dem Wert an Adresse adr mul val Multipliziere den Akkumulator mit dem Wert val Nach diesem Schema add arbeiten die Instruktionen sub, mul, div und mod Computer-Systeme – WS 12/13 - Teil 5/CPU 33 Die Befehle des MOPS II div adr Dividiere den Akkumulator durch den Wert an Adresse adr div val Dividiere den Akkumulator durch den Wert val mod adr Rest der Division Akkumulator durch den Wert an Adresse adr mod val Rest der Division Akkumulator durch den Wert val cmp adr Vergleiche den Akkumulator mit dem Wert an Adresse adr cmp val Vergleiche den Akkumulator mit dem Wert val jmp adr Springe an Adresse adr jlt adr Springe an Adresse adr falls vorher cmp mit less than jgt adr Springe an Adresse adr falls vorher cmp mit greater than jeq adr Springe an Adresse adr falls vorher cmp mit lequal Computer-Systeme – WS 12/13 - Teil 5/CPU 34 Das erste Programm I Computer-Systeme – WS 12/13 - Teil 5/CPU 35 Das erste Programm II Das schauen wir uns mal an…. Computer-Systeme – WS 12/13 - Teil 5/CPU 36 Ein unbekanntes Programm I Definition eines Labels (Markierung) Benutzung des Labels „fertig“ Benutzung eines Labels Definition des Labels „fertig“ Computer-Systeme – WS 12/13 - Teil 5/CPU 37 Ein unbekanntes Programm II Das schauen wir uns mal an…. Computer-Systeme – WS 12/13 - Teil 5/CPU 38 Ein unbekanntes Programm III Initialisierung Abfrage einer Bedingung Ausgabe des Ergebnisses Computer-Systeme – WS 12/13 - Teil 5/CPU 39 Ein unbekanntes Programm IV $64:= read(); $65:= read(); $66:= 0; WHILE $64>=0 DO $66:= $66+$65; $64:= $64-1; OD output $66; A:= read(); B:= read(); C:= 0; WHILE $64>=0 DO C:= C+B; A:= A-1; OD output C Das Ganze noch einmal in Freistil-Notation, damit es etwas klarer wird. Also, was macht das Programm? Computer-Systeme – WS 12/13 - Teil 5/CPU 40 Arten von Operationen I • Transfer-Operationen – Kopieren in Register – Speichern in RAM – Kopieren innerhalb des RAM oder zwischen Registern • Arithmetische Operationen – 1-, 2- oder 3-Address-Operationen – Addition, Subtraktion, Multiplikation, Division – (Vorzeichenbehaftete) Integer, Float • Logische Operationen – UND-, ODER- und NEGATION-Operation – (Vorzeichenbehaftetes) Schieben von Bits (SHIFT) Computer-Systeme – WS 12/13 - Teil 5/CPU 41 Arten von Operationen II • Kontrollflussoperationen – Unbedingte Sprünge – Bedingte Sprünge – Sprung zu Subroutinen und zurück • Sonderoperationen – RESET-Operation – HALT-Operationen Computer-Systeme – WS 12/13 - Teil 5/CPU 42 Modell der CPU und Arbeitsspeicher I 32 bit PC 32 bit DatenRegister SR PC = Program Counter SR = Status Register 32 bit AddressRegister 32-bit-CPU Computer-Systeme – WS 12/13 - Teil 5/CPU Modell der Hardware 43 Register der CPU • Typische Register sind: PC, SR, Daten- und Adressregister • PC = Program Counter enthält die Adresse der nächsten Instruktion • SR = Status Register enthält Resultate der letzten Instruktion sowie globale Zustände, wie z.B. Privilegien • Datenregister: Universell verwendbare Register für Zwischenergebnisse • Adressregister: Register für Adressen des Arbeitsspeichers, teilweise mit reservierter Bedeutung • Adresse = Nummer (Name) der Speicherzelle im RAM Computer-Systeme – WS 12/13 - Teil 5/CPU 44 Status-Register (PS) Das Status-Register (PS) hat intern 4 Bits (Condition Codes): Name Bedeutung C Carry, Überlauf Z Zero, 0 N Negativ V Arithmetischer Überlauf Computer-Systeme – WS 12/13 - Teil 5/CPU N Z V C Status-Register mit den Condition Code Bits 45 Beispiel: Motorola 68000 32 bit Datenregister D0 D1 D2 PC Systembyte Userbyte SR D3 D4 T S I I I D5 D6 Interrupt-Mask D7 Adressregister Supervisor State Trace Mode A0 A1 X N Z V C Userbyte A2 A3 Carry A4 Overflow A5 A6 User Stack Kernel Stack Computer-Systeme – WS 12/13 - Teil 5/CPU Systembyte A7 A7 Condition Codes Zero Negativ Extend 46 Beispiel: Intel x86 - Intel Architektur (Auszug) 16 bit 16 bit AX AH 16 bit AL EAX BX BH BL EBX CL ECX CX CH DX DH DL EDX SI ESI DI EDI BP EBP SP ESP CS SS DS ES FS Code-Segment Stack-Segment Datensegmente GS IP (PC) FLAGS EFLAGS Hinzu kommen noch Gleitkomma-Register (5), MMX-Register (8) und XMM-Register (8) Computer-Systeme – WS 12/13 - Teil 5/CPU 47 Modell der CPU und Arbeitsspeicher II RAM-Adressen Adresse + 1 Adresse + 0 Byte Byte 0 2 Adresse eines Wortes 4 6 8 ...... max Byte als kleinste und homogen über den ganzen Speicher gehende Adresmax-1 sierungseinheit • Byte = Kleinste adressierbare Speicherzelle • Wort = 2 nebeneinander liegende Bytes (2 Bytes) • Long = 2 nebeneinander liegende Worte (4 Bytes) Modell der Hardware Computer-Systeme – WS 12/13 - Teil 5/CPU 48 Die einzelnen Ebenen Computer-Systeme – WS 12/13 - Teil 5/CPU 49 Assembler I • Assembler = Übersetzer für Programme in einer symbolischen Maschinensprache • Die Sprache Assembler ist für jeden CPU-Typ anders und spiegelt die Eigenarten der CPU-Architektur wieder. • Zur Assembler-Sprache gehören – – – – Befehle (Instruktionen) der CPU Makros als Zusammenfassungen mehrerer Befehle Anweisungen zur Reservierung von Speicherplatz Anweisungen zur Belegung von Speicherplatz • Der Assembler übersetzt das Assembler-Programm in ein maschinen-codiertes Format, dem Objektformat. Diese Dateien heißen daher Objektdateien. Computer-Systeme – WS 12/13 - Teil 5/CPU 50 Assembler II – Fiktives Beispiel Objekt-Datei Assembler Label: LOAD R3,@56EE Register R3 = Inhalt von 56EE LOAD ADD R2,#1000 R2,R3 Register R2 = 0x1000 Register R2 = R2 + R3 SUB R2,R4 STORE R3,@56EE Register R2 = R2 - R4 Inhalt von 56EE = Register R3 Übersetzung 34A3 56EE 67A2 1000 7F23 1200 0124 2300 66A3 56EE ...... ...... Spalte zur Definition von Sprungmarken Befehle mit den Parametern Computer-Systeme – WS 12/13 - Teil 5/CPU Kommentar [Alle diese Darstellungen sind fiktiv und zeigen nur das Prinzip] 51 Assembler III • Die Assemblersprachen sind in der Regel spalten-orientiert, d.h. die Zeilen haben ein festes Format, das einzuhalten ist • Ein wichtiges Charakteristikum eines Assemblers ist, dass die Assembler-Befehle fast immer 1:1 zu Maschinenbefehlen umgesetzt werden (Ausnahme: Verwendung von Makros). • Sprungmarken = Label = Namen für Speicherstellen (symbolische Adressen, Namen) von bestimmten Instruktionen, z. B. Beginn einer Subroutine • Das Programmieren in Assembler ist sehr mühselig, da: – es viel Zeit kostet, – viele Fehler gemacht werden können. • Aber: In Assembler sind die effizientesten Programme schreibbar Computer-Systeme – WS 12/13 - Teil 5/CPU 52 Die einzelnen Ebenen Computer-Systeme – WS 12/13 - Teil 5/CPU 53 Compiler • Höhere Programmiersprachen, wie z. B. C oder Java, werden durch Compiler in Assemblersprache übersetzt. • Compiler = Übersetzer für Programme in einer höheren Programmiersprache, die sich dadurch auszeichnet, dass ein Statement ("Befehl") dieser Sprache in mehrere Befehle in der Assemblersprache übersetzt werden muss. i= j + 1; LOAD R3,@56EE ADD R3,#0001 STORE R3,@56FF R3 = Inhalt von j R3 = R3 + 1 i = R3 Hinweis: Es gibt Compiler, die direkt in die Objektsprache übersetzen Computer-Systeme – WS 12/13 - Teil 5/CPU 54 Phasen der Übersetzung im Überblick Lexikalische Analyse (Scanner) Compiler Syntaktische Analyse (Parser) Compiler Optimierung Compiler Codegenerierung Module als Object-Files Compiler Assembler Linken Linker Laden Betriebssystem-Lader ObjectFile ProzessImage Ausführung Computer-Systeme – WS 12/13 - Teil 5/CPU 55 Erläuterungen • Das Übersetzen erfolgt in mehreren Durchläufen (Pass), in denen das gesamte Programm vollständig gelesen und interpretiert wird. • Nach jedem Durchlauf wird das Programm in überarbeiteter Form neu in einer speziellen Datei angelegt; diese wird bei dem nächsten Durchlauf benutzt, so dass beginnend vom ursprünglichen Programm über mehrere Dateien am Ende das Maschinenprogramm entsteht. • Die Steuerung der Durchläufe übernimmt ein spezielles Hauptprogramm. • Bei Compilern sind 4 bis 5 Durchläufe üblich, es können auch erheblich mehr sein, z. B. PL/1 hatte bis zu 60 Durchläufe. Computer-Systeme – WS 12/13 - Teil 5/CPU 56 Durchläufe I 1. Durchlauf: Makroexpansion Es werden die Makrodefinitionen (C hat die Möglichkeit von Makros, in Programmiersprachen ohne Makros wird dieser Schritt ausgelassen) vermerkt und alle Makro-Aufrufe mit den Makrokörpern samt Parametern ersetzt. 2. Durchlauf: Syntaktische Prüfung Entspricht der entstandene Text den Regeln der Sprache? Z.B. Hat jede öffnende Klammer (rund oder geschweift) eine korrespondierende schließende? Wird jedes Statement durch ein Semikolon abgeschlossen? 3. Durchlauf: Semantische Prüfung Sind alle Variablen und Funktionen deklariert? Werden sie übereinstimmend damit benutzt? Computer-Systeme – WS 12/13 - Teil 5/CPU 57 Durchläufe II 4. Durchlauf: Optimierung (optional) Können Deklarationen weggelassen werden, da die Variablen nicht benutzt werden? Lassen sich Schleifen verkürzen? 5. Durchlauf: Erzeugung von Assembler-Code Für jedes Statement wird der entsprechende Assemblercode generiert, so dass das generierte Programm das tut, was es laut Sprachdefinition tun sollte. 6. Durchlauf: Assemblieren Der Compiler ist jetzt eigentlich fertig; es wird ein Assembler gestartet, der das generierte AssemblerProgramm in eine Objektdatei übersetzt. Computer-Systeme – WS 12/13 - Teil 5/CPU 58 Die einzelnen Ebenen Computer-Systeme – WS 12/13 - Teil 5/CPU 59 Durchläufe III • Die generierte Objektdatei ist aus folgenden Gründen nicht ausführbar: – Es fehlen aufgerufene und nicht programmierte Routinen, z. B. System.out.println() oder printf() etc. – Globale Variablen haben noch keine feste Position (Adresse), sie können an verschiedenen Stellen reserviert werden. • Der Binder (Linker, Linkage Editor) setzt das endgültige Programm unter Verwendung von Bibliotheken zusammen und positioniert die globalen Variablen. Erst dessen Ergebnis kann ausgeführt werden. Computer-Systeme – WS 12/13 - Teil 5/CPU 60 Durchläufe IV 7. Durchlauf: Binden Der Binder durchsucht Objektbibliotheken, um ein unvollständiges Programm mit den nicht selbst programmierten, aber aufgerufenen Subroutinen zu ergänzen. Am Ende ist eine maschinen-ausführbare Datei entstanden. Jetzt erst kann die Datei mit Maschinencode vom Betriebssystem in den RAM geladen und ausgeführt werden. Java wird meistens etwas anders realisiert: es wird nicht bis zum Maschinencode übersetzt, sondern in eine Zwischensprache: Java-Byte-Code. Computer-Systeme – WS 12/13 - Teil 5/CPU 61 Begriffe • Bibliothek = Archiv = Library = Datei mit mehreren benannten Informationsblöcken einschließlich eines Verzeichnisses; jeder Block kann eine eigenständige Datei aufnehmen, z. B. zip-Archive • Objektbibliothek = Bibliothek für Objektdateien • Binärprogramm = Aus vielen Objektdateien bzw. Bibliotheken zusammengesetztes ausführbares Programm Computer-Systeme – WS 12/13 - Teil 5/CPU 62 Nach dieser Anstrengung etwas Entspannung.... Computer-Systeme – WS 12/13 - Teil 5/CPU 63