6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
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