UNIVERSITÄT GESAMTHOCHSCHULE SIEGEN Fachbereich 12 Elektrotechnik und Informatik Prof. Dr. H. Wojtkowiak 18. Arbeitsblatt Vorlesung: Datenverarbeitung 8 Systemaufbau Rechnerorganisation: Anordnung von Rechnerkomponenten (Speicher, Register, EA-Geräte usw.) und die Anordnung der Verbindungswege mit der zugehörigen Steuerung 8.1 Rechnerkomponenten 1. Eingabe für Operanden und Befehle; 2. Speicher für Operanden, Befehle und Ergebnisse; 3. Operationswerk für die Ausführung von Operationen; 4. Ausgabe für Ergebnisse an den Benutzer; 5. Steuerung, d.h. Setzen und Abfragen von Bedingungen. Die klassische „von-Neumann-Struktur“ ist eine mögliche Grundanforderungen, der sogenannten „5-Komponenten-Rechner“ 1 Realisierung dieser EINGABE SPEICHER AUSGABE OPERTATIONSWERK STEUERUNG Ergebnisse Daten und Befehle Steuerinformation Bild 8.1: „von-Neumann-Struktur“ Aufgaben der Komponenten Eingabe/Ausgabe: Lesen bzw. Schreiben von Benutzerprogrammen bzw. Operationsergebnissen, zusätzlich Datenpufferung bzw. Datenwandlung. Gründe: Verbindung zwischen dem schnellen Speicher und der im Vergleich dazu langsamem Umwelt, denn: - Benutzer schreibt einige Zeichen/sec. - Band und andere Hintergrundspeicher überträgt ca. 10 5 Zeichen/sec. an Speicher 6 - Speicher kann ca. 10 und mehr Zeichen an CPU übertragen. Datenwandlung (Konvertierung) - Benutzer verwendet ASCII-Zeichen - Band und Hintergrundspeicher verwendet prüfbaren Code (für Übertragungsfehler), Band ist zeichenorientiert - Arbeitsspeicher (ASP) ist üblicherweise wortorientiert, daraus folgt die Notwendigkeit für die Zerlegung und Zusammensetzung von Worten. Datenwandlung => Operationswerk + Steuerung + Speicher 2 Organisationsfragen Probleme Adressierung Anzahl der Adressen eines Befehls - Null-Adreß-Maschinen (Stack-Maschinen) - Ein-Adreß-Maschinen - Mehr-Adreß-Maschinen Adressierungsformen - absolute - relative Adressierung - virtuelle Ablaufsteuerung- fest verdrahtet - mikroprogrammiert Ein-Ausgabe-Steuerung - Steuerung und Übertragung mittels Zentralprozessor - Einführung von Kanälen - Simultanarbeit zwischen Zentralprozessor und Ein- Ausgabe-Prozessor Steuerung der Datenübertragung zwischen Komponenten - Einführung autonomer Rechnerkomponenten, die unabhängig voneinander arbeiten können (Parallelbetrieb), Notwendigkeit der Kommunikation (Synchronisation) dieser Komponenten. - Forderung nach Unterstützung des Benutzers und Entlastung von maschinenspezifischen Detailproblemen Betriebssystemaufgaben: 3 1. Bereitstellung der Grundlagen für eine bequeme Verwaltung der technischen Einrichtungen (Hardware) des Systems und eine einfache und maschinen-unabhängige Programmierung derselben 2. Organisation des Betriebs im Rechner durch Steuerung der Benutzerprogramme (Speicherplatzverwaltung, Prozessorvergabe) Alternative Definition: „Das Betriebssystem ist ein Programmsystem, welches die Pseudo-Hardware definiert, die dem Benutzer zur Verfügung steht und diese mit Hilfe der gegebenen Hardware realisiert.“ Der Begriff "Hardware" ist nicht genau zu definieren, weil z.B. auch sogenannte "Maschinenbefehle" häufig durch Mikroprogramme realisiert werden, so daß letztlich die technischen Einrichtungen erweitert um eine oder mehrere Sprachebenen das sind, was sich dem Benutzer als "abstrakte Maschine" darstellt. 8.2 Verarbeitung und Steuerung Prozessor: Verarbeitung von Daten und Steuerung von Abläufen 4 Be fehlsadresse berechnen Befehl holen Befehl entschlüsseln a) d) Operandenadresse berechnen b) e) Operand holen Befehl ausfü hren g) c) Ergebnisadresse berechnen f) Ergebnis abspeichern Bild 8.2: Befehlsphasen 5 a) mit Operand b) ohne Operand c) mit Ergebnis d) ohne Ergebnis e) mehrere Operanden f) mehrere Ergebnisse g) mehrere Operanden und Ergebnisse Die Befehlsabarbeitung erfolgt in Phasen, die abhängig von der auszuführenden Befehlsklasse durchlaufen werden. In einer ersten Näherung kann man drei Klassen unterscheiden: • Registerbefehle • Speicherzugriffe • Programmverzweigungen Diese lassen sich in einem Prozessorzustandsdiagramm anschaulich darstellen (Bild 8.3). R es e t Be fe h l h o le n V er z w eig un g L a d en Sp eich e rn I n cre m en t Bild 8.3: Prozessorzustandsdiagramm 6 R e gis te r n a ch R e gis te r A d reß ve ra rb e itun g Spe ich er a dr eß re g is te r ( SA R ) Be fe h lsz ä h lre g is te r (B Z R ) A dr ess e Spe ich er ein h e it (S E) S ch r e ib e n / Le se n Be fe h lsre g is te r (B R ) M UX C o d eü b ers e tz un g ( B efe h lse n ts ch lü ss e lu n g ) e xte r n e A d r es se Sp r u n ga dr e sse Pro z e ss o r S ta tu s B its M ik ro pro g ra m m A d re ß fo rts ch a ltun g (Se q ue n z e r) Sta tu s B its M ik ro pro g ra m m s pe ic h er M UX P i p el i n eR e gi ste r A B C D E F A B C D E F : : : : : : Se q ue n z er -Ste u eru n g St atu s b it- A us w a h l Sp ru n g a dre ss e Sp eich e r-S teu er un g P roz e ss o r- Steu er un g O p e ra n de n - Fe ld Bild 8.4: Hardware für die Befehlsbearbeitung und –steuerung 7 8.4 Speicherverwaltung Forderungen an einen Speicher: • Information schreiben (Speicher laden) • Information lesen • Informationseinheiten adressieren (zum gezielten Speichern und Wiederauffinden von Information, Unterscheidung von inhalts- und adreßorientierten Adressierungsmechanismen) Speicherkennzeichen - Zugriffszeit (ns ... min) - Zykluszeit (ns ... min), - Zugriffsart (sequentiell, wahlfrei, zyklisch) - Kapazität (Bit .. Mbit) - Kosten usw. Speicheranwendungen im Rechner: • Mikroprogrammspeicher, meist Lese- oder Schreib-Lesespeicher geringer Zugriffszeit in Form von Halbleiterspeichern; • Pufferspeicher, für Befehle und Daten zwischen Arbeitsspeicher und Prozessor bzw. zwischen verschiedenen Speicherebenen; • Arbeitsspeicher, in Form von Halbleiterspeichern; • Hintergrundspeicher meist noch in Form magnetomotorischer Schichtspeicher oder optoelektronischer Speicher Die Hauptaufgabe bzw. kritische Aufgabe von Speichern besteht darin, Programmteile (Code) und Daten dem Prozessor mit möglichst kurzer Zugriffszeit zur Verfügung zu stellen; das ist gleichbedeutend mit dem Ziel, die aktuellen Daten in der prozessornächsten Speicherebene zu halten. 8 Speicherverwaltung: • 1. und 2. Generation: Es ist nur ein Programm im Arbeitsspeicher, damit ist die Verwaltung unproblematisch (user + resident) • Mehrprogrammbetrieb erfordert, daß mehrere Programme gleichzeitig im Speicher gehalten werden können, die vom Betriebssystem zu verwalten sind (fixed partitions, variable partitions, overlay, swapping etc.) Forderungen an eine Speicherorganisation: 1. eindeutige Adressierung 2. Schutz der Programme gegen unberechtigte Zugriffe 3. schnelle Zugriffsmöglichkeiten 4. gemeinsame Nutzungsmöglichkeit von Programmteilen durch verschiedene Programme 5. Gewährleistung günstiger Übergange zwischen aufeinanderfolgenden Programmen 8.4.1 Direkte und indirekte Adressierung Direkte (absolute) Adressierung: Programmadresse und Speicheradresse stimmen überein. Relative Adressierung: Speicheradresse gleich Addition von Programmadresse und Basisadresse Basisad resse Speicher Program m ad resse A dreßrechen werk 0 adress ierter Speich erpla tz N Bild 8.5: Schema der relativen Adressierung (Fall 1) Die Basisadresse ist Inhalt eines beliebigen Registers. Der Benutzer muß das zu verwendende Register spezifizieren und für die Programmausführung laden 9 (Fall 2) Die Basisadresse ist Inhalt des Basisadreßregisters (BAR). Das BAR wird vom Betriebssystem gesetzt und verwaltet • Vorteile: Der Speicherplatz im Arbeitsspeicher wird erst zur Laufzeit festgelegt; Programme sind verschieblich; Benutzer im Fall (2) entlastet. • Nachteil: Eine Programmverschiebung zur Laufzeit erfordert eine Umspeicherung. (1) Benutzer (Assembler, Compiler) erzeugt dann ein Programm mit absoluten Adressen: • Absprache unter den Benutzern über den verwendeten Speicherplatz erforderlich; • einmal erstellte Programme sind nicht verschieblich (2) Benutzer (Assembler, Compiler) erzeugt ein Programm mit relativen Adressen und ein Programm (i.a. als Lader oder Binder bezeichnet) wandelt dieses vor der Ausführung in ein Programm mit absoluten Adressen um, d.h.: • es sind keine Absprachen zwischen den einzelnen Benutzern erforderlich; • die Programme sind verschieblich, bevor sie den Lader passiert haben; • Bibliotheksprogramme müssen mit gebunden werden. P1 P2 P2 P4 P3 P4 P5 b e i vers ch ieb b are n P ro g ram m en e rg ib t sich nach B ee n d ig u ng vo n P 1, P 3, P 5 P6 LE ER P6 LE ER Bild 8.6: Wechselnde Arbeitsspeicherbelegung bei verschieblichen Programmen Randbedingungen der angegebenen Adressierungsformen 10 • der ausführbare Code und die Daten stehen vollständig im Arbeitsspeicher, • Programme müssen vor Bearbeitungsbeginn vollständig im Arbeitsspeicher stehen, • die Adressierung bezieht sich nur auf den Arbeitsspeicher, • Einlagerungen in dem Arbeitsspeicher werden durch den Benutzer vorgenommen, • die Belastung für das Betriebssystem ist gering, • einfache Implementierung, geringe Flexibilität für den Benutzer 8.4.2 Das virtuelle Speicherkonzept Bisher einfache Adreßrechnung, die normalerweise durch Hardware unterstützt wird. Virtuelles Speicherkonzept: homogener logischer Adreßraum, der stückweise auf den physikalischen Adreßraum abgebildet wird (durch Adreßtransformation). Segmentdescriptor Pagedescriptor Displacement Page- oder Segment Descriptoren können fehlen. Die Realisierung erfolgt üblicherweise so, daß Arbeitsspeicher in Kacheln (page frames) eingeteilt werden, die genau eine Seite aufnehmen können. Adreßumsetzung Fe ststellen o b e ine S eite im A SP is t Ja Z u ord nu n g v on S eiten u n d K ache lnu m m er N e in (Se ite nfe hler) B e stim m en d e r H inte rgru nd ad res s e au s S eiten ta b elle E in lagern d e r Se ite in d e n A S P Z u o rd n u ng v o n S eiten u nd K ache lnu m m e r 11 Die Seitentabellen stehen normalerweise im Arbeitsspeicher. Daher sind im Falle eines Seitenfehlers mehrere Speicherzugriffe erforderlich. Der zeitliche Aufwand kann durch die Verwendung von Assoziativregistern verringert werden (Bild 8.7). Für den Fall, daß eine Seite in den Arbeitsspeicher eingelagert werden muß, ist zu entscheiden, welche Seite auszulagern ist. Dafür werden sog. Ersetzungsstrategien verwendet, wie z.B. FIFO, LRU, Working-Set. virtuelle Adresse Seiten-Nr. Displacement ... 0101 korrespondierendes Speicherfeld assoziatives Speicherfeld Kachel-Nr. Displacement ... 0001 reale Adresse Vergleichsausgänge Bild 8.7: Adreßumsetzung mit Assoziativ-Speicher 12