RMA Basiswissen IT Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern (IBM-Chef Thomas Watson, 1943 ) Basiswissen IT Rechnerarchitektur Die meisten Computer besitzen die sogenannte „Von-Neumann-Architekur“. Programm und Daten teilen sich denselben Speicherbereich. Erste Computer: Z1 (1937) und Z3 (1941) von Konrad Zuse und ENIAC (1944) von Eckert, Mauchly, Goldstine, von Neumann 1947 wird der Transistor erfunden und kann bald die Röhren ersetzen. „Künftige Computer werden vorausichtlich leichter als 1.5 Tonnen sein“ Basiswissen IT Rechnerarchitektur 4 Komponenten: 1. Arithmetisch-logische Einheit (ALU) 2. Steuereinheit 3. Speicher (RAM, ROM) 4. Eingabe- und Ausgabeinheiten (Tastatur, Maus, Bildschirm, Drucker, Harddisk, Netzwerkkarte etc) (ALU und Steuereinheit heute normalerweise zur CPU (CentralProcessing-Unit) vereint.) Die ALU rechnet (inkl. logische Operationen) Die Steuereinheit holt Daten und Programmanweisungen aus dem Speicher und führt die Anweisungen unter Benutzung der ALU aus. Basiswissen IT Bits & Bytes - Binärzahlen Heutige Computer basieren auf Binärzahlen (Bits, ja/nein, 0 und 1), Einfachere Realisierung von Binärarithmetik und -logik mit elektrischen Schaltkreisen. Binärsytem: Jede Stelle (Bit) entspricht einer 2er Potenz. Beispiel: 01101101 = 0*27 + 1 * 26 + 1*25 + 0 * 24 + 1*23 + 1* 22 + 0*21 + 1*20 = 64 + 32 + 8 + 4 + 1 = 109 Basiswissen IT Bits & Bytes - Binärzahlen Addition (und andere Arithmetik) genau wie im Dezimalsystem: 00100011 = 3510 + 01000101 = 6910 -------------------01101000 = 10410 Einfach: Multiplikation mit 2 ist Linksshift, Division durch 2 ist Rechtsshift. Logische Operationen: NOT (~): ~1 = 0, ~0=1 AND (&): 1 & 1 = 1, 1 & 0 = 0 , 0 & 1 = 0, 0 & 0 = 0 OR (|) : 1 | 1 = 1, 1 | 0 = 0| 1 = 1, 0| 0 = 0 XOR (^): 1 ^ 1 = 0 ^0 = 0, 1 ^0 = 0^1 = 1 Basiswissen IT Bits & Bytes - Größen Mit n Bits kann man 2n Zahlen darstellen. Vorzeichen durch Zweierkomplement. N Name Bytes Wertebereich 4 Nibble 0.5 0...15 -8 ...7 8 Byte 1 0...255 -128...127 16 Word 2 0...65.535 -32768...32767 32 Double Word 4 0...4.2*109 -2.15 *109...+ 2.15 *109 Basiswissen IT Bits & Bytes - Hexadezimalsystem Sehr gebräuchlich ist das Hexadezimalsystem, jede Stelle entpricht einer Potenz von 16 Neue Zeichen A=10, B=11, C=12, D=13, E=14, F=15 Eine Stelle entspricht einem Nibble, zwei Stellen einem Byte, 4 Stellen einem Word, 8 Stellen einen Doubleword Beispiel: 0xBAFF = 11*163 + 10*162 + 15*161 + 15*160 = (47817)10 = 1011 1010 1111 11112 Basiswissen IT Bits & Bytes - Gleitkommazahlen Reelle Zahlen werden im Gleitkommaformat dargestellt. Form: z = m*be „m“ heißt Mantisse, „b“ Basis, „e“ Exponent. Beispiel: 314.1592 = 3.141592 * 102 Format im Computer (single precision): Basiswissen IT Bits & Bytes - Speicher Speicher sind in Bytes (=8 bit) organisiert. In der vorherrschenden 32-bit Architektur hat jede Speicherzelle eine eindeutige Adresse von 4 Byte über die sie angesprochen werden kann. Speichergrößen Name Definition Kilobyte, kB 1024 Bytes Megabyte, MB 1024 kB = 220 Bytes ~ 106 Bytes Gigabyte, GB 1024 MB = 230 Bytes ~ 109 Bytes Terabyte, TB 1024 GB = 240 Bytes ~ 1012 Bytes Basiswissen IT Bits & Bytes – ASCII Code Zur Darstellung von Buchstaben wurde der ASCII Code eingeführt (1968). Er benutzt nur 7-bit (0-127). Basiswissen IT Bits & Bytes – Beyond ASCII ISO-8859 Code benutzt das 8.Bit zur Kodierung westeuropäischer Sonderzeichen (ä, ö, ü usw.) Unicode definiert 1.114.112 Zeichen, kodiert mit maximal 4 Byte. Heute am gebräuchlichsten: UTF-8, stellt Unicode mit Byteketten variable Länge dar und enthält den ASCII Code. Basiswissen IT Betriebssysteme Herzstück eines jeden Computers. Betriebsysteme sorgen für die Verwaltung und die Koordination der Ressourcen, z.B: Prozessmanagement Dateisystem Ein- und Ausgaben Unzählige: Z.B. Unix, Linux, VAX, MSDOS, Windows, MacOS, NeXT, BeOS usw. Basiswissen IT Betriebssysteme - Prozesse Jedes Programm läuft als Prozess: Multitasking (Nebenläufigkeit): 1. 2. 3. CPU-Zeit Speicherbereich E/A- Zugriff Scheinbare Gleichzeitig durch schnelles Wechseln zwischen Prozessen. Drei Formen Präemptives Multitasking Koordiniertes Multitasking Echte Parallelität Multithreading Threads (engl. Faden) sind „Unterprozesse“ Prozess übernimmt Koordination der ThreadRessourcen. Basiswissen IT Programmiersprachen Maschinencode: Folge von „Binärzahlen“ die CPU als Befehle interpretiert. Assembler: Wie Maschinencode, mit merkbaren Kürzeln (Mnemonics) z.B. jmp 0xffffff00 (springe zu Speicherstelle 0xffffff00) Basiswissen IT Programmiersprachen Hochsprachen: Müssen in Maschinencode übersetzt werden Compiler: Übersetzt Programm als ganzes; schneller Code. Interpreter: Übersetzt Programm zeilenweise; langsamer Code. Hybrid: Kompilat in Zwischencode (z.B Java: plattformunabhängiger Bytecode), der dann interpretiert wird (z.B. von der JVM). Basiswissen IT Programmiersprachen Fünf Generationen: Maschinensprache 2. Assembler 3. Hochsprachen (z.B. FORTRAN, COBOL, PASCAL, BASIC, C) 4. 4. Generation (Anwendungssprachen), z.B. SQL 5. KI-Sprachen. Z.B Prolog (für logische Probleme) Objektorientierte Sprachen (z.B. SmallTalk, C++, Java) 1. Basiswissen IT Programmiersprachen Typische Elemente : Datentypen (z.B. Ganzzahlen, Gleitkommazahlen, Arrays, Datenverbünde, Objekte) Variablen Logische und arithmetische Operatoren Verzweigungen (IF–THEN-ELSE) Schleifen (FOR, WHILE) Unterprogramme Ein/Ausgabefunktionen Wiederverwendbarkeit: Bibliotheken von Programmen einbinden (Linken) Basiswissen IT Programmiersprachen Beispiel: Hello World in C #include <stdio.h> int main() { int i = 0; for(i = 0; i<10; ++i){ if( i % 2 == 0) { printf(„Hello world %d!\n“, i); } else{ printf(„Hallo Welt %d!\n“, i); } } return 0; } Ausgabe: Hello world 0! Hallo Welt 1! Hello world 2! Hallo Welt 3! Hello world 4! Hallo Welt 5! Hello world 6! Hallo Welt 7! Hello world 8! Hallo Welt 9! Basiswissen IT Anwendungen Hauptanwendungen des Computers: Numerische Berechnungen Datenbanken Text-, Bild- & Tonverarbeitung Kommunikation Steuern & Regeln Spielen Basiswissen IT Anwendungen-Numerik Historisch erste Anwendung: Computer=Rechner ENIAC war z.B: zur Berechnung ballistischer Flugbahnen für‘s Militär gedacht. Numerische Algorithmen stecken in fast jeder Anwendung: Z.B. Berechung des Spektrum eines Klanges, ein Weichzeichnerfilter in Photoshop, ein aufwändiges Klimamodell auf einem Supercomputer. Berechnung eines Neuronenmodells zur BeatErkennung. Basiswissen IT Anwendungen - Datenbanken „Elektronischer Karteikasten“ zur Speicherung und Manipulation von Daten beliebiger Art, z.B. Personaldaten einer Firma Lagerbestand Bibliothekskataloge Private mp3- Sammlung Webseiten Basiswissen IT Anwendungen - Datenbanken Heute am weitverbreitesten: Relationale Datenbanken. Daten werden in Datenfeldern zu Datensätzen zusammengefasst. Datensätze werden mit eindeutigen Schlüsseln in Tabellen gespeichert. Man kann Tabellen erzeugen, löschen, verändern, kombinieren, abfragen. Gängige Abfragesprachen basieren meistens auf SQL (Structured Query Language). Basiswissen IT Anwendungen Text-, Bild- & Tonverarbeitung: Häufigste Anwendung im Personalbereich. Kennt jeder... Kommunikation: Dito. E-Mail, Chat, IP-Telefonie etc... Steuern & Regeln: Über Hardware-Schnittstellen ein- oder zweiseitige Kommunikation mit externen Geräten zum Regeln, Steuern, und Überwachen derselben. Z.B. MIDI Spielen... Basiswissen IT Internet & Co. Historisch entstand das Internet aus dem ARPANET(1969), das vier militärische forschende Universitäten in Amerika über Telefonleitungen vernetzte. Internet ist ein Netz von Netzen: Basiswissen IT Internet & Co. –TCP/IP Netzwerkprotokolle: Kommunikation zwischen Rechnern Meistens basierend auf TCP/IP. IP (Internet Protocol). Erste logische Schicht. IPv4 benutzt 32-bit Adressen, z.B. 192.168.202.53 (=0xC0A8CA34) Eindeutige IP-Adresse („Telefonnummer“) für jeden Rechner. 65536 verschiedene Ports („Nebenanschlüsse“). HTTP benutzt z.B Port 80, SMTP (Mail) Port 25. DNS-Server bilden das „Telefonbuch“ Unter dem Eintrag www.uni-hamburg.de ist z.B. die IP-Adresse 132.100.32.72 zu finden. Basiswissen IT Internet & Co. – TCP/IP IP verschickt Daten paketweise. Paket besteht aus Die Daten stellen zweite logische Schicht dar: die Transportschicht, z.B. Header (mit IP-Adresse) Datenteil TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Mit TCP/IP- oder UDP-Paketen werden weitere Protokolle implementiert werden, die Internetdienste (höchste Schicht). Z.B. HTTP, FTP, SMTP, TELNET usw. Basiswissen IT Internet & Co. - WWW Das WWW entstand 1991 im CERN und ist das „logische“ Netz der Webserver im Internet. WWW baut auf HTTP auf (HyperText Transfer Protocol), das wiederum TCP/IP benutzt. Ein Webserver ist ein Programm, kein Rechner! HTTP benutzt URL‘s (oder URI), z.B. http://www.google.de/search?hl=de&q=uni+hamburg um eine Ressource im WWW zu lokalisieren. Basiswissen IT Internet & Co. - HTTP Typische Kommunikation: 1. 2. 3. 4. User: http://www.mu-on.org/RMA/RMA.html Browser fragt (s)einen DNS nach der IP von www.muon.org, Antwort: 212. 227.118.118. Browser stellt TCP/IP Verbindung mit 212. 227.127.91auf Port 80 her. Browser schickt Anfrage an den Webserver: GET /RMA.html HTTP/1.1 5. Webserver antwortet: HTTP/1.1 200 OK Server: Apache/1.3.29 (Unix) Content-Length: 3467 Content-Language: de Content-Type: text/html Connection: close (ab hier Inhalt von RMA.html) Basiswissen IT Internet & Co. - HMTL Webseiten typischerweise in HTML (HyperText Markup Language) HTML ist eine Dokumentenbeschreibungssprache keine Programmiersprache, kann aber (Javascript-)Programmteile enthalten! HTML-Seiten können per CGI (Common Gateway Interface) dynamisch vom Webserver erzeugt werden. Z.B. Suchanfrage bei Google. Webserver startet CGIScript, dass in der Datenbank nachschaut, und anhand der Ergebnisse eine HTML-Datei erzeugt. Verbreiteste CGI-Sprachen: Perl, PHP. Basiswissen IT Internet & Co. - HTML Beispiel: „Hello World“ in HTML <html> <head> <title>Hello world</title> </head> <body> <h1> Hello world</h1> <p> In diesem Paragraphen stehen unwichtige Dinge. </p> </body> </html> Basiswissen IT Internet & Co. - XML XML (eXtensible Markup Language) Zunehmende weite Verbreitung für verschiedene Zwecke Sehr flexibel Kann quasi selbstbeschreibend sein. Trennung von Daten und Darstellung (Document/View) Eignet sich auch als Datenbankformat. Beliebigen Daten zwischen Tags (Anfangs/Endtag) Tags haben einen Name und beliebige Attribute, z.B <creator type="composer">Franz Schubert</creator> Baumstruktur mit einem höchsten Knoten Man kann eigene Dokumententypen definieren (DTD‘s, XML Schema) Basiswissen IT Internet & Co. - XML XSL(T): Transformation von XML-Dokument in z.B. HTML-Seite PDF-Datei Finale-Partitur Anderes XML Dokument Etc. Basiswissen IT Internet & Co. - XML BEISPIEL MusicXML <?xml version="1.0" standalone="no"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"> <score-partwise> <work> <work-number>D. 911</work-number> <work-title>Winterreise</work-title> </work> <movement-number>22</movement-number> <movement-title>Mut</movement-title> <identification> <creator type="composer">Franz Schubert</creator> <creator type="poet">Wilhelm Müller</creator> </identification> </score-partwise>