Grundlagen Computer und Betriebssystem INE1, Montag M. Thaler, [email protected] Office TG208 http://www.zhaw.ch/~tham 1 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Um was geht es? Aktuelle technische Systeme • enthalten i.d.R. Prozssoren 0 . 4 e i r t s u Ind rung) ie s i l a t i (Dig digital / Software ... Design von Systemen, etc. • erfordert einen PC ... Prozessoren und Software 2 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 ... um was geht es? Studieninhalte Systemtechnik "Mechatronik und Medizintechnik sind zwei innovative Bereiche der Systemtechnik. Diese junge Ingenieurdisziplin gewinnt zunehmend an Bedeutung. Sie basiert auf der wachsenden Komplexität technischer Produkte, die heute mechanische, elektronische und softwaretechnische Komponenten vereinen. Das Studium Systemtechnik bildet qualifizierte Fachkräfte aus, die sich als fundierte Generalisten komplexer Systeme verstehen und für anspruchsvolle Aufgaben Lösungen erarbeiten. In nationalen oder internationalen Hightech-Unternehmen kommen Sie als Systemtechnik-Ingenieurin oder -Ingenieur in anspruchsvollen Entwicklungsprojekten zum Einsatz. Sie arbeiten dabei an interessantenProblemstellungen in Gebieten wie Robotik, Medizintechnik, Automatisierungstechnik oder Sensorik." 3 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Lernziele Sie können • Aufbau und Funktionsweise von Computer- und Betriebssystemen erklären • den Unterschied zwischen Desktop und Kommandschnittstelle erklären • erklären, wie ein C-Programm aufgebaut ist, erstellt wird und laufengelassen werden kann • die Infrastruktur für das Erstellen von C-Programmen nutzen und ein erstes C-Programm selber implementieren 4 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Inhalt Computer /Computersystem Betriebssystem Benutzerschnittstelle The first C-Program 5 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Leseempfehlung Kapitel 1.2 Computersysteme Jürgen Plate, "Algorithmen und Datenstrukturen" http://www.netzmafia.de/skripten/buecher/perl/algorithmen.pdf 6 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Zusätzliche Informationen Kapitel 2 Grundlagen Andreas Keese, "Wie arbeitet ein Computer" http://www.wire.tu-bs.de/lehre/eip_static/eiptext/kap2.pdf Linux Shell Kommandos http://wiki.ubuntuusers.de/Shell/Befehlsübersicht MS-DOS Kommandos http://www.chemie.fu-berlin.de/lehre/edv/msdos.html Kurze Einführung in MS-DOS http://www.netzmafia.de/skripten/bs/dos.html 7 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Inhalt Computer /Computersystem Betriebssystem Benutzerschnittstelle A first C-Program 8 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Computersystem 9 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Computersystem Ein Gerät, das Information (Daten) • einliest, verarbeitet und ausgibt • EVA Schema: Eingabe Verabeitung Ausgabe Von Neumann Architektur • Daten und Befehle im gleichen Speicher 10 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Hard- und Software Hardware • physische Komponenten, auf denen die Software exisitiert und arbeitet Software • alle nicht physischen Komponenten eines Computersystems • beinhaltet Programme und Daten 11 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Hardware 12 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Datenspeicherung 1 Bit Speicherzellen eines Computers Speicher 10011010 • 2 Zustände - Ladung, keine Ladung - Spannung, keine Spannung - Strom, kein Strom Informatik binäre Logik - 1 oder 0 - wahr oder falsch Speicherorganisation • jede Speicherzelle 1 Bit • Organisation Speichereinheit - i.d.R. 8 Bit bzw. 1 Byte 13 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Inhalt Computer /Computersystem Betriebssystem Benutzerschnittstelle The first C-Program 14 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Betriebssystem Betriebssystem • Software, die System-Ressourcen eines Computers verwaltet - Speicher, Festplatten, Ein-/Ausgabe, Rechenleistung • ermöglicht einfache Nutzung des Computer-Systems • Ziel Unabhängigkeit von Hardware (Abstraktion der Hardware) 15 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Beispiel Unix/Linux Anwendungsprogramme und Shells Bibliotheken Betriebssystem Kern (ohne Treiber) Schnittstellen Applikation, Benutzer Betriebssystem Treiber Hardware CPU, Speicher, Kommunikation, ... 16 Verwaltung System-Ressourcen ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Mehrprozess-System Mehrprozess-System (Multiprocessing) • mehrere Programme (Prozesse, Tasks) - arbeiten quasi parallel (concurrent) • schneller Wechsel zwischen Programmen - vermittelt Eindruck gleichzeitiger Verarbeitung • erfordert Speicherschutzmechanismus Task 1 Task 2 Task 3 Task 1 Task 2 Task 3 ... t Task Switch 17 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Task Manager Z.B. Windows 18 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Mehrbenutzer-System Mehrbenutzer-System (Multiuser System) • • • • 19 mehrere Benutzer können gleichzeitig am System arbeiten Schutzmechanismen (Zugriffsrechte) Systemzugang kontrolliert: Login/Logout Benutzerkonten durch Systemverwalter administriert ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Virtueller Speicher Virtueller Speicher (Virtual Memory) • Prozessen steht virtueller Addressraum zur Verfügung • benötigte Speicherbereiche werden in Hauptspeicher abgebildet • bei Bedarf werden Teile auf Festplatte ausgelagert (Swapping) Virtueller Addressraum 0x0000000 Programm Code Physikalischer Addressraum Daten Heap Stack 20 0xFFFFFFFF ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Netzwerk Netzwerk (Networking) • Werkzeuge, Protokolle für Kommunikation mit anderen Systemen • Protokolle - TCP/IP (Sockets) - SSH, SFTP - etc. 21 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Dateien Datei • zusammengehörende Menge von Daten • auf Datenträger oder Speichermedium abgelegt • beinhaltet Metainformationen - Name, Zugriffsrechte, Erstellungsdatum, etc. • Textdatei - darstellbare Zeichen mit Texteditor bearbeitbar • Binärdatei - enthält beliebige Bitmuster • Dateinamen: nur Buchstaben, Zahlen und _ oder - verwenden - mit Buchstaben beginnen, keine Umlaute und nicht *:?!\ / • Dateientypen - i.d.R. durch Erweiterung gekennzeichnet: beispiel.c 22 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Dateisystem Dateisystem • Ablage von Dateien auf einem Speichermedium (SSD, Disk, etc.) • Organisation der Dateien in Verzeichnissystem (Ordner) • verschiendenste Typen mit verschiedenem technischen Aufbau - Windows: NTFS - MAC: HFS (APFS) - Linux: EXT4 23 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Inhalt Computer /Computersystem Betriebssystem Benutzerschnittstelle The first C-Program 24 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Benutzerschnittstelle Desktops, z.B. Win10 25 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 ... Kommandoschnittstelle Bash auf Mac Beispiele CLI auf Win10 26 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 Inhalt Computer /Computersystem Betriebssystem Benutzerschnittstelle The first C-Program 27 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program "Hello INE1" /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 28 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program Funktion main() /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 29 Funktion main() - Startpunkt von C-Programmen - hier ohne Argument (void) aufgerufen - gibt Zahl 0 zurück (return 0) erfoglreicher Abschluss ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program Bibliotheken einbinden /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 30 Bibliotheken einbinden - macht Bibliothek stdio verfügbar (Standard Input/Output) - printf() ist in stdio definiert ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program Text auf Konsole ausgeben: printf() /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 31 Text ausgeben - Funktion printf() aus Bibliothek stdio - printf() ist in stdio definiert - Ausgabe: Argument "Hello INE1\n\n" - \n Zeilenwechsel ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program Ausführung von Anweisungen /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 32 Anweisungen - von "oben nach unten" ausgeführt - mit Semikolon ";" abgeschlossen - Imperative Programmierung Abarbeiten von Anweisungen ZHAW, © M. Thaler, K. Rege, G. Burkert September 17 The first C-Program Kommentare /* Programm hello.c * 1. Programmbeispiel fuer INE1 */ Kommentare - beschreibt Programmcode - alles zwischen /* und */ - oder von // bis Zeilenende #include <stdio.h> int main(void) { // Text ausgeben printf("Hello INE1\n\n"); return 0; } 33 ZHAW, © M. Thaler, K. Rege, G. Burkert September 17