Grundlagen einfache IT-Systeme Name IT-Sys Klasse Datum 1 Einführung IT Systeme bilden die Grundlage aller modernen Firmen. Sie wachsen in ihrer Komplexität rapide an, basieren jedoch auf Grundlagen, welche zum Teil schon Jahrtausende alt sind. Ziel ist es nun, sowohl ein Verständnis über die Basiselemente, als auch Wissen über die aktuellen Entwicklungen zu erlangen. Gordon Moore, ein Mitbegründer von Intel, formulierte 1965 in einer Fachzeitschrift eine Gesetzmäßigkeit zur Komplexitätssteigerung von integrierten Schaltkreisen, was bis heute erstaunlich richtig ist: „Die Komplexität integrierter Schaltkreise verdoppelt sich etwa alle zwei Jahre.“ Wobei hier Schaltkreise mit minimalen Komponentenkosten gemeint sind. Folgende Grafik verdeutlicht diese Vorhersage (Quelle: Wikipedia: Wgsimon): Unsere Aufgabe ist es nun, mit dieser Entwicklung Schritt zu halten! ITSYS_EinfuerungPlsZahlen_v01.docx Seite 1 Grundlagen einfache IT-Systeme IT-Sys Um dies zu ermöglichen, müssen wir uns neben der aktuellsten Technologie vor allem die Grundlagen ansehen um diese zu verstehen. Trotz aller Fortschritte – die Grundlagen des ersten Computers sind immer noch die gleichen, wie bei einem aktuellen Prozessor. Sei es das zugrundeliegende Zahlensystem, die Tatsache, dass alle wesentlichen Rechenoperationen auf der Addition basieren oder Abbildung sämtlicher Informationen auf Zahlen. Es wird zwar zu erwarten sein, dass die derzeitige Technologie irgendwann an die technisch realisierbaren Grenzen stößt – derzeit bewegen sich die minimalen Fertigungsgrößen bei ca. 20nm und einem Silizium Gitterabstand von ca. 0,5 nm sind nur noch 40 Atome nebeneinander möglich. Die Technologie wird sich somit irgendwann anders ausrichten, jedoch ist das derzeitige Ziel eine Fertigungsgröße von 11nm, was voraussichtlich noch 10 Jahre in Anspruch nehmen wird – also noch genug Zeit das hier erlernte Wissen anzuwenden. Eine weitere einschränkende Größe ist die Taktrate. Diese kann nicht beliebig hoch gewählt werden. Zum einen steigt die Wärmeerzeugung, welche irgendwie abgeführt werden muss. Zum anderen sind die Schaltgeschwindigkeiten der Transistoren begrenzt. Schließlich gibt es noch Probleme bei der EMV (Elektromagnetische Verträglichkeit) zu nennen – also Elektromagnetische Wechselwirkungen aufgrund der hohen Frequenzen. 2 Zahlensysteme Digitaltechnik basiert auf der Tatsache, dass die beiden Zustände „Spannung vorhanden“ und „Spannung nicht vorhanden“ unterschieden, und auf dieser Basis Informationen abgelegt werden können. Um diese Informationen nun codieren zu können, ist ein Regelwerk notwendig, welche die Anzahl der unterscheidbaren Zustände von 2 (an und aus) auf beliebig erweitern kann. Dies geschieht mittels des binären Zahlensystems. 2.1 Struktur des Dezimalsystems Um das Binärsystem verstehen zu können, wird zuerst das bekannte Dezimalsystem untersucht. Das Dezimalsystem ist ein sog. „Stellenwertsystem“, bei dem nicht nur die Ziffer selbst, sondern auch die Position den Wert bestimmt. Der Ziffernvorrat von 10 Zeichen kommt aller Wahrscheinlichkeit nach von den 10 Fingern des Menschen, welche ja auch als Rechenhilfe dienen. Zur Ermittlung des tatsächlichen Wertes sind pro Position zwei Schritte notwendig: 1.: Multiplikation der Ziffer mit der Zehnerpotenz der eigenen Position, wobei die rechte Ziffer die Position 0 besitzt. 2.: Addition des Ergebnisses zum aktuellen Wert. Beispiel: Zahl 165 = 5 * 100 + 6 * 101 + 1 * 102 Das Zählen erfolgt also dergestalt, dass man beginnend mit 0 aufsteigend den Zeichenvorrat durchgeht, bis man an der 9 angekommen ist. Danach zählt man die nächsthöhere Stelle mit dem gleichen System um eins hoch und fängt an der aktuell betrachteten Stelle wieder mit der 0 an. Merke: Die kleinste Ziffer in der Mathematik ist die 0 – insofern ist die erste Zahl beim Zählen auch die 0, nicht die 1! Seite 2 Aicher IT-Sys Grundlagen einfache IT-Systeme 2.1 Struktur des Binärsystems Das Binärsystem ist exakt wie das Dezimalsystem aufgebaut, jedoch mit dem Unterschied, dass es nicht 10 Zeichen, sondern nur zwei (0 und 1) gibt. Folgende Tabelle stellt Werte der beiden Zahlensysteme gegenüber. Zur Unterscheidung von Zahlen verschiedener Zahlenformate müssen nun Zusatzinformationen angegeben werden. Dezimalzahl für den Wert 100: 10010 was somit heißen soll, „Zahl eins null null mit der Basis 10“ oder eben Hundert. Entsprechend gilt für eine Binärzahl 100: 1002 also „Zahl eins null null“ mit der Basis 2“. Es gibt noch weitere Notationen wie 100B (B für Binär), oder 0b100. Dezimal: 1 Binär: 0 24 23 22 21 20 10 10 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 2 0 2 10 0 0 0 1 0 3 0 3 11 0 0 0 1 1 4 0 4 100 0 0 1 0 0 5 0 5 101 0 0 1 0 1 6 0 6 110 0 0 1 1 0 7 0 7 111 0 0 1 1 1 8 0 8 1000 0 1 0 0 0 9 0 9 1001 0 1 0 0 1 10 1 0 1010 0 1 0 1 0 11 1 1 1011 0 1 0 1 1 12 1 2 1100 0 1 1 0 0 13 1 3 1101 0 1 1 0 1 14 1 4 1110 0 1 1 1 0 15 1 5 1111 0 1 1 1 1 16 1 6 10000 1 0 0 0 0 1: Gegenüberstellung Dezimal, Binär Seite 3 Grundlagen einfache IT-Systeme IT-Sys 2.2 Hexadezimalsystem Leider kommt man im Binärsystem bei entsprechend großen Zahlen auf entsprechend riesige Ziffernkolonnen (bspw. Ist Bevölkerungsstand der BRD 2008 laut Statistisches Bundesamt 82 024 000 Binär ausgedrückt 100 1110 0011 1001 0110 0100 0000). Die Umrechnung zwischen den beiden Zahlensystemen ist jedoch „per Hand“ eher umständlich. Um hier Abhilfe zu schaffen, wurde das Hexadezimalsystem eingeführt, bei dem die Basis eine Zweierpotenz (24 = 16) ist und somit eine einfache Umrechnung möglich ist. Der Zeichenvorrat des Hexadezimalsystems wurde mit 0-9 plus A-F definiert. Hier eine Gegenüberstellung der drei Zahlensysteme Hex, Bin, und Dezimal: Dezimal: 1 Binär: Hexadezimal: 0 4 161 160 0 0 0 1 1 0 1 1 0 2 0 2 0 1 1 3 0 3 0 1 0 0 4 0 4 0 0 1 0 1 5 0 5 110 0 0 1 1 0 6 0 6 7 111 0 0 1 1 1 7 0 7 0 8 1000 0 1 0 0 0 8 0 8 9 0 9 1001 0 1 0 0 1 9 0 9 10 1 0 1010 0 1 0 1 0 A 0 A 11 1 1 1011 0 1 0 1 1 B 0 B 12 1 2 1100 0 1 1 0 0 C 0 C 13 1 3 1101 0 1 1 0 1 D 0 D 14 1 4 1110 0 1 1 1 0 E 0 E 15 1 5 1111 0 1 1 1 1 F 0 F 16 1 6 10000 1 0 0 0 0 10 1 0 2 3 2 2 2 2 1 2 0 10 10 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 2 0 2 10 0 0 0 3 0 3 11 0 0 4 0 4 100 0 5 0 5 101 6 0 6 7 0 8 2: Gegenüberstellung Dezimal, Binär Hexadezimal Folgendes Beispiel soll die Sinnhaftigkeit des Hexadezimalsystems darstellen: Dezimal: Binär: 4 78 1.251 20.025 320.406 5.126.500 82.024.000 100 100.1110 100.1110.0011 100.1110.0011.1001 100.1110.0011.1001.0110 100.1110.0011.1001.0110.0100 100.1110.0011.1001.0110.0100.0000 Hexadezimal: 4 4E 4E3 4E39 4E396 4E3964 4E39640 3: Systematik Hex/Bin Umrechnung Die Notationen für Hexadezimalzahlen sind 100H (H für Hexadezimal), oder 0h100 bzw. in der Mathematik 10016 Seite 4 Aicher IT-Sys Grundlagen einfache IT-Systeme 2.3 Umrechnungen Zum weiteren Verständnis werden hier nochmal kurz die manuellen Umrechnungen dargestellt: 2.3.1 Binär <-> Dezimal Binärzahlen werden in Dezimalzahlen umgerechnet, indem man die einzelnen Stellen mit ihrer „Wertigkeit“ multipliziert und aufaddiert. Die Werte der einzelnen Positionen können problemlos selbst errechnet werden, indem die Wertigkeit immer wieder mit 2 multipliziert wird (also 128 * 2 = 256, 256 * 2 = 512, usw. usf.) Umgekehrt werden Dezimalzahlen umgerechnet, indem man prüft, wie oft die Wertigkeit einer Binärstelle in die entsprechende Dezimalzahl, bzw. des Restwertes passt, wobei man bei der höchsten Wertigkeit beginnt, welche gerade noch passt. Für jede Wertigkeit die passt wird als Binärwert eine 1 gesetzt. Hier am Beispiel der Dezimalzahl 119: Position: 6 5 4 3 2 1 0 Wertigkeit: 128 64 32 16 8 4 2 1 Rechnung: Rest: Binärwert: 128 passt nicht in 118, also keine Rechnung. 64 passt in 118 ein mal hinein (118-64=54) 32 passt in 54 ein mal hinein (54-32=22) 16 passt in 22 ein mal hinein (22-16=6) 8 passt in 6 null mal hinein 4 passt in 6 ein mal hinein (6-4=2) 2 passt in 2 ein mal hinein (2-2=0) 1 passt in 0 null mal hinein (1-1=0) 118 54 22 6 6 2 0 0 0 1 1 1 0 1 1 0 4: Rechenbeispiel Umrechnung Dezimal in Binär (durch Abziehen) Am Schluss muss immer der Rest 0 raus kommen, da sonst ein Rechenfehler unterlaufen ist (Wenn dem nicht so wäre, dann könnte man mit dem Binärsystem nicht alle Dezimalzahlen darstellen). Eine zweite Methode ist, über den Modulo Operator % also den Rest einer ganzzahligen Division: Position: 0 1 2 3 4 5 6 Aktuelle Zahl: 119 59 29 17 7 3 1 Rechnung: Ergebnis: 118 / 2 = 59, Rest = 0 59 / 2 = 29 Rest = 1 29 / 2 = 14 Rest = 1 14 / 2 = 7 Rest = 0 7 / 2 = 3 Rest = 1 3 / 2 = 1 Rest = 1 1 / 2 = 0 Rest = 1 0 1 1 0 1 1 1 5: Rechenbeispiel Umrechnung Dezimal in Binär (durch Modulo 2) Da bei der Modulooperation immer die Teilbarkeit durch 2 geprüft wird, ist das Ergebnis genau anders herum zu lesen, als bei der Subtraktionsmethode. 2.4 Umrechnen Binär <-> Hexadezimal Wie bereits erwähnt, wurde das Hexadezimalsystem zur vereinfachten Darstellung von Binärzahlen „erfunden“. Dies beruht darauf, dass mit vier Binärstellen genau 16 Zahlen dargestellt werden können. Hierfür reicht allerdings auch exakt eine Hexadezimalstelle aus. Seite 5 Grundlagen einfache IT-Systeme IT-Sys Dies führt zu folgender Vorgehensweise bei der Umrechnung von Binär auf Hexadezimal: 1.: Von rechts beginnend immer vier Stellen zu einer Gruppe zusammenfassen. 2.: Die letzte Gruppe links mit 0 auffüllen, bis sie vier Ziffern enthält 3.: Pro Gruppe die Hexadezimalstelle ermitteln 4.: Hexadezimalstellen zu einer Zahl zusammenfassen. Im Beispiel bei der Zahl 10110100111: Schritt 1.: 101.1010.0111 Schritt 2.: 0101.1010.0111 Schritt 3.: 0101-> 5 1010-> A 0111-> 7 Schritt 4.: Die Hexadezimalzahl lautet 5A7 Umgekehrt ist die Rechnung vergleichbar einfach: 1.: Jeder Hexadezimal die Binärzahl zuordnen (Hierzu muss man sich nur die Kombinationen der ersten 16 Zahlen herleiten oder merken.) 2.: Sämtliche Binärzahlen zusammenschreiben. Im Beispiel bei der Zahl E8B: Schritt 1.: E-> 1110 8-> 1000 B-> 1011 Schritt 2.: Die Binärzahl lautet: 111010001011 2.5 Umrechnung Hexadezimal <-> Dezimal Nachdem die Rechnungen von Dezimal <-> Binär und Hexadezimal <-> Binär verstanden wurden, können über den „Umweg“ Binär auch die Hexadezimalzahlen in Dezimalzahlen umgewandelt werden. Es ist schlichtweg einfacher zuerst die Werte in Binär auszudrücken um sie dann in Hexadezimal oder Dezimal umzurechnen. Trotzdem geht natürlich auch der direkte Weg (hier in aller Kürze): Prinzipiell funktioniert die Umrechnung von Dezimal in Hexadezimal wie die Umrechnung von Dezimal in Binär. Zuerst die Prüfung, wie oft eine Wertigkeit der Hexadezimalzahl in die Dezimalzahl passt. Hier am Beispiel der Zahl 1034: Passt 4096? -> nein, dann wird geprüft, wie oft die nächstkleinere Wertigkeit passt und mit dem Rest wird weiter gerechnet: 256 * 4 = 1024 => 1034 – 1024 = 10 (also Position 2 ist die 4) Passt die nächste Wertigkeit 16 in 10 -> nein! (also Position 1 ist die 0) Passt die nächste Wertigkeit 1 in 10 -> Ja, also 10 * 1 = 10 => 10 – 10 = 0 (also Position 0 ist die A) Also ist die Hexadezimalzahl 40A. Wenn eine Hexadezimal in Dezimal umgerechnet werden muss, ist die Vorgehensweise wieder wie bei der Umrechnung von Binär in Dezimal. Hier am Beispiel der Zahl A4C: Position 2 mit der Wertigkeit 256 hat den Wert A (also Dezimal 10) => 10 * 256 = 2560 Position 1 mit der Wertigkeit 16 hat den Wert 4 => 4 * 16 = 64 Position 0 mit der Wertigkeit 1 hat den Wert C (also Dezimal 12) => 12 * 1 = 12 Also ist die Dezimalzahl 2560 + 64 + 12 = 2636 Seite 6 Aicher IT-Sys Grundlagen einfache IT-Systeme 2.5.1 Übung: Ergänzen sie bitte folgende Tabelle: Dezimal Binär: Hexadezimal 101 100 27 26 25 24 23 22 21 20 161 160 10 1 128 64 32 16 8 4 2 1 16 1 1 0 0 0 0 0 1 0 1 0 0 A 1 6 0 0 1 1 0 0 1 0 1 F 9 9 3 2 6: Rechenübung Zahlensysteme 2.6 Binärpräfixe Die IEC (Internationale Elektrotechnische Kommission) hat 1996 eine Norm für Binärpräfixe vorgestellt. Diese berücksichtigen, dass die Zweierpotenzen nicht zu geraden Zehnerpotenzen führen und wurden begrifflich von den SI Einheiten abgeleitet. Binärpräfixe SI-Symbole Name Symbol Wert kibi Ki 210 = 10241 = 1.024 Name Kilo Symbol k Wert 103 = 1.000 mebi Mi 220 = 10242 = 1.048.576 Mega M 106 = 1.000.000 gibi Gi 230 = 10243 = 1.073.741.824 Giga G 109 = 1.000.000.000 tebi Ti 240 = 10244 = 1.099.511.627.776 Tera T 1012 pebi Pi 250 = 10245 = 1.125.899.906.842.624 Peta P 1015 exbi Ei 260 = 10246 = 1.152.921.504.606.846.976 Exa E 1018 zebi Zi 270 = 10247 = 1.180.591.620.717.411.303.424 Zetta Z 1021 yobi Yi 280 = 10248 = 1.208.925.819.614.629.174.706.176 Yotta Y 1024 7: Gegenüberstellung Binärpräfixe und SI-Symbole Ein Beispiel: 500 MiB = 500 · 220 Byte = 524.288.000 Byte (was somit ungefähr 534 MB entspricht) Leider hat sich das MiB nicht wirklich im täglichen Leben durchgesetzt – man muss somit aus dem Zusammenhang erkennen, ob man sich im Bereich der Binärpräfixe oder der SI-Symbole befindet. Seite 7 Grundlagen einfache IT-Systeme 3 IT-Sys Lizenz Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Seite 8 Aicher