18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Rechnergrundlagen Teil 2 - 4 - Prof. Dipl.-Ing. Komar<br />

<strong>6.</strong>3 Software<br />

Ein Programm für einen Prozessor besteht aus einer sequentiellen Folge von binären Bitmustern,<br />

den Maschinenbefehlen ( Makrobefehle ). Ein Maschinenbefehl kann z.B. im PC 1 bis 9 Byte lang sein.<br />

Bei der Abarbeitung des Programms werden diese Befehle sukzessive im Maschinencode aus dem Arbeits-<br />

speicher über den Datenbus in den Prozessor geladen.<br />

Der Operationscode (opcode) des Befehls, der die gewünschte Operation und die dazu benötigten Prozessor-<br />

Komponenten spezifiziert, wird in die Befehlsregister des Steuerwerks geladen.<br />

Ein Programm in Maschinensprache ist also eine Folge von binär codierten Befehlen (Objectcode).<br />

Diese Maschinenbefehle sind als eine Folge von Nullen und Einsen (Bitmuster) sehr unübersichtlich und<br />

werden deswegen grundsätzlich in hexadezimaler Schreibweise abgekürzt und übersichtlicher dargestellt.<br />

Für das Programmieren sind diese hexadezimalen Abkürzungen immer noch zu unhandlich und von daher<br />

erfolgt der Schritt zur Verwendung einer Assemblersprache mit mnemonischen Abkürzungen für die Befehle.<br />

Beispiel: MOV A,#13 Assemblerbefehl ( 2 Byte ) Lade Akkumulator mit Konstante 1310<br />

74 0D Maschinenbefehl hexadezimal ( Opcode ->74h, Operand-> 13 )<br />

01110100 00001101 Maschinenbefehl binär<br />

Der Begriff Assembler wird zum einen für die Sprache (Vereinbarung der mnemonischen Abkürzungen) als<br />

auch für das Übersetzungsprogramm (das aus den mnemonischen Abkürzungen die Maschinenbefehle erzeugt)<br />

verwendet. Programmierung in Assembler ist bei Mikrocomputern noch recht häufig, da der aus Assembler-<br />

programmen erzeugte Maschinencode gegenüber demjenigen aus Hochsprachen erzeugten schneller und<br />

speicher- effizienter ist.<br />

Andererseits ist für Assemblerprogrammierung ein hoher Einarbeitungsaufwand nötig und der Assemblercode<br />

ist prozessorabhängig (nicht kompatibel).<br />

Die Compiler ( Übersetzerprogramme ) für höhere Programmiersprachen erzeugen zum einen direkt den<br />

Maschinencode für den jeweiligen Prozessor oder generieren in der jeweiligen Assemblersprache einen sogn.<br />

Zwischencode, der anschließend vom Assembler übersetzt wird.<br />

Im Mittel werden für die Realisierung <strong>eines</strong> Hochsprachen-Befehls ungefähr 10 – 20 Maschinenbefehle benötigt.<br />

Bei Generierung <strong>eines</strong> Assembler-Zwischencodes, kann falls gewünscht, dieser von Hand optimiert werden.<br />

Ein Betriebssystem ordnet sich zwischen Hardware und Anwendersoftware ein und man versteht darunter<br />

nach DIN: " diejenigen Programme <strong>eines</strong> digitalen Rechensystems, die zusammen mit den Eigenschaften der<br />

Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die<br />

Abwicklung von Programmen steuern und überwachen."<br />

Infolgedessen umfasst das Betriebssystem nur die Basissoftware, die einem Benutzer der Anlage erst ermöglicht<br />

seine eigene (Anwendungs-)Software mehr oder weniger komfortabel ablaufen zu lassen.<br />

Betriebssysteme bestehen im wesentlichen aus Hilfsprogrammen für Dateiverwaltung, Editieren, Übersetzen,<br />

Linken/Laden und Testen (Debuggen). Einfachste Betriebssysteme (ohne Massenspeicher) werden als Monitor<br />

bezeichnet (im MVUS 80535 -> MONITOR-51, auch DEBUG im PC kann als solches betrachtet werden )<br />

Bekannteste Betriebssysteme für Personalcomputer und Arbeitsplatzrechner sind<br />

CP/M (8 Bit)<br />

DOS (16 Bit)<br />

OS-2 (32 Bit)<br />

UNIX (32 Bit)<br />

WINDOWS (32 Bit)<br />

LINUX (32 Bit)<br />

Betriebssysteme lassen sich grob in Singletasking- und Multitasking-Systeme unterteilen, wobei letztere die<br />

(quasi-) "gleichzeitige" Ausführung mehrerer Programme (Tasks, Prozesse) unterstützen.<br />

Beim kooperativen Multitasking unterbricht sich eine Anwendung selbst, um einer anderen vorübergehend<br />

den Vortritt zu lassen ( WINDOWS 3.x ) und beim preemtiven Multitasking wird jedem Programm ( Task )<br />

vom Scheduler eine Zeitscheibe zugeteilt (WINDOWS 98, UNIX, LINUX ).<br />

Bei Echtzeitbetriebssystemen wird für den Taskwechsel eine bestimmte Zeitdauer garantiert, damit zeit -<br />

kritische Aufgaben ausreichen schnell bearbeitet werden können.<br />

Verbreitete Echtzeitbetriebssysteme (Multitasking): RMX 86 und OS-9

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!