Skriptum Grundzuege der IT Zusammenfassung
Transcription
Skriptum Grundzuege der IT Zusammenfassung
© Florian Müller Informationstechnologie Kapitel 1: Einführung (Inhalte und Bereiche der Informatik, Begriffsdefinition, Dualsystem, Binärcodierung) bit: (binary digit) =Zustand 0 oder 1 byte: kleinste adressierbare Dateneinheit; → kilo → mega → giga → tera wachsende Informatiosflut, wirtschaftliche Notwendigkeit → starke Treiber für die Entwicklung der Informatik Theoretische Informatik fundamentale Erkenntnisse, Grundlagen Technische Informatik funktioneller Aufbau Praktische Informatik beschäftigt sich mit Software Angewandte Informatik Rechnereinsatz für verschiedene Anwendungsgebiete Wirtschaftinformatik: ● Schnittstelle zwischen Wirtschaftswissenschaften und Informatik ● befasst sich mit Planung, Entwicklung, Implementierung ● zur Unterstützung der ablaufenden Geschäftsprozesse und zur strategischen Entscheidungsfindung ● 2004 wurde ERCIS gegründet (European Research Center for Information Systems) → internationales Forschungszentrum für winf Wichtige Zahlensysteme ● Dualsystem 0,1 ● Oktalsystem 0,1,2,3,4,5,6,7 ● Hexadezimalsystem 0-7, A-F Umrechnung zwischen Zahlensystemen ● Dezimal to Dual: Zahl immer durch 2 dividieren; wenn Rest=1, dann 1 wenn Rest=0, dann 0 (vgl. 23=10111) ● Dual to Dezimal: z.B.: 1001=9, weil 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 9 ● Hexa- to Dezimal: 3C7=967, weil 3*16^2 + C (=12)*16^1 + 7*16^0 = 967 Binärcodierung ● Code: eindeutige Vorschrift zur Abbildung eines Zeichenvorrates in einem anderen Zeichenvorrat ● ASCII-Code: (American Standard Code for Information Interchange); weit verbreitet, Zeichen werden aus einer Folge von 8 Bit dargestellt → daraus ergeben sich 2^8=256 mögliche Kombinationen ● UNI-Code: entstand 1990 weil der ASCII Code nicht für alle Sonderzeichen ausreichte → 16 Bit Länge – 2^16=65536 mögliche Kombinationen ● EBCDI-Code: (Extended Binary Coded Decimals InterchangeCode), auch IBM-Code genannt, wird meist in bei Großrechnern verwendet Datei ● = Strukturierter Bestand inhaltlich zusammengehöriger Daten © Florian Müller ● ● Textdatei: jedes Byte steht für einen Buchstaben Pixelgrafik, Audiodatei: große Menge an Daten → meist komprimiert Datenkompression ● = Verfahren zu Reduktion des Speicherbedarfs ● verschiedene Algorhythmen zur Codierung: LZW Codierung – in Teilketten zerlegt – in eine Tabelle eingetragen und mit Indizes versehen – statt Teilkette werden nur noch Indexwerte gespeichert ● bekannte Formate: jpg, gif, png, mp3, aac, vorbis, mpeg, wmv, divx, xvid... Grundlegende Begriffe 1. Daten: unstrukturierte Gebilde aus Zeichen 2. Information: Kenntnis von Daten, Fakten und deren Zusammenhänge mit einer bestimmten Bedeutung (erfüllen einen Zweck) 3. Wissen: kontextabhängiges Einsetzen von hoch strukturierten Informationen ● Wissensmanagement versucht Wissensfluss von Unternehmenserfolg zu steigern ● Zeichen + Syntax = Daten + Zweckbezug = Information + Interpretation = Wissen Kapitel 2: Hardwarekomponenten und deren Funktionalität (Rechnerarchitektur, Computersysteme, Speicher und Speicherleistung, Befehlszyklus und Bussystem, IRQ, Bewertung der Rechenleistung, Aufbau einer Compis, Datenein-/ausgabe, Speichermedien, Schnittstellen, Bluetooth) Entwicklung des Computers ● Charles Babbage: “difference engine” und “analytical engine” - mechanische Rechenmaschinen, die als Vorläufer des modernen Computers gelten ● Jhon von Neuman: “Von-Neuman-Architektur” (Daten und Programm im selben Speicher) ● Konrad Zuse: 30er Jahre: erstes programmgesteuertes Rechengerät; konnte auch Gleitkommazahlen verarbeiten ● Steve Jobs: & Steve Wozniak → Apple (revolutionäre grafische Oberfläche) ● Bill Gates: & Paul Allen → Auftrag ein OS für IBM zu entwickeln – Höhenflug für Microsoft! Computersysteme ● Personal Computer (PC): ursprünglich für einfache Aufgaben – heute Multimedia ● Workstations: ursprünglich hohe Rechen und Grafikleistung für Forschung und Wissenschaft, Multitasking- Multiuser, UNIX → heute der Leistung von PCs ähnlich ● Mainframes: Großrechner, meist für wissenschaftlice-technische Berechnungen; Mehrprozessorsysteme Rechnerarchitektur (siehe Grafik Seite 15!) 8 Prinzipien der von Neuman-Architektur 1. Rechner räumlich und logisch in Rechenwerk, Hauptspeicher, Steuerwerk und Ein-/Ausgabewerk eingeteilt 2. Speicherprogrammierung; Ein Programm wird im Speicher abgelegt 3. Gleichheit von Programmen und Daten: werde beide in einheitlichem Speicher abgelegt 4. Adressspeicherung: jeder Speicherplatz erhält eine numerische Adresse, über die Daten abrufbar sind 5. Sequentielle Programmspeicherung: aufeinanderfolgende Programmbefehle werden in aufeinanderfolgenden Speicherplätzen abgelegt 6. Verfügbarkeit von Adresssprüngen: nach einem Befehl einer bestimmten Adresse kann ein anderer Befehl einer anderen Adresse ausgeführt werden 7. Verfügbarkeit bedingter Sprungbefehle: wenn a= 1 dann b, wenn Bedingung p=wahr, dann was © Florian Müller anderes 8. Verwendung des dualen Zahlensystems Speicher ● Register: kleinste Einheit von Speicherzellen im Prozessor; als Instruktions/Befehlzählregister ● Cache Memory: Speicherchip mit besonders schnellem Zugriff; Puffer zwischen Arbeitsspeicher und CPU ● Hauptspeicher ○ RAM (Random Access Memory) – hält Programme für CPU bereit ○ ROM (Read Only Memory) ■ EPROM (erasable programmable ROM) ■ EEPROM (electrically erasable ROM) ● Virtueller Speicher: Peripheriespeicher zur künstlichen Erhöhung des Hauptspeichers verwendet (Festplatte aber viel langsamer als RAM) ● Peripheriespeicher Befehlszyklus (von Neumann) 1. Befehl aus den Hauptspeicher holen 2. Befehl decodieren, Operanden-Adresse errechnen 3. Operanden holen 4. Befehl ausführen 5. Befehlszähler erhöhen → Punkt 4 wird vom Rechenwerk erledigt, den Rest macht das Steuerwerk (während Rechenwerk Befehl bearbeitet, wird vom Steuerwerk bereits nächster Befehl vorbereite → “Pipeline-Prinzip”) ● Taktgeber (Quarzkristall) gibt Taktzeit vor → Kehrwert der Takzeit ist Taktrate (Mhz, Ghz) Das Bussystem ● Bus = Leitung zwischen Computerbestandteilen (Adressbus, Datenbus, Steuerbus) ● interner Bus = Verbindungen innerhalb der CPU ● externer Bus = zwischen CPU und anderen Geräten (Drucker, Tastatur...) ● Busbbreite = Anzahl der gleichzeitig übertragenen Bits ● einige Busarten ○ ISA (Industry Standard Architecture) (IBM) ○ EISA (Exetended ISA) ○ VESA (Video Electronics Standards Association) ○ PCI (Peripheral Component Interconnect) (Intel) IRQ ● ● ● ● = um Kommunikation und Koordination zwischen Hardwareteilen zu steuern jedes Gerät = ein bestimmtes Interrupt-Signal Interrupt-Controller: kann bis zu 15 verschiedene Signale unterscheiden (z.B.: Tastatur = IRQ1 usw.) Interrupt-Konflikt: 2 Bausteine verwenden die gleiche Leitung – unbrauchbare Daten PCMCIA (Personal Computer Memory Card International Association) ● = Schnittstellenstandard für Zusatzgeräte in Notebooks ● PCMCIA Karten gibt es in drei verschiedenen Typen, die sich lediglich in der Bauhöhe unterscheiden (3,3 – 5 und 10,5mm), ansonsten 68polig und 85,6 mal 54mm groß Dateneingabe ● Semidirekte Dateneingabe (z.B.: Urbelege, Plastikkarten) ○ Daten werden mit Lesegeräten (z.B.: Strichcodeleser) in die Computeranlage eingegeben ● Automatische Direkteingabe (z.B.: Brandmelder) ○ Daten werden von Sensoren an Messgeräten erfasst und weitergeleitet ● Manuelle Direkteingabe (z.B.: Tastatur, Maus, Touch Screens...) ● Akustische Direkteingabe ○ über Mikrofon – die Computeranlage muss speziell ausgerüstet sein um die Sprache in Daten umzuwandeln © Florian Müller Speichermedien ● Charakteristika für Speichermedien: ➢ Speicherkapazität ➢ Zurgiffszeit ➢ Preis ➢ Lebensdauer ➢ Art der Adressierung und des Zugriffs (wahlfrei oder sequentiell) ➢ Änderbarkeit des Speicherinhalts (lesen, schreiben, ...) ➢ Energieverbrauch ● Es gibt sequentielle Speicher (Magnetspulen, Magnetbandkassetten) und Direktzugriffspeicher (magnetische-, optische- und Halbleiterspeicher) Aufbau magnetischer Speicher ● Daten werden auf einer magnetisierbaren Schicht auf einer Scheibe aus Aluminium gespeichert ● Einteilung in Spuren und Sektoren (Sektor = kleinste adressierbare Einheit; wird als ganzer in den Arbeitsspeicher geladen) ● Zylinder (bei HDD): alle Spuren, die dieselbe Spurnummer tragen, sich aber auf unterschiedlichen Platten befinden Optische Speicherplatten ● Vorteile gegenüber magnetischen Speichermedien: Mobilität, niedrige Kosten, Eignung als Archivmedium ● Speicherung der Information durch “Pits” und “Lands”, die sich entlang einer einzigen Spirale aufreihen – Abtastung mittels Laserstrahl Datenausgabe ● Indirekte Datenausgabe: Daten werden nur in maschinell lesbarer Form für spätere Weiterverarbeitung ausgegeben (z.B.: wenn Computer miteinander kommunizieren) ● Direkte Datenausgabe: Visuelle oder akustische Datenausgabe (Sprachwiedergabe, Sprachsynthese) ○ Druckausgabe - Impact Drucker: (Nadeldrucker, Band-Drucker, Daisy-Wheel) = Anschlag über Farbband, wie Schreibmaschine Drucktechniken ● Non-Impact Drucker ○ Tintenstrahldrucker: Tintentröpfchen werden durch Düsen gezielt auf das Papier geschossen ○ Laserdrucker: Laserstrahl auf lichtempfindliche Schicht (Trommel) – auf den belichteten Stellen wird Toner aufgetragen und auf das Papier übertragen – durch Wärme und Druck fixiert) ○ Thermodrucker: sichtbares Bild auf Papier Hitzeentwicklung von Elektroden ○ Plotter: Vektor- oder Rasterplotter ● Zeichendruck/Seitendruck: Laser- und Tintenstrahldrucker drucken technisch bedingt immer eine ganze Seite (auch wenn diese nur ein Zeichen enthält) Schnittstelle – Interface ● Seriell: geht nur in eine Richtung (A zu B od. B zu A) ind Zeiteinheit t, ist langsam, aber stabil ● Parallel: gleichzeitig von A zu B und B zu A, dadurch schneller, aber störungsanfälliger ● USB: Standard von Intel, verdrängt seriell und parallel Bluetooth ● 1998: IBM, Ericsson, Intel, Nokia und Toshiba gründen die “Bluetooth Special Interest Group” heute bereits 1420 Firmen dabei ● Bluetooth arbeitet zwischen 2,402 und 2,480 Ghz (=ISM-Band), welches weltweit frei und unlizensiert ist. Reichweite liegt momentan zwischen 10 und 100 Meter. © Florian Müller Kapitel 3: Software Engineering (Systemsoftware, Betriebsarten, Progrmmiersprachen, Prozedurale und objektorientierte Programmirung, Algorithmen, Dateitypen und Datenstrukturen) Systemsoftware ● = Bindeglied zwischen Hardware und Anwendungssoftware; steuert die Hardware so, dass sich Anwendungssoftware ausführen lässt ● Hardware + Systemsoftware = Basissystem eines Informationssystems ● Hauptaufgaben der Systemsoftware ○ Steuerung rechnerinterner Abläufe ○ Überwachung und Protokollierung der Systemaktivitäten ○ Steuerung der Ein- und Ausgabegeräte ○ Steuerung der rechnerischen Abläufe ○ Koordination der abzuarbeitenden Programme Bestandteile der Systemsoftware ● Betriebssystem (OS): Steuerung des Computers ○ Dienstprogramme: kleine Programme die Leistungsumfang und Handhabung des OS verbessern ● Systemnahe Software: Programme die komplexe Aufgaben unterstützen (Debugger,...) ● Übersetzungsprogramme: um eine höhere Programmiersprache in Maschinensprache zu übersetzen Betriebsarten (= Art und Weise, wie Aufgaben abgewickelt werden) ● Viele Möglichkeiten des Kategorisierung: Anzahl, der Programme, Anzahl der Prozessoren, Zeitliche Abwicklung, Anzahl der Benutzer, On/Offlinebetrieb ○ Mehrprozessorbetrieb erfordert aufwendigeres Betriebssystem und macht wegen dem erhöhten Kommunikationsaufwand nur bis 8 Prozessoren Sinn ○ Stapelbetrieb: alle Anweisungen werden in eine Datei geschrieben (=Job). Erst wenn die Aufgabe vollständig definiert ist, wird mit der Abarbeitung begonnen – während der Abarbeitung kann der Auftrag nicht mehr modifiziert werden ■ der Auftrag wird zu einem bestimmten Zeitpunkt ohne weitere Benutzereingabe begonnen ○ interaktiver Betrieb: Teilaufträge werden nach der Eingabe ausgeführt ■ Dialogbetrieb: ständiger Wechsel zwischen Benutzereingabe und Abwicklung der Aufgabe ■ Prozessbetrieb: Eingabe erfolgt durch Messgeräten (Sensoren) – Echtzeitverarbeitung ○ Multi-User Betrieb ■ Teilhaberbetrieb: User arbeiten im Dialogbetrieb an einem Großrechner; verwenden das gleiche Programm und den gleichen Datenbestand (typisch für Auskunfts- od. Reservierungssysteme) ■ Teilnehmerbetrieb: User verwenden verschiedene Programme und/oder Datenbestände; heute durch die Vernetzung von Rechnern abgelöst Betriebssysteme ● Windows (am weitesten verbreitet), UNIX, Linux, OS/2 und OS/400 (beide von IBM), Open VMS (Compaq), BS 2000/OSD (Siemens), MacOS (Apple) Programmiersprachen (=Sprache zum Abfassen von Programmen) ● einzige Kommunikationsmöglichkeit zwischen Mensch und Maschine ● ist ein Problem genau beschrieben und wurde ein strukturierter Lösungsvorschlag gefunden, kann der Algorithmus in eine Programmiersprache übersetzt werden ○ Syntax (“Lehre vom Satzaufbau”) -- Grammatik ○ und Semantik (“Lehre vom Satzinhalt”) -- Sinn müssen stimmen © Florian Müller Grundkonzepte für Programmiersprachen ● jedes Programm wird in einer Sprache geschrieben (=Quellcode) und muss erst in Maschinensprache übersetzt werden. Je nach Orientierung der Sprache gibt es 3 Arten von solchen Übersetzungsprogrammen: ○ Assembler (“maschinenorientierte” Sprache) ○ Complier (“problemorientierte” Sprache) ■ Assembler & Complier funktionieren nach dem selben Prinzip: Quellcode wird eingelesen und daraus wird ein ausführbarer Programmcode in einer neuen Datei generiert. - Diese Datei kann dann unabhängig vom Complier ausgeführt werden. ■ Heutzutage fast nur noch Complier für professionelle Programmierung verwendet. ■ Moderne Complier oder Interpreter haben umfangreiche Sammlung von wiederkehrenden Routinen, die bei Bedarf in den Programmcode eingebunden werden. ○ Interpreter (“interpretative” Sprache) ■ beim Interpreter werden die Anweisungen im Quellcode nacheinander analysiert und unmittelbar ausgeführt (ein unabhängig vom Interpreter lauffähiges Programm kann damit nicht erstellt werden) ■ der Vorteil liegt in der relativ schnellen Programmentwicklung und in der Möglichkeit des schnellen Testens Einteilung der Programmiersprachen 1. Generation: Maschinensprachen: Infos nur mit 0 und 1 dargestellt 2. Generation: Assemblersprachen: Befehle können zu Abkürzungen zusammengefasst werden 3. Generation: “höhere” Programmiersprachen: Anpassung an die englisch Sprache; Einsatz von Unterprogrammen 4. Generation: Makro-Sprachen: einsatz in komplexen Programmsystemen (Vbasic, Lotus Script, SQL, JavaScript) 5. Generation: Künstliche Intelligenz – Sprachen: geistige Fähigkeiten des Menschen werden simuliert – Erkennen von optischen und akustischen Mustern... (Bsp: PROLOG Beschreibungssprache für neuronale Netze) Einige wichtige Programmiersprachen ● 3te Generation ○ FORTRAN: erste Sprache der 3. Generation ○ ALGOL: Typendeklaration zwingend vorgeschrieben und Funktionen definiert ○ COBOL: für betriebswirtschaftliche Anwendungen entwickelt ○ BASIC: einfache Struktur, Einstiegssprache einer ganzen Generation ○ PASCAL: einfach und unterstützt strukturierte Programmierung ● 4te Generation ○ C/C++: enthält hoch entwickelte, aber auch sehr maschinennahe Elemente; gut übertragbar ○ JAVA: Applets im Internet ○ C#: vom Microsoft entwickelt. Elemente aus vielen Programmiersprachen; im .NETFramework nutzbar Prozedurale und objektorientierte Programmierung ● Prozedural ○ besteht aus Hauptprogrammen und Unterprogrammen ○ Programmabarbeitung prinzipiell sequentiell – Prozeduren können nur von Anfang bis zum Ende durchlaufen werden ○ erlaubt strukturierte Programmierung (durch Einsatz von Prozeduren und Funktionen) ● Prozeduren und Funktionen ○ abgeschlossene algorithmische Einheiten ○ bestehen aus Sequenzen, Bedingungen, Schleifen, Prozedur- und Funktionsaufrufen ○ können Werte über Parameterliste zurückliefern ○ Prozedur = nur Eingangeswerte; Funktionen = Eingangswerte, genau 1 Ausgangswert ○ Wichtige Standardprozedur z.B. Bildschirmausgabe ○ Variablen beim Arbeiten mit Prozeduren: ■ globale Variablen: während der Laufzeit des gesamten Programms gültig © Florian Müller ■ lokale Variablen: nur während der Laufzeit der Prozedur gültig Objektorientierte Programmierung ○ hier wird versucht Objekte aus der realen Welt abstrakt darzustellen ○ Datenkapselung: Objekte werden von außen als unveränderlich angesehen – d.h. Objekte können nicht durch Funktionen außerhalb des Objekts verändert werden ● Vererbung: damit bereits definierte Objekte erweitert werden können. Algorithmus ● allgemein: Samlung von Regeln ● in der IT: Anleitung zur Lösung einer Aufgabe mit präzise formulierten Verarbeitungsvorschriften und endlicher folge kleinster Schritte ● Kennzeichen ○ jeder Schritt muss eindeutig und ausführbar sein ○ jeder Algorithmus muss irgendwann zu einem Ende kommen ○ jeder Algorithmus besitzt Eingangs- und Ausgangsgrößen ●