eBooks

Brückenkurs Informatik

Was Sie vor Vorlesungsbeginn wissen sollten

0715
2015
978-3-8385-4390-1
UTB 

Die erste Vorlesung zu einem neuen Thema ist stets ein Sprung ins kalte Wasser, denn Studierende werden darin mit neuen Begriffen, Methoden und Denkweisen konfrontiert. Der Brückenkurs vermittelt vorab Wissenswertes zur Informatik. Kreuzworträtsel und Single-Choice-Tests helfen beim Verständnis. Die Lektüre lohnt sich, denn sie ist der ideale Einstieg in das Fach und verschafft in der Vorlesung zahlreiche Aha-Erlebnisse.

utb 4390 Marcus Deininger / Thomas Kessel Brückenkurs Informatik Was Sie vor Vorlesungsbeginn wissen sollten UVK Verlagsgesellschaft mbH ∙ Konstanz mit UVK/ Lucius ∙ München Autorenangaben Prof. Dr. Marcus Deininger ist Professor für Informatik an der Hochschule für Technik Stuttgart mit dem Schwerpunkt Software Engineering. Prof. Dr. Thomas Kessel lehrt Wirtschaftsinformatik an der Dualen Hochschule Baden-Württemberg in Stuttgart. Die Deutsche Bibliothek - CIP Einheitsaufnahme Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliographie; detaillierte bibliographische Daten sind im Internet über <http: / / dnb.ddb.de> abrufbar. Das Werk ist einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. © UVK Verlagsgesellschaft mbH, Konstanz und München 2015 Lektorat: Dr. Jürgen Schechler Gestaltung: Claudia Rupp, Stuttgart Illustrationen: © dragonstock - fotolia.com Einbandgestaltung: Atelier Reichert, Stuttgart Druck und Bindung: Memminger MedienCentrum, Memmingen UVK Verlagsgesellschaft mbH Schützenstraße 24 · 78462 Konstanz Tel. 07531-9053-0 · Fax 07531-9053-98 www.uvk.de UTB-Band-Nr.: 4390 ISBN 978-3-8252-4390-6 Lösungen der Verständnisfragen finden Sie online unter www.uvk-lucius.de/ brueckenkurse. 5 www.uvk-lucius.de/ brueckenkurse Informatik Inhalt Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 Rechneraufbau und Gebiete der Informatik . . . . . 8 Eingabe, Verarbeitung, Ausgabe (EVA) . . . . . . . . . 10 Algorithmus, Komplexität, Entscheidbarkeit . . . . . 11 Daten, Dateien, Betriebssystem, Programm, Software, Hardware . . . . . . . . . . . . . . . . . . . . . . . 12 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 Rechnertypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 Interne Darstellung von Informationen . . . . . . . . . 19 Grundlagen digitaler Verarbeitung . . . . . . . . . . . . 19 Bit, Bitfolgen, Byte, Wort . . . . . . . . . . . . . . . . . . . 19 Zahlensysteme: Oktal- und Hexadezimalsystem . . 20 Daten, Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Interne Darstellung von Text, Bild und Zahlen . . . 21 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 Rechnerarchitekturen . . . . . . . . . . . . . . . . . . . . . . 32 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 34 5 Rechnerkomponenten . . . . . . . . . . . . . . . . . . . . . 37 CPU, Grafikprozessor . . . . . . . . . . . . . . . . . . . . . . 37 I/ O-Einheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Festplatte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Optische Laufwerke . . . . . . . . . . . . . . . . . . . . . . . 38 Schnittstellen: USB, HDMI . . . . . . . . . . . . . . . . . 39 Netzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6 www.uvk-lucius.de/ brueckenkurse Brückenkurs Betriebssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 41 6 Programmiersprachen . . . . . . . . . . . . . . . . . . . . . 44 Übersetzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Phasen bei der Übersetzung des Quelltextes . . . . . 47 Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . 49 7 Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Kreuzworträtsel . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . 57 7 www.uvk-lucius.de/ brueckenkurse Informatik Einführung Die Informatik durchdringt unsere tägliches Leben immer schneller und immer tiefgreifender: Computer sind in allen Lebensbereichen präsent und aus dem Alltag nicht mehr wegzudenken. Hinzu kommt, dass nahezu alle Medien inzwischen digitalisiert verfügbar sind, die Informationen sind, insbesondere durch mobile Endgeräte, praktisch überall und jederzeit zugreifbar. Die Informatik als die Wissenschaft von der automatisierten, maschinellen Verarbeitung von Informationen, ist dabei der Wegbereiter und Schrittmacher dieser digitalen Revolution und wird auch zukünftig für zahlreiche Innovationen sorgen. Dieser Text ist so aufgebaut, dass zuerst die wesentlichen Grundbegriffe eingeführt werden und dann ein kurzer Abriss der technologischen Trends der letzten Jahrzehnte gegeben wird. Anschließend wird - vergleichbar mit dem Aufbau eines Rechners - mit der Erläuterung der Hardware begonnen, wobei der Fokus auf der internen Darstellung von Informationen (in Form des Binärsystems) und den Rechnerarchitekturen und -komponenten liegt. Aufbauend auf der Hardware, werden die systemnahen Softwareebenen, Betriebssysteme und Übersetzer von Programmiersprachen, vorgestellt und erläutert. Aus systematischer Sicht handelt es sich dabei jeweils um kurze Einführung in die Informatik (Grundbegriffe, Historie), die Technische Informatik (Interne Darstellung, Rechnerarchitekturen und -komponenten) und die Praktische Informatik (Betriebssysteme und Programmiersprachen), so dass Sie als Leser einen kompakten Überblick erlangen können. 8 www.uvk-lucius.de/ brueckenkurse Brückenkurs 1 Rechneraufbau und Gebiete der Informatik Grundsätzlich ist ein Rechner wie in Abb. 1 aufgebaut. CPU ROM RAM I/ O Datenbus Adressbus Andere Rechner Ein-/ Ausgabe- Geräte Anwendungsprogramme Grafische Benutzeroberfläche Betriebssystem Treiber Systemnahe Programme Hardware-Ebene Software-Ebene Abb. 1: Aufbau eines Rechners Die wichtigsten Elemente sind dabei: Die Hardware: alle physischen Komponenten, die zu   einem Rechner gehören Die Software: alle Programme (aber auch alle weiteren   Dokumente), die zur Nutzung eines Rechners notwendig sind. Die Hardware eines Rechners kann weiter unterteilt werden in: CPU (Central Processing Unit): die eigentliche Rechenein-   heit. ROM (Read Only Memory) / RAM (Random Access Me-   mory): die Speichereinheiten des Rechners. I/ O (Input/ Output): Ein-/ Ausgabesteuerung des Rechners   Datenbus: Verteilung der Daten von und zu den Kompo-   nenten 9 www.uvk-lucius.de/ brueckenkurse Informatik Adressbus: Verteilung der Adressen (Speicherorte) der Da-   ten von und zu den Komponenten Die Software eines Rechners kann weiter unterteilt werden in: Betriebssystem: das Programm, das alle Ressourcen des   Rechners verwaltet und evtl. mehreren Prozessen oder Benutzern zuteilt. Die Treiber sind dabei spezielle Programme, die die Nut-   zung einzelner Geräte steuern. Systemnahe Programme sind Programme, die Dienste und   Funktionen für andere Programme zur Verfügung stellen, aber nicht eigenständig genutzt werden (z. B. Compiler, Datenbanken). Die grafische Benutzeroberfläche, die heutzutage auf na-   hezu allen Rechnern Standard ist, erlaubt die vereinfachte Bedienung der darunter liegenden Elemente. Die Anwendungsprogramme schließlich sind die Pro-   gramme, die für einen Anwender den eigentlichen Nutzen bringen (z. B. Browser, Textverarbeitungsprogramm). An den Rechner angeschlossen sind üblicherweise Ein-/ Ausgabegeräte („Peripherie“), z. B. Bildschirm, Tasta-   tur, Maus, Drucker Evtl. andere Rechner über Netzwerke   Entsprechend diesem Aufbau lassen sich die einzelnen Kategorien der Informatik identifizieren: Technische   Informatik: sie beschäftigt sich vorwiegend mit der (Weiter-)Entwicklung neuer Hardware, wie z. B. neuen Prozessoren, schnelleren und größeren Festplatten usw. Aber auch weitere technische Bereiche, wie z. B. die Robotik oder die Bild- und Mustererkennung, werden hier abgedeckt. 10 www.uvk-lucius.de/ brueckenkurse Brückenkurs Praktische/ Angewandte   Informatik: sie betrachtet systemnahe Software, z. B. Programmiersprachen/ Compiler, Datenbanken, Betriebssysteme, oder die direkt darauf aufbauenden Anwendungssysteme. Theoretische   Informatik: sie untersucht, z. B. welche Kategorien von Problemen prinzipiell durch Maschinen lösbar sind, wie hoch dabei die zu lösende Komplexität ist oder welche sinnvolle Formalismen es zur Darstellung bzw. Berechnung von Informationen gibt. Es ist vor allem eine Grundlagenwissenschaft. Mithilfe der Methoden und Verfahren der Informatik werden Lösungen gesucht, die einen Mehrwert in dem jeweiligen Anwendungsgebiet erzielen. In der Regel ergeben sich durch die automatisierte, maschinelle Informationsverarbeitung: Kostenvorteile   Geschwindigkeitsgewinne (gegenüber einer manuellen Lö-   sung) Komplexitätsreduktion (durch die Beherrschbarkeit großer   Datenmengen) Bekannte Anwendungsgebiete sind z. B. die Wirtschaftsinformatik oder die Medizin- und Bioinformatik Eingabe, Verarbeitung, Ausgabe (EVA) Ein weit verbreitetes Modell das zur Beschreibung von Computern dient ist das „Eingabe, Verarbeitung, Ausgabe (EVA)“- Prinzip. 11 www.uvk-lucius.de/ brueckenkurse Informatik Das EVA-Prinzip besteht darin, dass jedes informationstechnische System eine Eingabe-, eine Verarbeitungs- und eine Ausgabekomponente benötigt. Dieser Ansatz lässt sich analog auf verschiedene Probleme anwenden. Algorithmus, Komplexität, Entscheidbarkeit Ein zentraler Begriff ist der Algorithmus der einen Ablauf von endlichen Lösungsschritten beschreibt, die (immer) das zugrundeliegende Problem lösen. Erst also wenn ein Algorithmus existiert, kann ein Problem durch einen Computer gelöst werden. Der erste Schritt zu einer maschinellen Problemlösung be-   steht also darin, dass das bestehende Problem modelliert wird. Im zweiten Schritt wird dann nach einem Lösungsverfah-   ren, dem Algorithmus, gesucht. Anschließend wird dieser in Form von passender Soft- oder   Hardware implementiert. Analog zu den Algorithmen können auch die Probleme selbst in bestimmte Kategorien aufgeteilt werden, z. B. in Abhängigkeit von dem theoretischen Aufwand, der sog. Komplexität, mit dem sie gelöst werden können. Insbesondere gibt es Probleme, die prinzipiell nicht von einer Maschine gelöst werden können oder nur mit einem sehr hohen Aufwand bewältigt werden können. 12 www.uvk-lucius.de/ brueckenkurse Brückenkurs Daten, Dateien, Betriebssystem, Programm, Software, Hardware Zahlen, Zeichen oder Texte werden allgemein als Daten bezeichnet. Eine Datei ist eine Ansammlung von Daten, die auf Medien, der Festplatte oder im Hauptspeicher abgelegt werden können. Ein Programm setzt den Algorithmus in für den Computer ausführbare Anweisungen um. Als Software bezeichnet man die Gesamtmenge der für einen Computer verfügbaren Programme, Daten und zugehörige Dokumentation. Typische Beispiele für Software sind Betriebssysteme, Datenbanken, Textverarbeitungen oder Tabellenkalkulationen. Als Hardware kann man die Gesamtheit aller oder die einzelnen Komponenten eines Computersystems ansehen. Vereinfacht gesagt, umfasst die Software die immateriellen und die Hardware die materiellen Bestandteile. 13 www.uvk-lucius.de/ brueckenkurse Informatik Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Welche Elemente gehören zur Software-Ebene?  Anwendungsprogramme  Central Processing Unit  Grafische Benutzeroberfläche  Systemnahe Programme  Datenbus 2. Welche Ein- und Ausgabegeräte („Peripherie“) werden normalerweise an einen Rechner angeschlossen?  Adressbus  Bildschirm  Central Processing Unit  RAM  Drucker 3. Wofür steht das EVA-Prinzip?  Einarbeitung, Verarbeitung, Anzeige  Einordnung, Verwaltung, Ausgabe  Eingabe, Verarbeitung, Ausgabe  Eingang, Verknüpfung, Ausgang 14 www.uvk-lucius.de/ brueckenkurse Brückenkurs 4. Welche der folgenden Aussagen ist richtig?  Falls ein Problem gelöst werden kann, dann existiert auch ein Algorithmus.  Falls ein effizienter Algorithmus existiert, dann kann das entsprechende Problem maschinell gelöst werden.  Falls der Algorithmus nicht in Lösungsschritten beschrieben werden kann, ist es durch Computer berechenbar.  Falls das Problem beschrieben werden kann, kann es auch gelöst werden. 5. Die Hardware besteht aus …  allem was man anfassen kann  dem Computer und der Software  dem Rechner und den Programmen  aus den physischen Rechnerkomponenten 6. Die Software besteht aus …  Programmen  Programmen und Dokumenten  Zubehör, Programmen und Dokumenten 7. Mit welchen Begriffen befasst sich die Angewandte Informatik?  Datenbanken  Robotik  Betriebssysteme  Programmiersprachen  Bild- und Mustererkennung 15 www.uvk-lucius.de/ brueckenkurse Informatik 8. Was ist die Aufgabe des Datenbusses?  Speicherung der Daten  Ein- und Ausgabesteuerung des Rechners  Verarbeitung der Daten  Transport der Daten 9. Wo werden Dateien abgelegt?  Auf Medien  Auf der Festplatte  Im Drucker  Im Bildschirm  Im Hauptspeicher 10. Was ist ein Programm?  Eine andere Bezeichnung für den Algorithmus  Anweisungen für den Algorithmus  Algorithmen für Computer  Umsetzung des Algorithmus in Anweisungen, die vom Computer ausgeführt werden können 11. Was ist die Komplexität eines Algorithmus?  Anzahl der Programmzeilen  Indikator wie aufwändig die Problemlösung ist  Theoretischer Aufwand eines Algorithmus  Laufzeit des Programms Die Lösung finden Sie online unter www.uvk-lucius.de/ brueckenkurse 16 www.uvk-lucius.de/ brueckenkurse Brückenkurs 2 Rechnertypen   Trends : kontinuierliche Erhöhung der Verarbeitungsgeschwindigkeit und Speicherkapazität und   Integration von Sensoren, Digitalisierung von Fotos / Filmen / Musik / Sprache, Verständnis von Bildern / Sprache, durchgehende digitale Verarbeitungslinien Historie Die Geschichte der Informatik in der Neuzeit ist am An-   fang geprägt durch die Ära der Großrechner , die nur im professionellen Umfeld von spezialisierten Fachkräften eingesetzt werden konnten. Im Laufe der folgenden Jahre und Jahrzehnte wurden die   Computer zum einen immer leistungsfähiger und zum anderen immer kleiner und günstiger, was zu Abteilungsrechnern, Servern und PCs führte und sie somit einem größeren Publikum zugänglich machte. In den darauffolgenden Dekaden wurden die Rechner wei-   terhin performanter und günstiger, aber gleichzeitig auch mobiler und vernetzt, was die heutigen Generationen von Notebooks, Tablets und Smartphones hervorbrachte. Rückblickend gab es dabei in den vergangenen Jahrzehnten   einen permanenten Wechsel zwischen Aktivitäten, die die IT Infrastruktur zentralisieren (z. B. auf Server) oder dezentralisieren (z. B. auf verteilte Rechner, als Client / Server-Installationen) möchten. Heutzutage können im Wesentlichen zwei Kategorien von IT unterschieden werden: professionelle   IT: Einsatz in Unternehmen private   IT: Einsatz bei Privatpersonen / Endverbrauchern 17 www.uvk-lucius.de/ brueckenkurse Informatik Beide Bereiche beeinflussen sich dabei gegenseitig: z. B. Technologien aus dem professionellen Server-oder Speicherbereich werden zunehmend im privaten Kontext übernommen, Benutzer professioneller Anwendungen erwarten im Gegenzug zunehmend eine vergleichbare Benutzbarkeit bei Anwendungen, wie sie dies bereits aus dem privaten Umfeld kennen. Ein interessanter Indikator für die Vermischung beider Welten ist die wachsende Nutzung und Integration privater IT-Geräte im professionellen Bereich. Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Was sind die aktuellen Trends bei Computern?  Erhöhungen der Preise  Erhöhung der Verarbeitungsgeschwindigkeit  Erhöhung der Speichermenge  Erhöhung der Speicherkapazität 2. Welcher Rechnertyp wurde zeitlich gesehen zuerst eingesetzt?  PC  Großrechner  Abteilungsrechner  Server 18 www.uvk-lucius.de/ brueckenkurse Brückenkurs 3. Welche Eigenschaften zeichnen heutige Rechner, wie z. B. Tablets, Smartphones, oder Notebooks, aus?  performant  komplex  schwer  mobil  vernetzt 4. Wieviele Kategorien von IT können unterschieden werden?  es gibt nur eine IT  private und professionelle IT  private, berufliche und gewerbliche IT  private, professionelle, persönliche und praktische IT Die Lösungen finden Sie online unter www.uvk-lucius.de/ brueckenkurse 19 www.uvk-lucius.de/ brueckenkurse Informatik 3 Interne Darstellung von Informationen Grundlagen digitaler Verarbeitung Um die Informationen dieser Welt adäquat zu verarbeiten, bedarf es eines Modells , um diese auf die digitalen Speicher eines Computers abzubilden. Anschließend können die Informationen im Computer automatisch bearbeitet und später wieder ausgegeben werden ( EVA-Prinzip ). Diese Umwandlung verschiedener Informationskategorien, wie z. B. Text, Grafik oder Zahlen, wird in den folgenden Abschnitten genauer erörtert, wobei der Fokus auf den verschiedenen Zahlensystemen liegt. (Digitale) Daten werden erst zu Informationen, wenn Sie eine geeignete Semantik erhalten. Dies hat zur Konsequenz, dass dieselben digitalen Daten, je nach Semantik eine völlig verschiedene Interpretation erhalten können und so z. B. als Text, Grafik, Zahlen oder Programmcode aufgefasst werden können. Dies wird durch die folgende „Gleichung“ formuliert: Information = Daten + Semantik Bit, Bitfolgen, Byte, Wort Die kleinste Speicherzelle eines Computers kann nur die Werte 0 oder 1 enthalten. Aus diesem Grund basiert die gesamte Verarbeitungslogik darauf. Ein Bit ist somit die Darstellung dieser elementaren Speicherzelle, sie bedeutet die Unterscheidung zwischen 0 und 1, somit kann sie 2 Zustände (0 oder 1) darstellen und speichern. Eine Folge von n Bits kann somit 2 n Zustände abbilden. 20 www.uvk-lucius.de/ brueckenkurse Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort , und 4 Bytes, also 32 Bits, formen ein Doppelwort . Zahlensysteme: Oktal- und Hexadezimalsystem Wenn eine Bitfolge in 4-er-Paketen zusammengefasst wird, dann ergibt sich der Übergang zum Hexadezimalsystem , denn die 4 Bits entsprechen 16 Kombinationen und können durch entsprechende Hexziffern (0, 1, … 9, A, B, C, D, E, F) dargestellt werden. Zum Beispiel sei die folgende Bitfolge gegeben: 101010110110. Als 4er-Pakete zusammengefasst, führt dies zu: 1010 1011 0110, diese können wiederum als Hexziffern aufgefasst werden: AB6 16 (zur besseren Unterscheidung vom Zehnersystem wird üblicherweise die Basis als Index hinzugefügt). Die Besonderheit bei den Hexziffern ist, dass die Ziffern, die größer als 9 sind, d. h. 10 - 15, durch die entsprechenden fortlaufenden Buchstaben (A - F) repräsentiert werden. Analog lassen sich die Oktalzahlen darstellen - in diesem Fall wird die Bitfolge zu 3er-Paketen zusammengefasst, die dann als Oktalziffern interpretiert werden können. Im oberen Beispiel wären das die Pakete 101 010 110 110 mit der Oktalzahl 5266 8 . Daten, Datei Der Begriff Daten umfasst so unterschiedliche Kategorien wie 21 www.uvk-lucius.de/ brueckenkurse Informatik Programmcode,   Text,   Zahlen,   Bilder,   Musik oder   Videos.   Daten werden in der Regel nicht vereinzelt abgelegt, sondern als Blöcke einer gemeinsamen Kategorie, z. B. Text oder Grafik, gespeichert und verarbeitet. Diese Datenblöcke nennt man auch Dateien , sie unterscheiden sich in der Typkennung, die zum Dateinamen hinzugefügt wird, so dass das Betriebssystem automatisch erkennen kann, um welchen Datentyp es sich handelt und welches Programm damit umgehen kann. Interne Darstellung von Text, Bild und Zahlen Im Folgenden wird untersucht, wie die vier großen Datenkategorien: Text, Bild, Audio und Zahlen intern im Rechner dargestellt werden, wobei von den konkreten technischen Details abstrahiert wird. Text, Zeichen Ein Text kann als eine Abfolge von Zeichen (Buchstaben, Ziffern und Sonderzeichen) aufgefasst werden. Jedes Zeichen kann wiederum mittels eines Zeichensatzes oder Codes in eine Zahl umgewandelt und so auf eine Bitfolge abgebildet werden. Das Leerzeichen hat z. B. in Unicode den Zahlenwert 32. Unicode ist der wichtigste universelle Zeichensatz, der auch Zeichen und Symbole aus Alphabeten zahlreicher Sprachen abdeckt (im Gegensatz zum ASCII-Code). 22 www.uvk-lucius.de/ brueckenkurse Brückenkurs Ausführbare Programme (sog. Executables) Ausführbare Programme sind Zeichendateien, die - im Gegensatz zu Texten - nicht vom Menschen gelesen werden können. Sie enthalten Anweisungen in Maschinensprache oder einem Zwischencode, der von einem Rechner interpretiert werden kann. Bild / Video In einem ersten Ansatz wird jeder Punkt einer Grafik einzeln abgespeichert, wobei die zugehörige Farbinformation des Punktes in einem oder mehreren Bytes abgelegt wird. Der daraus resultierende Speicherumfang hängt also von der Auflösung, d. h. der Anzahl der Bildpunkte, multipliziert mit der Länge der Farbinformation zusammen. Dieses direkte Abbild der Grafik im Speicher wird auch als Bitmap bezeichnet. Moderne Grafikformate verwenden aber Komprimierungsverfahren, so dass mehrere Punkte, die dieselbe Farbe haben, gemeinsam abgespeichert werden, was zu einer Reduzierung des Speicherumfangs führt. Analog können bei Videos auch nur die Unterschiede von einem Bild zum anderen gespeichert werden. Audio Audio-Informationen werden in einzelne Teile („Samples“) zerlegt, die dann in mehreren Bytes abgelegt werden. Wie bei Bildern hängt der Speicherumfang vom Umfang der Samples und der Menge der Samples über die Zeit ab. Komprimierungsverfahren (wie z. B. mp3) optimieren den Speicherbedarf, indem für den Menschen nicht oder kaum hörbare Teile herausgefiltert werden. 23 www.uvk-lucius.de/ brueckenkurse Informatik Zahlen Die Verarbeitung von Zahlen, gehört neben der Verwaltung von Texten oder Bildern, zu den primären Aufgaben eines Computers. Natürliche Zahlen Die Menge der natürlichen Zahlen, d. h. der positiven ganzen Zahlen, lässt sich relativ leicht auf das binäre Format abbilden, da sich jede natürliche Zahl k in eine binäre Zahl umwandeln lässt, in dem die Koeffizienten (a n , a n - 1 , …, a 1 , a 0 ) der entsprechenden Zweierpotenzen verwendet werden, wobei die Koeffizienten nur den Wert 0 oder 1 haben dürfen: k = a n *2 n + a n - 1 *2 n - 1 + … + a 1 *2 1 + a 0 *2 0 → Binärzahl ist: a n a n - 1 … a 1 a 0 Soll zum Beispiel die 6 in eine Binärzahl umgewandelt werden, dann entspricht diese den folgenden Koeffizienten von Zweierpotenzen: 1*2 2 +1*2 1 +0*2 0 , so dass daraus die Binärzahl 110 2 resultiert. Analog kann man jede natürliche Zahl auch in Hexadezimalzahlen umwandeln, wobei es sich dann um Koeffizienten der entsprechenden Sechszehnerpotenzen handelt: k = c n *16 n + c n - 1 *16 n - 1 +…+ c 1 *16 1 + c 0 *16 0 → Hexadezimalzahl ist: c n c n-1 … c 1 c 0 Diese Umwandlung wird dabei prinzipiell nur durch die verfügbare Länge an Bits begrenzt. Dies bedeutet, dass z. B. bei einer maximalen Länge einer Bitfolge von 32, nur 2 32 Zahlen dargestellt werden können, von denen die größte 2 32 - 1 und die kleinste 0 ist. Die Umwandlung von Dezimalzahlen in Binär- und Hexadezimal- 24 www.uvk-lucius.de/ brueckenkurse Brückenkurs dezimalzahlen kann durch das Divisions- oder Subtraktionsverfahren berechnet werden. Wenn eine Zahl erst einmal als Binärzahl vorliegt, dann kann diese ganz einfach in eine Hexadezimalzahl umgewandelt werden, in dem die Binärziffern zu 4er-Paketen zusammengefasst werden. Umgekehrt können Hexadezimalzahlen einfach in Binärzahlen umgewandelt werden, indem jede Ziffer der Hexadezimalzahl direkt durch die entsprechende Binärzahl ersetzt wird. Die Umwandlung von Binär- und Hexadezimalzahlen in Dezimalzahlen ist dadurch möglich, dass die Koeffizienten mit den entsprechenden Zweier- oder Sechszehnerpotenzen multipliziert und dann aufsummiert werden müssen. Analog lassen sich die Oktalzahlen auf der Basis 8 erstellen. Negative Zahlen Die Addition und Multiplikation von Binärzahlen erfolgt analog zu den Operationen auf Dezimalzahlen und wird auch so im Prozessor umgesetzt. Grundsätzlich ist eine Übertragung der Subtraktion ebenfalls möglich, allerdings würde dies zusätzliche Hardware verlangen. Aus diesem Grund wurden negative Zahlen eingeführt. Negative Zahlen haben den Vorteil, dass sie mit der bestehenden Additionslogik erzeugt und verwendet werden können. Negative Zahlen werden im Rechner üblicherweise als Zweierkomplement dargestellt: Das Zweierkomplement muss mit einer festen Stellenzahl berechnet werden. Nicht benötigte Stellen werden dabei von links mit 0 aufgefüllt. Das linke Bit wird dabei als Vorzeichen 25 www.uvk-lucius.de/ brueckenkurse Informatik interpretiert (0 für +, 1 für -). Das Zweierkomplement berechnet sich wie folgt: 1. Berechnung des Komplements der zugrundeliegenden Binärzahl, indem man 0 bzw. 1 durch sein Komplement, also 1 bzw. 0, ersetzt. 2. Anschließend addiert man 1 - ein evtl. Überlauf wird dabei ignoriert. Beispiel : Berechnung des Zweierkomplements von 6 (0110 2 ) bei 4 Bits 1. Das Komplement von 0110 2 ist 1001 2 2. Addition von 1 Das Ergebnis ist 1010 2, die Kontrollrechnung, die Addition von -6 (1010 2, ) und 6 (0110 2 ) ergibt 0, sofern wenn man das resultierende Overflow-Bit ignoriert. Gleitkommazahlen Rationale oder reelle Zahlen werden durch Gleitkommazahlen dargestellt, wobei hier ein prinzipielles Problem der Rechenungenauigkeit vorliegt, sowohl was die Umwandlung der Zahl in das interne Format des Computers als auch was die weitere Verarbeitung, in den folgenden Rechenschritten, betrifft. Abb. 2 zeigt das Beispiel einer 32-Bit Gleitkommazahl. 1. 2. 9. 10. 32. Vorzeichen Exponent (+127) Mantisse „hidden bit = 1“ … 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 Abb. 2: Format einer Gleitkommazahl Gleitkommazahlen haben die Eigenschaft, dass sie vor der Codierung „normalisiert“ werden müssen, d. h. sie müssen immer auf die Form 1,… * 2 Exponent gebracht werden. Die Gleitkommazahl in Abb. 2 kann folgendermaßen interpretiert werden: 26 www.uvk-lucius.de/ brueckenkurse Brückenkurs Bit 1: Vorzeichen; 0 für plus, 1 für minus (Achtung es gibt   hier kein Zweierkomplement) Bit 2 - 9: Exponent als Binärzahl. Der Exponent ist vor der   Umwandlung mit 127 addiert worden (dem sog. „Bias“) - dies hat den Vorteil, dass der Exponent direkt mit anderen verglichen werden kann, was bei einer Gleitkommazahl oft notwendig ist. Zwischen Bit 9 und 10 ist (gedanklich) das „hidden bit“ -   dies ist der Wert „1,“. Da der Wert immer 1 ist, kann er aus Speichergründen weggelassen werden. Bit 10 - 32: Die Nachkommastellen der Zahl (die „Man-   tisse“) In dem Beispiel oben wäre also die Zahl: +1,0010 0100 0000 0000 0000 000 * 2 4 dargestellt. Wobei sich die 4 des Exponenten folgendermaßen errechnet: 1000 0011 2 = 131 10 . 131 - Bias 127 = 4. Die arithmetischen Operationen auf Gleitkommazahlen sind deutlich komplexer und werden deshalb in der Regel von spezialisierten Prozessorkomponenten übernommen. Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Welche der folgenden Gleichungen ist korrekt?  Daten = Semantik + Information  Semantik = Daten + Information  Information = Daten + Semantik  Information = Daten 27 www.uvk-lucius.de/ brueckenkurse Informatik 2. Was ist ein Bit?  Darstellung einer elementaren Speicherzelle  Darstellung mehrerer Speicherzellen  Darstellung von 0 oder 1  Darstellung von 1 oder 2  Darstellung vieler Zustände 3. Wie wird eine Folge von 8 Bits genannt?  Byte  Wort  DoppelWort  DoppelByte 4. Wieviele Zustände kann ein Byte darstellen?  8  16  64  128  256 5. Was ist das Hexadezimalsystem?  Ein Zahlensystem auf der Basis 16.  Ein Zahlensystem dessen Ziffern aus 0, 1, … 9, A, … F bestehen.  Alle Ziffern bestehen aus Bits.  Beliebige Kombination von Zahlen und Buchstaben. 6. Wieviele Bits benötigt die binäre Darstellung der Oktalzahl 6?  3  4  8  16 28 www.uvk-lucius.de/ brueckenkurse Brückenkurs 7. Wie werden Dateien vom Betriebssystem richtig erkannt?  anhand des Inhalts  anhand der Typkennung  anhand des Dateinamens  gar nicht, alle Dateien werden gleich behandelt  dank des Benutzers 8. Wie wird ein Zeichen auf eine Zahl abgebildet?  gar nicht  mit Hilfe eines Codes  mit Hilfe eines Satzzeichens  mit Hilfe eines Zeichensatzes 9. Woraus bestehen Dateien ausführbarer Programme?  aus natürlichen Zahlen  aus beliebigen Symbolen  aus Maschinensprache  aus Text 10. Wie wird ein Bild als Datei dargestellt?  als Folge von Text  als Folge von Zahlen und Zeichen  als Folge von Bits, die Punkte darstellen  als Abbild der Grafik 11. Von welchen Faktoren hängt der Umfang unkomprimierter Audio-Informationen ab?  von der Musik  vom Umfang eines Samples  von der Anzahl der Samples über die Zeit  von der Qualität 29 www.uvk-lucius.de/ brueckenkurse Informatik 12. Wie werden ganze negative Zahlen binär dargestellt?  mit einer vorangestellten 0  mit einer vorangestellten 1  mit einem vorangestellten Minus  über das Zweierkomplement  über das Komplement von Binärzahlen 13. Was stellen Gleitkommazahlen dar?  alle Zahlen  ganze Zahlen  reale oder rationale Zahlen  komplexe Zahlen 14. Was wird Mantisse genannt?  Vorzeichen  Exponent  Nachkommastellen  Gleitkommazahl 15. Welche Rechnerkomponenten berechnen die arithmetischen Operationen mit Gleitkommazahlen?  Central Processing Unit  spezialisierte Prozessorkomponenten  Ein- und Ausgabeeinheiten  I/ O-Komponenten 30 www.uvk-lucius.de/ brueckenkurse Brückenkurs 16. Welche der folgenden Begriffe werden als Daten bezeichnet?  Bilder  Musik  Text  Hardware  Zahlen 17. Wodurch können dieselben Daten unterschiedlich interpretiert werden und so zu Informationen werden?  Semantik  Wert der Daten  Datentyp 18. Wozu dienen Binär-, Oktal- und Hexadezimalzahlen?  Modelle der theoretischen Informatik  Verarbeitung und Darstellung von Zahlen im Computer  Erweiterung der Theorie über Zahlen  Keine praktische Anwendung 19. Wovon hängt die Auflösung eines Bildes ab?  Anzahl der Bildpunkte  Anzahl der Bilder  Anzahl der Bildpunkte und Umfang der Farbinformation  Bildschirm 31 www.uvk-lucius.de/ brueckenkurse Informatik 20. Welches prinzipielle Problem besteht bei Gleitkommazahlen?  Komplexität  Umfang der Zahlen  Anzahl der Zahlen  Unendlichkeit  Rechenungenauigkeit 21. In welche andere Zahlen kann eine Dezimalzahl umgewandelt werden?  Binärzahl  Oktalzahl  Hexadezimalzahl  Gleitkommazahl 22. Ein Text ist …  eine Folge von Zeichen  eine Folge von Buchstaben  eine Folge von Buchstaben, Ziffern und Sonderzeichen  eine Folge von Ziffern und Sonderzeichen Die Lösungen finden Sie online unter www.uvk-lucius.de/ brueckenkurse 32 www.uvk-lucius.de/ brueckenkurse Brückenkurs 4 Rechnerarchitekturen Die meisten Computer basieren auf der von-Neumann- Architektur , die sich dadurch auszeichnet, dass sowohl die Programme als auch die zugehörigen Daten im gemeinsamen Hauptspeicher (Read-Only Memory, ROM; Random Access Memory, RAM) liegen. Der Zugriff des Prozessors auf den Hauptspeicher erfolgt über einen Adress- und Datenbus. Bei der Abarbeitung eines Programms müssen sowohl der Programmcode als auch die damit verbundenen Daten aus dem Hauptspeicher gelesen werden, was zu häufigen Zugriffen führt. Aufgrund der relativ hohen Verarbeitungsgeschwindigkeit des Prozessors und vergleichsweise geringen Lese-/ Schreibgeschwindigkeit des Hauptspeichers ergibt sich die Problematik, dass der Prozessor vom Hauptspeicher ausgebremst wird, was als von-Neumann-Flaschenhals bezeichnet wird und den Schwachpunkt der von-Neumann-Architektur darstellt. CPU ROM RAM I/ O Datenbus Adressbus Hauptspeicher Abb. 3: Prinzipieller Aufbau einer von-Neumann-Architektur In der Abbildung sieht man die CPU , die mit dem Hauptspeicher verbunden ist, der aber in zwei Bereiche unterteilt ist: 33 www.uvk-lucius.de/ brueckenkurse Informatik Read-Only Memory (ROM): Speicher, der nur gelesen wer-   den kann und in dem z. B. geschützte Bereiche des Betriebssystems liegen Random Access Memory (RAM): Speicher, der sowohl be-   schrieben als auch gelesen werden kann Ein Prozessor besteht in der Regel aus zwei Teilen: dem Steuerwerk und   dem Rechenwerk.   Das Steuerwerk weist mehrere Komponenten für die Ausführung des Programmcodes und der daraus resultierenden Verarbeitung einzelner Befehle auf: den   Programmzähler , der auf den nächsten auszuführenden Befehl zeigt das   Speicheradressregister , das die Adresse der nächsten zu ladenden Speicherzelle enthält das   Instruktionsregister umfasst den aktuellen Befehl, der   Decodierer ermittelt aus dem Befehl die Anweisungen und die ggf. benötigten Operanden Das Rechenwerk umfasst die einzelnen Bestandteile für die Ausführung arithmetischer oder logischer Operationen: den   Akkumulator , der die Zwischenergebnisse enthält, die   Register , die Operanden laden oder speichern, die   arithmetisch-logische Einheit , die die Berechnungen durchführt und ein   Statusregister , das die Ergebnisse der aktuellen Operation anzeigt, z. B. beim Überlauf Beide Komponenten werden in dem nachfolgenden Befehlsausführungszyklus (Fetch-Execute-Zyklus) beschrieben, der erklärt wie ein Befehl geladen und anschließend ausgeführt wird. 34 www.uvk-lucius.de/ brueckenkurse Brückenkurs   Fetch-Phase: Laden des Programzählers in das Speicheradressregister   Zugriff auf die Speicherzelle, die durch das Speicher-   adressregister adressiert wird, Laden der Speicherzelle ins das Instruktionsregister   abhängig vom Befehl(styp) das Laden weiterer Operan-   den Aktualisierung des Programmzählers (in der Regel wird   er um 1 erhöht)   Execute-Phase: Ausführung des Befehls   bei arithmetischen Berechnungen:   Laden / Speichern von Daten oder Operanden aus / im   Register Durchführung der Operation in der arithmetisch-   logischen Einheit Ergebnis ist im Akkumulator   evtl. Anzeige des Ergebnisse im Statusregister durch   Flags Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Charakteristik der von-Neumann-Architektur?  Ablage von Daten und Programmen in demselben Speicher  Speichern von Daten  Speichern von Programmen  Ablage von Daten 35 www.uvk-lucius.de/ brueckenkurse Informatik 2. Wie greift der Prozessor auf den Hauptspeicher zu?  über Bussysteme  über ein Transportsystem  über den Adressbus und den Datenbus 3. Was ist der Engpass der von-Neumann-Architektur?  Geschwindigkeitsunterschied der Speicher RAM und ROM  Geschwindigkeitsunterschied von CPU und Speicher  die CPU  die Anbindung der I/ O-Geräte 4. Welche Komponenten gehören zum Steuerwerk?  Akkumulator  Programmzähler  Register  Decodierer 5. Welche Schritte gehören zur Fetch-Phase?  Laden des Programmzählers in das Speicheradressregister  Ausführung des Befehls  Aktualisierung des Programmzählers  Laden der Speicherzelle in das Instruktionsregister 6. Welche Arten von Hauptspeicher gibt es?  Random Access Memory (RAM)  Really Awesome Memory (RAM)  Read Original Memory (ROM)  Read-Only Memory (ROM)  Memory 36 www.uvk-lucius.de/ brueckenkurse Brückenkurs 7. Welche Komponenten gehören zum Rechnerwerk?  Akkumulator  Speicheradressregister  Arithmetisch-logische Einheit  Statusregister  Decodierer 8. Welche einzelnen Phasen umfasst der Befehlsausführungszyklus?  Fetch-Phase  Execute-Phase  Store-Phase  Compute-Phase 9. In welcher Reihenfolge werden die Aktionen der Fetch- Phase ausgeführt?  Laden der Speicherzelle in das Instruktionsregister  Abhängig vom Befehl(styp) das Laden weiterer Operanden  Aktualisierung des Programmszählers  Zugriff auf die Speicherzelle, die durch das Speicheradressregister adressiert wird  Laden des Programmzählers in das Speicheradressregister Die Lösungen finden Sie online unter www.uvk-lucius.de/ brueckenkurse 37 www.uvk-lucius.de/ brueckenkurse Informatik 5 Rechnerkomponenten Während es im vorhergehenden Abschnitt um den prinzipiellen Aufbau von Rechnersystemen und den schematischen Ablauf bei der Befehlsverarbeitung ging, stehen in diesem Abschnitt die einzelnen Komponenten eines Computers im Vordergrund. CPU, Grafikprozessor Der zentrale Baustein eines Computers ist die CPU (Central Processing Unit), die die Verarbeitung der Befehle übernimmt und einen entscheidenden Einfluss auf die Performance des Gesamtsystems hat. Der Grafikprozessor übernimmt in der Regel die aufwändigen Berechnungen und das Rendering von Bildern, z. B. bei Computerspielen oder 3D-Darstellungen. Ein Ansatz zur Erhöhung der Prozessorleistung besteht in der Einführung mehrerer Prozessorkerne und in der Parallelisierung der Abläufe in den einzelnen Prozessorkernen (Mehrkernarchitektur). I/ O-Einheiten Der Prozessor ist über den Datenbus mit weiteren I/ O- Einheiten verbunden, z. B. mit der Festplatte, dem Netzwerk oder weiteren Ein-/ Ausgabegeräten, wie der Tastatur oder dem Monitor. Auch hier ergibt sich eine ähnliche Problematik wie beim von- Neumann-Flaschenhals: die einzelnen Ein-/ Ausgabegeräte sind 38 www.uvk-lucius.de/ brueckenkurse Brückenkurs normalerweise einige Größenordnungen langsamer als der Prozessor und übertragen deshalb die konsolidierten Datenblöcke nur während bestimmter Zeitfenster an die CPU. Festplatte Die Festplatte hat normalerweise eine erheblich größere Kapazität als der Hauptspeicher, dafür ist sie aber auch deutlich langsamer. Die Festplatte enthält - analog zum Hauptspeicher - sowohl Programmcode als auch Daten, aber im Unterschied zum Hauptspeicher sind sie dort permanent gespeichert und gehen auch nach dem Ausschalten nicht verloren. Oft wird sie auch vom Betriebssystem verwendet, um Programmcode oder Daten vom Hauptspeicher ausbzw. einzulagern. Durch die aufkommende SSD (Solid State Drive)- Technologie ist mit weiteren erheblichen Geschwindigkeitsverbesserungen zu rechnen. Optische Laufwerke Im Vergleich zu Festplatten sind die Kapazitäten und die Zugriffsgeschwindigkeiten optischer Laufwerke (nochmals) deutlich geringer, aber sie erlauben es, die Medien (Discs) auszutauschen und die Inhalte auf den externen Medien dauerhaft zu archivieren. Wichtig ist hierbei auch die Lebensdauer der einzelnen Medien. Außerdem werden bestimmte Softwarepakete vorwiegend auf Medien für optische Laufwerke ausgeliefert. 39 www.uvk-lucius.de/ brueckenkurse Informatik Schnittstellen: USB, HDMI Eine der wichtigsten Schnittstellen ist der Universal Serial Bus (USB) , der den großen Vorteil hat, dass er ganz unterschiedliche Geräte (z. B. Speicher, Festplatten Drucker) durch einfaches Einstecken des Verbindungskabels einbinden kann (sog. plug and play), was die Integration für alle Benutzer sehr einfach gestaltet. Neben USB ist HDMI , das sowohl Audioals auch Videosignale überträgt, mittlerweile eine unverzichtbare Technologie geworden. Netzwerk Die meisten Rechner unterstützen sowohl eine kabelgebundene ( LAN = Local Area Network) als auch eine kabellose ( WLAN , Wireless LAN) Netzwerkverbindung. Hinzu kommt, dass viele Rechner mittlerweile für mobilen Datenfunk ausgerüstet sind, so dass eine permanente Internetverbindung besteht. Betriebssystem Betriebssysteme ermöglichen erst die Arbeit mit Computern und sind deshalb zum Verständnis der Informatik unabdingbar. Sie gehören zu den wichtigsten systemnahen Softwareprodukten und befähigen deshalb den Benutzer, die einzelnen Hardware- und Softwarekomponenten zu nutzen. Das vorrangige Ziel eines Betriebssystems ist es, alle zum Rechner gehörenden Ressourcen, z. B. die CPU, die Hauptspeicher- und Festplattenkapazität, zu verwalten und die Ausführung der Anwendungen so abzustimmen, dass diese möglichst schnell und zuverlässig ablaufen. 40 www.uvk-lucius.de/ brueckenkurse Brückenkurs Die Herausforderung ergibt sich aus der Tatsache, dass in der Regel gleichzeitig mehrere Anwendungen parallel ablaufen ( Multitasking ) und ggf. auch mehrere Benutzer bedient werden müssen ( Mehrbenutzersystem ). Multitasking findet normalerweise schon bei Privatnutzern   statt, die gleichzeitig einen Text eintippen, ihre Emails bearbeiten und Musik hören. Ein Mehrbenutzersystem ist insbesondere für Betriebssys-   teme von Servern wichtig, auf die gleichzeitig Hunderte oder Tausende Benutzer zugreifen. Moderne Betriebssysteme verfügen über eine grafische Benutzerschnittstelle, so dass die Bedienung leicht erlernbar ist, daneben gibt es aber in der Regel auch eine Kommandozeile, um „direkt“ auf das System zugreifen zu können. Typische, relevante Aufgaben eines Betriebssystems sind: die   Prozessverwaltung , d. h. die Zuweisung von CPU- Kapazitäten zu einzelnen Prozessen die   Hauptspeicherverwaltung , d. h. die Zuordnung von Hauptspeicher zu Prozessen Für jede Anwendung gibt es einen oder mehrere Prozesse, denen sowohl CPU-Zeit als auch Hauptspeicherbereiche zugeteilt werden müssen. Dies ist insbesondere wichtig, da die Anwendungen jeweils scheinbar parallel laufen müssen (Multitasking), es aber weniger CPUs als Anwendungen oder Prozesse gibt. Dies führt dann dazu, dass jeder Prozess immer nur für ein kurzes Zeitfenster von einer CPU ausgeführt wird, bevor dann die CPU zum nächsten Prozess wechselt. Aufgrund der großen Geschwindigkeit bzw. hohen Frequenz der CPUs ergibt sich hier aber der Eindruck einer Parallelverarbeitung. Die Tatsache, dass die meisten Anwendungen deutlich mehr Platz im Hauptspeicher be- 41 www.uvk-lucius.de/ brueckenkurse Informatik nötigen als dort vorhanden ist, führt dazu, dass nur die wichtigsten, aktuell häufig aufgerufenen Programmteile im Hauptspeicher vorgehalten werden und andere Code-Teile nur bei Bedarf nachgeladen werden. Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Weshalb beschleunigen mehrere Prozessorkerne die Verarbeitung?  Mögliche Parallelisierung  Höhere Ausfallsicherheit 2. I/ O-Einheiten sind verbunden mit?  Festplatte  Netzwerk  Monitor 3. Optische Laufwerke  haben geringere Speicherkapazitäten als Festplatten  enthalten Medien die ausgetauscht werden können  haben höhere Zugriffsgeschwindigkeiten als Festplatten 4. Was ist Multitasking?  Mehrere Benutzer können gleichzeitig arbeiten  Mehrere Aufgaben können gleichzeitig eingegeben werden  Mehrere Aufgaben können gleichzeitig bearbeitet werden 42 www.uvk-lucius.de/ brueckenkurse Brückenkurs 5. Ein Grafikprozessor ist ein zusätzlicher Prozessor, um  die CPU zu entlasten  Grafiken zu berechnen  Grafiken aus dem aus dem Speicher zu laden oder zu speichern 6. Welche typischen Netzwerke werden von den meisten Rechner unterstützt?  Super Area network (SAN)  Local Area Network (LAN)  Wired Local Area Network (WLAN)  Wireless Local Area Network (WLAN) 7. Welche Festplattentechnologie wird die Zugriffsgeschwindigkeiten beschleunigen?  Super Speed Drive (SSD)  Speed Disks (SD)  Solid State Drive (SSD) 8. Was sind typische Aufgaben eines Betriebssystems?  Aufgabenverwaltung  Prozessverwaltung  Hauptspeicherverwaltung  Datenverwaltung 9. Was sind die Ziele eines Betriebssystems?  Interaktion mit den Benutzern  Verwaltung  Abstimmung der Ausführung der Anwendungen  Verwaltung aller Ressourcen des Rechners 43 www.uvk-lucius.de/ brueckenkurse Informatik 10. Über welche Komponenten verfügt ein Betriebssystem um mit Benutzern zu interagieren?  Grafische Benutzeroberfläche  Tastatur  Bildschirm  Kommandozeile Die Lösungen finden Sie online unter www.uvk-lucius.de/ brueckenkurse 44 www.uvk-lucius.de/ brueckenkurse Brückenkurs 6 Programmiersprachen Die Ingenieurs-Disziplin für die systematische und methodische Entwicklung von Software nennt sich Software Engineering . Neben der Frage nach dem geeigneten Vorgehensmodell steht auch die Frage nach einer passenden Programmiersprache im Vordergrund, weil sie das primäre Werkzeug darstellt, um einen Algorithmus zu implementieren. Das Ziel ist dabei zum einen den Softwareentwickler bei der Umsetzung im-   mer komplexer werdender Programme zu unterstützen , indem ausdrucksstarke, performante und zuverlässige Programmiersprachen angeboten werden und zum anderen indem die Programmiersprachen leicht(er)   erlernbar und bedienbar sind. In den vergangenen Jahrzehnten wurde eine Vielzahl von Programmiersprachen entwickelt, denen unterschiedliche Konzepte oder Entwurfsprinzipien zugrunde liegen. Prozedurale Programmiersprachen , wie z. B. C, Cobol, Pascal oder Fortran, wurden durch die objektorientierten Programmiersprachen, wie C++, C# oder Java abgelöst. Daneben existieren aber weiterhin Vertreter funktionaler oder logischer Programmiersprachen, wie Haskell oder Prolog, ebenso wie für bestimmte Anwendungsbereiche oder Technologien spezialisierte Programmiersprachen, wie ABAP, Javascript oder PHP. Die aktuelle Dominanz der objektorientierten Programmiersprachen beruht vor allem auf den Prinzipien der Vererbung und des Polymorphismus, die die Wiederverwen- 45 www.uvk-lucius.de/ brueckenkurse Informatik dung großer Klassenbibliotheken, eine erhöhte Modularität der Anwendungen und damit einhergehend eine Reduzierung der Entwicklungskosten und -zeiten erlauben. Neben diesen Faktoren sind aber auch die Unterstützung durch Entwicklungsumgebungen, wie z. B. Eclipse, und die leichte Bedienbarkeit entscheidend. Jede Programmiersprache lässt sich - trotz hoher Ausdrucksstärke - prinzipiell auf wenige grundlegende Sprachkonstrukte reduzieren, dazu zählen neben den   Kontrollstrukturen Sequenz, Verzweigung und Iteration, auch die   grundlegenden, elementaren Anweisungen wie, z. B. der Aufruf einer Methode, die Zuweisung eines Wertes oder eine Berechnung. Übersetzer Einer der wichtigsten Komponenten einer Programmiersprache ist der Übersetzer, der den Quelltext in den ablauffähigen Maschinencode des Zielrechners überführt. Dieser Maschinencode stellt die eigentliche Anwendung dar. Für einen solchen Übersetzer gibt es zwei Ausprägungen: den Compiler und den Interpreter, welche sich voneinander unterscheiden. Compiler Der Compiler übersetzt den Quelltext nur einmal und generiert daraus einen Code, der immer wieder aufgerufen wird, wenn die Anwendung gestartet wird. 46 www.uvk-lucius.de/ brueckenkurse Brückenkurs Der Vorteil ist hierbei, dass die aufwändige Übersetzung nur einmal erfolgt, der erzeugte Code optimiert werden kann und an sich lauffähig ist, nachteilig ist dass, normalerweise keine Entscheidungen mehr zur Laufzeit getroffen werden können. C und C++ sind Beispiele für Programmiersprachen, die auf einem Compiler basieren. (1) Übersetzung des Programms in den ablauffähigen Code: Programm »» Compiler »» Code (2) Ausführung des Codes, der die Benutzereingaben entgegen nimmt bzw. Ausgaben anzeigt: Eingabe »» Code »» Ausgabe Interpreter Ein Interpreter nimmt die Benutzereingaben und den Quelltext entgegen und übersetzt bei jedem Durchlauf den Quelltext in Code und führt diesen dann aus. Anders als beim Compiler wird also hier - zur Laufzeit - bei jeder Ausführung der Code immer wieder (neu) generiert. Der Vorteil ist, dass Entscheidungen zur Laufzeit getroffen werden können, es flexibel ist und es sich somit sehr gut für die Fehlersuche eignet, der wesentliche Nachteil ist offensichtlich der zu erwartende Geschwindigkeitsbzw. Leistungsverlust (im Vergleich zum Compiler). Beispiele für interpretierte Programmiersprachen sind Python und Lisp. (3) Programm, Eingabe »» Interpreter »» Ausgabe Heutzutage verwenden moderne Programmiersprachen , wie z. B. Java, durchaus eine Kombination von Compilern und In- 47 www.uvk-lucius.de/ brueckenkurse Informatik terpretern. Bei Java wird für die Übersetzung des Quelltextes in ein plattformunabhängiges Format (Bytecode) ein Compiler eingesetzt und für die Ausführung dieses Codes auf der Zielmaschine kann dann ein Interpreter verwendet werden, der z. B. den Code für die Zielplattform ggf. noch optimiert. Phasen bei der Übersetzung des Quelltextes Bei der Übersetzung des Quelltextes in den Code können prinzipiell die folgenden Phasen auftreten, die im Folgenden genauer erörtert werden (1) Lexikalische Analyse (2) Syntaktische Analyse (3) Semantische Analyse (4) Zwischencodegenerierung (5) Optimierung (6) Zielcodegenerierung Bei der lexikalischen Analyse , die durch einen Scanner ausgeführt wird, wird der Quelltext als eine Zeichenfolge von der Datei eingelesen. Reservierte Wörter bzw. Zeichen, wie z. B. int, {, }, / , +, *, werden erkannt und in Marken (engl. Tokens) umgewandelt, die die Basis für die nachfolgende syntaktische Analyse bilden. 48 www.uvk-lucius.de/ brueckenkurse Brückenkurs Aufbauend auf der zugrundeliegenden Sprach-Grammatik, überprüft die syntaktische Analyse mittels Parsebäumen und anhand der Marken, die in der vorhergehenden Phase identifiziert wurden, ob die eingegebenen Anweisungen syntaktisch richtig sind. Für jede sich öffnende Klammer, {, in Java muss es zum Beispiel eine entsprechende, schließende Klammer, }, geben. Die semantische Analyse untersucht, ob die syntaktisch korrekten Anweisungen auch sinnvoll und erlaubt sind. Dies erfolgt anhand von Regeln über die logischen Zusammenhänge und Bedeutungen von Sprachkonstrukten: z. B. ob ein Datentyp nur einmal definiert ist oder dass die Variable vor ihrem Gebrauch deklariert wird. Eine Methode kann zum Beispiel syntaktisch richtig definiert sein, aber bei der semantischen Überprüfung könnte sich herausstellen, dass der deklarierte Rückgabewert im Methodenrumpf nicht vorhanden ist. Die Generierung von Zwischencode ermöglicht zum einen eine höhere Abstraktion und Entkopplung von der möglichen Zielplattform oder -sprache und zum anderen stellt sie einen notwendigen Schritt für die nachfolgende Phase dar. Es ist aber zu beachten, dass bei der Umwandlung in den Zwischencode die zugrundeliegende Semantik und auch die Ausdrucksstärke bewahrt bleiben. Die Optimierung von Code ist eine gängige und notwendige Praxis. Es ist insbesondere sinnvoll, Codeteile die sehr häufig aufgerufen werden, z. B. weil sie in einem Schleifenrumpf liegen, oder zeitlich aufwändig sind, z. B. die Erzeugung von Objekten oder die Erstellung von Datenbankverbindungen, in effizientere Konstrukte oder Anweisungen zu überführen, trotz des Aufwands für die Analyse des Laufzeitverhaltens und der Berechnung der Code-Verbesserungen. 49 www.uvk-lucius.de/ brueckenkurse Informatik Die Zielcodegenerierung übersetzt den (optimierten) Zwischencode in den entsprechenden Maschinencode unter Berücksichtigung des vorhandenen Betriebssystems, z. B. Linux, und der zugehörigen Klassenbibliotheken. Verständnisfragen Haben Sie alles verstanden? Mit den folgenden Fragen können Sie das Gelernte schnell prüfen: 1. Was sind die Ziele einer Programmiersprache?  Softwareentwickler bei der Umsetzung von Programmen zu unterstützen  möglichst komplex zu sein  einfach erlernbar und bedienbar zu sein  möglichst viele Funktionen abzubieten 2. Welche der folgenden Programmiersprachen ist eine objektorientierte Programmiersprache?  C  Java  C#  Pascal 3. Was sind typische Eigenschaften einer objektorientierten Programmiersprache?  Prozeduren  Funktionen  Vererbung  Polymorphismus 50 www.uvk-lucius.de/ brueckenkurse Brückenkurs 4. Welche Phasen werden bei der Übersetzung des Quelltextes benötigt?  Lexikalische Analyse  Semantische Analyse  Intelligente Analyse  Optimierung  Zielcodegenerierung 5. Wie häufig übersetzt der Compiler den Quelltext?  einmal  mehrfach, bei jedem Ablauf der Anwendung  abhängig vom Benutzer 6. Was ist die Aufgabe der lexikalischen Analyse?  Einlesen des Textes  Suche nach reservierten Wörtern bzw. Zeichen  Verständnis des Textes 7. Was prüft die syntaktische Analyse?  Den Sinn des Programms  Die Ausführbarkeit des Programms  Die sprachliche Richtigkeit des Programms 8. Was prüft die semantische Analyse?  Die sprachliche Richtigkeit des Programms  Den Sinn des Programms  Die Ausführbarkeit des Programms 51 www.uvk-lucius.de/ brueckenkurse Informatik 9. Wie nennt sich die Disziplin zur systematischen Entwicklung von Software?  Software Development  Software Building  Software Coding  Software Engineering 10. Welche der folgenden Elemente gehört zu den Kontrollstrukturen einer Programmiersprache?  Sequenz  Folge  Iteration  elementare Aweisung 11. Nennen Sie ein Beispiel für eine elementare Anweisung.  Berechnung  Verzweigung  Methodenaufruf  Wertzuweisung  Schleife 12. Ordnen Sie die verschiedenen Phasen bei der Übersetzung des Quelltextes in der richtigen Ausführungsreihenfolge an.  Semantische Analyse  Zielcodegenerierung  Lexikalische Analyse  Zwischencodegenerierung  Syntaktische Analyse Die Lösungen finden Sie online unter www.uvk-lucius.de/ brueckenkurse 52 www.uvk-lucius.de/ brueckenkurse Brückenkurs 7 Service Glossar Algorithmus Ein Verfahren, das in endlichen Schritten ein gegebenes Problem löst. Akku (oder Akkumulator) Ein besonderes Register im Rechenwerk der CPU, das die Ergebnisse der arithmetischen Operationen enthält. Arithmetic Logical Unit (ALU) Es ist das Rechenwerk der CPU, in dem alle Berechnungen durchgeführt werden und die Resultate in Registern abgespeichert werden. Betriebssystem Erlaubt die Interaktion des Benutzers mit dem Computer und verwaltet alle seine Betriebsmittel. Bekannte Beispiele für Betriebssysteme sind Windows, Linux oder MacOS. Bit Es ist die kleinste Speichereinheit und beschreibt die Unterscheidung zwischen 0 und 1. Byte Acht Bits bilden ein Byte und erlauben somit die Speicherung von 2 8 = 256 Kombinationen. Central Processing Unit (CPU) Besteht aus einem Rechen- und einem Steuerwerk. Es kann als das Gehirn eines Computers angesehen werden. Compiler Übersetzt das Programm in Code bevor es ausgeführt wird. Datei Eine Folge von Daten. 53 www.uvk-lucius.de/ brueckenkurse Informatik Service Hexadezimal Ein Zahlensystem auf der Basis 16, das gekennzeichnet ist durch eine tiefer gesetzte 16. Die Zahlen 10 … 15 werden durch die Hexziffern A … F ersetzt. Die Hexzahl A4 ist eine 164 im Dezimalsystem. Interpreter Übersetzt das Programm in Code zur Laufzeit, also während das Programm ausgeführt wird. Komplexität Ein Maß für den Aufwand zur algorithmischen Lösung des Problems. Oktal Ein Zahlensystem auf der Basis 8, das gekennzeichnet ist durch eine tiefer gesetzte 8. Die Oktalzahl 27 8 entspricht der 23 im Dezimalsystem. Programmiersprache Eine formale Sprache, in der der Algorithmus beschrieben wird und dann in einen für den Computer verständlichen Maschinencode übersetzt wird. Übersetzer Allgemeine Bezeichnung für Compiler oder Interpreter. 54 www.uvk-lucius.de/ brueckenkurse Brückenkurs Kreuzworträtsel 1. Wofür steht Das „E“ im EVA- Prinzip? 2. Die … besteht aus physischen Rechnerkomponenten 3. Wer erledigt den Transport der Daten? 4. Heutige Rechner, wie z. B. Tablets, Smartphones oder Notebook sind …? 5. Information = Daten + … 6. Darstellung einer elementaren Speicherzelle 7. Ein Zahlensystem auf der Basis 16 8. Maß für den Aufwand zur algorithmischen Lösung eines Problems. 1 2 3 4 5 6 7 8 2 5 6 8 5 4 3 4 1 3 6 7 7 1 8 2 55 www.uvk-lucius.de/ brueckenkurse Informatik Service 1. 8 Bits 2. 3 Bits lang ist die Bitfolge einer …ziffer 3. Ausführbare Programmdateien enthalten …sprache 4. Was wird als Folge von Zahlen, die Punkte beschreiben, dargestellt? 5. Was wird Mantisse genannt? …stellen 6. Komponente des Steuerwerks 7. Die Aktualisierung des Programmzählers ist ein Schritt der …-Phase 1 2 3 4 5 6 7 8 9 10 2 10 4 7 5 9 6 4 8 1 1 5 7 3 2 3 6 56 www.uvk-lucius.de/ brueckenkurse Brückenkurs 1. Geringere Speicherkapazität als Festplatten haben … Laufwerke 2. Gleichzeitige Bearbeitung mehrerer Aufgaben 3. Eine objektorientierte Programmiersprache 4. Der … übersetzt den Quelltext einmal 5. Das Einlesen des Textes ist eine Phase der … Analyse 6. USB steht für Universal … Bus 7. LAN steht für Local … Network 1 2 3 4 5 6 7 8 9 10 11 2 6 8 7 3 1 4 5 5 1 3 4 7 10 9 6 2 11 57 www.uvk-lucius.de/ brueckenkurse Informatik Service Stichwortverzeichnis A Abteilungsrechner 16 Akkumulator 33, 52 Algorithmus 11, 52 Analyse -, lexikalische 47 -, semantische 48 -, syntaktische 48 Arithmetic Logical Unit (ALU) 33, 52 Audio 22 Ausgabe 10 B Befehlsausführungszyklus 33 Betriebssystem 12, 39, 52 -, Aufgaben eines 40 Bild 22 -, interne Darstellung von 21 Binärzahlen, Umwandlung von 24 Bit 19, 52 Bitfolgen 19 Bitmap 22 Byte 19, 20, 52 C Central Processing Unit (CPU) 32, 37, 52 Codes, Optimierung von 48 Compiler 45, 46, 52 Computer, Komponenten eines 37 D Dateien 12, 20, 21, 52 Daten 12, 20 Decodierer 33 E Eingabe 10 Entscheidbarkeit 11 EVA-Prinzip 10, 19 Executables 22 Execute-Phase 34 F Festplatte 38 Fetch-Phase 34 G Gleitkommazahlen 25 Grafikformate, moderne 22 Grafikprozessor 37 Großrechner 16 H Hardware 8, 12 Hauptspeicherverwaltung 40 High Definition Multimedia Interface (HDMI) 39 Hexadezimal 53 -system 20 -zahlen, Umwandlung von 24 I Informatik -, angewandte 100 58 www.uvk-lucius.de/ brueckenkurse Brückenkurs -, Anwendungsgebiete der 10 -, Kategorien der 9 -, Methoden und Verfahren der 10 -, praktische 10 -, technische 9 -, theoretische 10 Instruktionsregister 33 Integration 16 Interpreter 46, 53 I/ O-Einheiten 37 IT -, private 16 -, professionelle 16 K Komplexität 11, 53 Komprimierungsverfahren 22 Kontrollstruktur 45 L Local Area Network (LAN) 39 Laufwerke, optische 38 Leerzeichen 21 Lisp 46 M Mehrbenutzersystem 40 Modell 19 Multitasking 40 N Netzwerk 39 Notebook 16 O Oktal 53 -system 20 -zahlen 20 P PC 16 Programm 12 Programme, ausführbare 22 Programmiersprache 44, 46, 53 -, interpretierte 46 -, moderne 46 -, objektorientierte 44 -, prozedurale 44 Programmzähler 33 Prozessor 33 Prozessverwaltung 40 Python 46 R Rechenwerk 33 Rechnerarchitekturen 32 Rechneraufbau 8 Rechnerkomponenten 37 Rechnertypen 16 Register 33 S Schnittstellen 39 Server 16 Smartphone 16 Software 9, 12 Software Engineering 44 Speicheradressregister 33 Statusregister 33 59 www.uvk-lucius.de/ brueckenkurse Informatik Service Steuerwerk 33 Subtraktion 24 T Tablet 16 Text 21 -, interne Darstellung von 21 Trends 16 U Übersetzer 45, 53 Universal Serial Bus (USB) 39 V Verarbeitung 10 Video 22 von-Neumann-Architektur 32 -, Schwachpunkt der 32 W Wireless Local Area Network (WLAN) 39 Wort 19 Z Zahlen 23 -, interne Darstellung von 21 -, natürliche 23 -, negative 24 Zahlensysteme 20 Zeichen 21 Zielcodegenerierung 49 Zwischencode, Generierung von 48 Weitere Brückenkurse: Außenwirtschaft Betriebswirtschaftslehre Bilanzierung Controlling Finanzierung Informatik Kosten- und Leistungsrechnung Makroökonomik Marketing Mikroökonomik Personalwirtschaft Projektmanagement Statistik für Wirtschaftswissenschaften Wissenschaftliches Arbeiten Mehr Themen und Informationen finden Sie unter utb-shop.de www.uvk.de Ein Buch, das niemanden mehr ruhig schlafen lässt. Schöne neue Welt? Die Datensammelwut der Internetgiganten ist kein Geheimnis - und aufgrund dieser Datenbasis und neuer digitaler Produkte wie Haustechnik, Autoelektronik, Drohnen, digitaler Währungen etc. dringt die New Economy immer weiter in alle Systeme ein. Doch wie sieht eine Welt aus, in der Google, Facebook & Co. als gigantische globale Monopole agieren? Regieren sie längst die Welt? Arno Rolf und Arno Sagawe beschreiben den Weg in die digitale Welt - in die smarte Gesellschaft - und untersuchen auf spannende Weise, ob die digitale Transformation und stabile Gesellschaften überhaupt miteinander vereinbar sind. Arno Rolf, Arno Sagawe Des Googles Kern und andere Spinnennetze Die Architektur der digitalen Gesellschaft 2015, 278 Seiten, flex. Einb. ISBN 978-3-86764-590-4