> Übung Betriebssysteme

Größe: px
Ab Seite anzeigen:

Download "> Übung Betriebssysteme"

Transkript

1 > Übung Betriebssysteme Übung 1 Aaron Scherzinger Wintersemester 2012/13 Gruppe Parallele und Verteilte Systeme (PVS) Institut für Informatik Westfälische Wilhelms-Universität Münster

2 Organisatorisches 2 Koordinator: Michel Steuwer Raum 705, Tel.: michel.steuwer@uni-muenster.de Sprechstunde: nach Vereinbarung Informationen zur Vorlesung und Übung, Aufgabenblätter: Im Web: Über Mailingliste pvs-bs@listserv.uni-muenster.de Anmeldung zur Mailingliste über Übungstermin: Mittwochs Uhr Uhr, Hörsaal M4 Auf den Folien steht viel aber nicht alles Teilnahme an einer Übung ist Voraussetzung zum Verständnis der Folien

3 Prüfungsleistungen 3 90-minütige benotete Klausur Termin: , Uhr, M1 Studiengänge: 1-Fach-Bachelor Informatik Diplom Informatik, Wirtschaftsinformatik, Geoinformatik, Mathematik (Nebenfach Informatik) Lehramt Sek II (und Sek I) Informatik LA Gymn./Ges. Informatik Abtestat (unbenotet) Bearbeitung der Übungsblätter (mind. 50% der Punkte) Modul Systemstrukturen für 2-Fach-Bachelor Informatik Modul Systemstrukturen besteht aus den Veranstaltungen Rechnerstrukturen und Betriebssysteme 4-stündige benotete Modulabschlussklausur (voraussichtlich am Ende des Wintersemesters) Zur Zulassung zur Modulabschlussklausur muss entweder die Klausur zu Rechnerstrukturen oder die Klausur zu Betriebssysteme (am ) bestanden werden

4 Übungsblätter 4 Im Netz werden Übungsblätter zur selbständigen Bearbeitung bereitgestellt Übungsblätter sollen praktische Kenntnisse vermitteln Intensive Beschäftigung mit den Übungsblättern ist Voraussetzung zum Verständnis der Übung Übungsblätter werden korrigiert! Insbesondere: Inhalt der Übung ist klausurrelevant!

5 Übungsblätter 5 Prüfungsleistung: Schein, CP: Klausur Abtestat, unbenotet (GI): 50% der Übungspunkte oder Bestehen der Klausur Jede mündliche Prüfung setzt das Bestehen der Klausur voraus! Bonuspunkte: Durch die erfolgreiche Bearbeitung der Übungen können bis zu 10% der Klausurpunkte erworben werden. Bei weniger als 50% der möglichen Punkte für die Übungsaufgaben werden keine Bonuspunkte vergeben. Ab 50% (1 Bonuspunkt) wird für weitere 5% der Übungspunkte je ein Bonuspunkt vergeben. Bonuspunkte werden erst nach regulärem Bestehen der Klausur angerechnet!

6 Übungsblätter 6 Voraussichtlich sieben Übungsblätter Bearbeitung In Gruppen von 3 4 Teilnehmern (nicht weniger!) Vorherige Anmeldung ist nicht nötig Zum Gründen von Gruppen kann die Mailingliste der Vorlesung genutzt werden! Abgabe Hinweise auf den Aufgabenblättern beachten!!! Abgabe per (pvs-bs-uebung@listserv.uni-muenster.de) Namen und Matrikelnummern aller Teilnehmer angeben Termin i.d.r. Dienstag vor der Übung (genauer Termin auf dem jeweiligem Blatt) Zur Bearbeitung der Übungsblätter ist eine gültige Nutzerkennung für die Mathematik/Informatik CIP-Pools hilfreich!

7 Ziel der Übungen 7 Ziel der Übung ist... die Vertiefung der in der Vorlesung vorgestellten Konzepte die praktische Anwendung aus Sicht des (System-)Programmierers Inhalte der Übungsblätter: ca. 50% Textaufgaben ca. 50% Programmieraufgaben Für Programmieraufgaben werden die Programmiersprache C und Unix/Linux verwendet

8 Unix und C 8 Warum Unix? Betriebssystem Windows Es gibt einige Hundert BS die tatsächlich verwendet werden oder wurden und mehrere Tausend (Forschungs-)Projekte Übersicht z.b. Unix Varianten (FreeBSD, OpenBSD, NetBSD, Linux,...) für jede gängige Hardware-Architektur kostenlos erhältlich Kostenlose Compiler, Editoren, Debugger, IDEs,... Im Source-Code verfügbar = Ideale Spielwiese ;-) Konzeptionell basieren alle gängigen Betriebssysteme auf Unix Man kann relativ einfach beobachten, was unter der Haube passiert Umfangreiche Literatur über Betriebssysteminterna

9 Unix und C 9 Warum C? Relativ alte Sprache (erste Versionen ab 1971) aber immer noch eine der wichtigsten überhaupt die meisten Anwendungen werden in C oder C++ entwickelt Sehr maschinennahe Sprache, deshalb gut für Systemprogrammierung geeignet So gut wie alle gängigen Betriebssysteme sind in C/C++ geschrieben Systemnahe Programmierung i. d. R. ebenfalls nur in C C wurde für die Betriebssystemprogrammierung erdacht (für Unix) Wer sich mit Betriebssystemen beschäftigt, kommt um C nicht herum!

10 C in der Übung 10 In den ersten Übungen wird eine kurze Einführung in C geben Vorausgesetzte Vorkenntnisse: Java In der Übung kann nur eine fundamentale Einführung gegeben werden. Eigenständige Übungen und Selbststudium sind notwendig! Standardwerk zu C: Brian W. Kernighan, Dennis M. Ritchie Programmieren in C 2. Ausgabe, Hanser Verlag, 1990 ISBN: Weiter Links zu C und Linux/Unix auf den Webseiten unter

11 Wiederholung von Grundlagen 11 Betriebssystem als... Virtuelle Maschine (Top-Down Sicht) Bietet abstrakte, einfache Sicht auf die Hardware Versteckt reale, low-level Eigenschaften Ressourcenmanager (Bottom-Up Sicht) Verwaltet Speicher, Platten, Terminals,... Koordiniert Zugriffe Fazit: Betriebssysteme müssen low-level Eigenschaften der Hardware berücksichtigen um diese steuern zu können; BS-Entwickler benötigen detaillierte Kenntnis der Hardware Im Folgenden werden kurz einige Grundlagen rekapituliert: Binärzahlen Prozessor und Speicher Compiler

12 Binärzahlen 12 Digitalrechner arbeiten mit Binärzahlen, deshalb hier eine kurze Wiederholung Beispiel: (123) 10 = ( ) 10 = ( ) 10 = ( ) 2 Umwandlung durch Division mit Rest (umgekehrtes Hornerschema) Kompaktere Darstellung durch Oktal- und Hexadezimalzahlen. Oktal: drei Binärziffern ergeben eine Oktalziffer (2 3 = 8) ( ) 2 = (145376) 8 Hexadezimal: vier Binärziffern ergeben eine Hexadezimalziffer (2 4 = 16) ( ) 2 = (CAFE) 16 Zwei Hexadezimalziffern ergeben ein Byte. Wegen der einfachen Umwandlung werden Binärziffern in Programmen i. d. R. Oktal oder Hexadezimal angegeben. Oft durch 0 für Oktal bzw. 0x für Hexadezimal gekennzeichnet, also bzw. 0xCAFE

13 Binärzahlen wichtige Eigenschaften 13 Umrechnung zwischen 2er und 10er Potenzen: 2 10 = K (eigentlich 1 Ki (kibi) statt 1 K (kilo)) M G 2 n n 3 Vorsicht: = Multiplikation/Division: = = m 2 n = 2 m+n 2 m /2 n = 2 m n Binärziffern: Mit m Binärziffern können 2 m verschiedene Zahlen dargestellt werden Mit m+n Binärziffern 2 m+n verschiedene Zahlen

14 Binärzahlen: Verknüpfungen 14 Logische Operationen: (UND) (ODER) (NEG) Werden bei modernen Rechnern i.d.r. nur als Operationen auf Maschinenworten (8, 16, 32 oder 64 Bit) angeboten, z. B.: Manipulation einzelner Bits: Setzen von Bit i in Wort x: x := x 2 i Löschen von Bit i in Wort x: x := x 2 i

15 Prozessor und Speicher 15 Grobstruktur eines einfachen Rechners: Prozessor: Rechenwerk (Arithmetic-Logic- Unit, ALU) Befehlsregister (Instruction Register, IR) Befehlszähler (Instruction Pointer, IP) Stapelzeiger (Stack Pointer, SP) Hauptspeicher: Fortlaufend adressiert, enthält Befehle und Daten Prozessor I/O Gerät I/O Reg I/O Reg Hauptspeicher... Befehle Befehle Befehle Befehle Daten Daten Daten Daten... I/O-Geräte: Über I/O-Register gesteuert, werden über spezielle Speicheradressen angesprochen Was sind Register? IR AKKU ALU SP IP n n+1 Bus n 2 n 1

16 Programmausführung 16 1 Laden des nächsten Befehls von der im Befehlszähler angegebenen Speicherstelle in das Befehlsregister 2 Erhöhen des Befehlszählers um eins (bzw. die Größe des geladenen Befehls) 3 Dekodieren des Befehls 4 Ggf. Laden weiterer Operanden aus dem Speicher 5 Berechnung des Ergebnisses 6 Speicherung des Ergebnisses (z. B. in einem Register (Akku)) Sprungbefehle: Manipulation des Befehlszählers (Laden der Zieladresse) Wichtig: Befehle und Daten liegen in einem fortlaufend und zusammenhängend adressierten Speicher

17 Stack (Stapel, Keller) 17 LIFO Puffer, das zuletzt abgelegte Element (push Befehl) muss auch als erstes wieder gelesen werden (pop Befehl) Extrem wichtiges, gleichzeitig einfach zu realisierendes Konzept, wird i. d. R. durch HW als Maschinenbefehle bereitgestellt: push Befehl: 1 Schreiben des Parameters an die Speicherstelle SP 2 Erhöhen von SP um 1 pop Befehl: 1 Verringern von SP um 1 2 Lesen des Wertes von Speicherstelle SP Wichtige Verwendungsmöglichkeit: Speichern von temporären Daten, insb. Sprungadressen und lokalen Variablen bei Funktionen

18 Compiler 18 Hochsprachen sind sehr abstrakt und dadurch einfach zu gebrauchen. Werden durch Compiler in Maschinensprache übersetzt (oder von einem anderen Programm interpretiert hier nicht weiter betrachtet) Für HW-nahe Programmierung (von BS) ist ein grobes Verständnis des Zusammenhangs mit dem Maschinencode wichtig Wie werden die folgenden Konzepte im Maschinencode realisiert: Variablen Datentypen Funktionen/Prozeduren

19 Variablen 19 Inhalt von Variablen liegt im Speicher Während der Übersetzung verwaltet der Compiler intern eine Tabelle mit den Speicheradressen der Variablen Im ausführbaren Maschinenprogramm gibt es keine Variablen mehr! Beispiel int a = 0; int b = 1; int result; result = a+b; movl $0, 4(%ebp) / a / movl $1, 8(%ebp) / b / movl 8(%ebp), %eax / b laden / addl 4(%ebp), %eax / a+b / movl %eax, 12(%ebp) / result / ($ Konstanten, % Register, %ebp Basisadresse, x(%y) Adresse %y+x)

20 Datentypen: Programmiersprache 20 In Programmiersprachen sind meist Daten (Variablen) typisiert Variablen dürfen nur Werte ihres Typs zugewiesen werden, z.b. int ganzzahlige Werte Anweisungen/Befehle ergeben sich aus Datentypen, z.b. + ist Addition für int und Konkatenation für String in Java Konvertierung: Um Daten verschiedenen Typs zu kombinieren müssen diese umgewandelt werden (casts), implizit (z. B. int nach float) oder explizit Korrektheit: Korrekte Typisierung wird vom Compiler/Laufzeitsystem überwacht, z.b. keine Division / für String

21 Datentypen: Maschinensprache 21 In Maschinensprache sind meist Befehle typisiert (wenn überhaupt) Beispiel Intel IA-32 (i386) Multiplikation: mul unsigned int, imul signed int, fmul floating point Daten im Speicher sind untypisierte Bitfolgen, man kann z.b. mul auf einen String anwenden Konvertierung: Maschinenbefehle um von einer Darstellung in eine andere umzuwandeln (float/integer) müssen explizit im Programm stehen Korrektheit: Keinerlei Überprüfung auf korrekte Typisierung! Auch Datentypen sind im Maschinenprogramm nicht mehr (so wie in einer Hochsprache) vorhanden

22 Funktionsaufruf 22 Funktionsaufrufe sind abstrakte Konstrukte (der Prozessor kennt keine Funktionen!) Hauptspeicher Funktion liegt als Maschinencode im Speicher Funktionsaufruf: Sprung an Anfangsadresse der Funktion Funktionsende: Rücksprung zur Stelle des Aufrufs funktion1 Dazu muss die Rücksprungadresse beim Aufruf gespeichert werden Rücksprungadressen werden auf einem Stapel abgelegt Funktionen müssen in der umgekehrten Reihenfolge ihres Aufrufs beendet werden = Die zuletzt abgelegte Adresse wird als erstes benötigt Entspricht LIFO-Eigenschaft des Stapels main funktion3 funktion2

23 Funktionsaufruf: Beispiel Hauptspeicher... funktion3()... funktion2() funktion1()... funktion2() Stapel funktion1 Befehlszähler main funktion3 funktion1() funktion3() return funktion2() return return funktion2() return funktion

24 Funktionsaufruf: Parameter und Variablen 24 Funktionsaufruf: Außer der Sicherung der Rücksprungadresse muss folgendes beachtet werden: Übergabe von Parametern Sichern von Registerinhalten die innerhalb der Funktion überschrieben werden Speicher für lokale Variablen reservieren Funktionsende: Freigeben lokaler Variablen Registerinhalte wiederherstellen Rückgabe des Ergebnisses Auch hier dient der Stapel zum Ablegen aller Daten Details sind Hardware- und Compiler-abhängig

25 Beispiel: C-Funktionsaufruf bei GCC/i int foo(int a, int b) { int c = 0; c = a + b; return c; } int main(int argc, char argv) { int x; } x = foo(1, 2); return 0; foo: / Vorspann / pushl %ebp movl %esp, %ebp subl $4, %esp movl $0, 4(%ebp) / Rumpf / movl 12(%ebp), %eax addl 8(%ebp), %eax movl %eax, 4(%ebp) / Nachspann / movl 4(%ebp), %eax leave ret / Aufruf in main / pushl $2 pushl $1 call foo Nicht Klausurrelevant ;-)

26 C-Programmierung unter Linux/Unix Überblick 26 Editor program.c program.h Compiler program.o otherprog.o Linker program

27 Editor 27 VIM: Aufruf mit vim <dateiname> Tutorial: :help XEmacs: Aufruf mit xemacs <dateiname> Tutorial: M-? t Speichern: C-x s Verlassen: C-x c Beide Editoren sind auf den meisten Unix-Systemen verfügbar und äußerst leistungsfähig das Lesen der Dokumentation lohnt sich! NEdit: Einfachere Bedienung Windows ähnlich

28 Compiler Details 28 Die Übersetzung eines C-Programms findet in mehreren Schritten statt 1 Präprozessor: Textuelle Ersetzung von Präprozessoranweisungen 2 Compiler: Übersetzung in Maschinencode. Ergebnisdatei program.o enthält nur Maschinencode von Funktionen aus program.c. Funktionsaufrufe anderer Funktionen sind speziell gekennzeichnet. 3 Linker: Verbindet mehrere.o-dateien und Bibliotheksdateien zu einem ausführbaren Programm. Fügt fehlende Funktionen aus.o-dateien und Bibliotheken, sowie Code zur Ausführung der Funktion main ein. In der Regel werden alle drei Schritte auf einmal erledigt ohne Mitwirkung durch den Benutzer

29 GNU C Compiler (gcc) 29 Aufruf: gcc <datei.c> Zusätzlich können noch Optionen angegeben werden: -Wall: Viele Warnungen ausgeben (z. B. bei if(a=b) warnen) -o <datei>: Name der zu erzeugenden Datei (sonst: a.out) Aufruf für die Übungsaufgaben: gcc -Wall -Werror -pedantic-errors -o prog prog.c Aufruf von gcc bewirkt übersetzen und linken Verhindern des linkens: -c gcc -Wall -Werror -pedantic-errors -c -o prog.o prog.c Weitere Optionen: -E nur Präprozessor -g Einbinden von Debug-Informationen -O, -O1, -O2, -O3 Optimierungsstufe

30 Man-Pages 30 Unix Hilfe Seiten Anzeige mit man <befehl/funktion/schluesselwort> z.b. man gcc Man-Pages sind in Abschnitte (Sections) untergliedert. Abschnitt 1: Benutzerbefehle Abschnitt 2: Systemaufrufe Abschnitt 3: Bibliotheksfunktionen Angabe des Abschnitts: man <abschnitt> <befehl> z.b. man 3 printf auf Solaris: man -s <abschnitt> <befehl> Innerhalb von Man-Pages werden andere Seiten oft in der Form befehl(abschnitt) angegeben, z. B. fork(2) Nach Hilfeseiten suchen: man -k <Schlüsselwort> man man Alternativ

31 Make 31 Automatisierte Erzeugung von Programmen aus Quelldateien Berücksichtigt Abhängigkeiten zwischen Dateien stacktest.c stack.h stack.c compile stacktest.o stack.o link stacktest Steuerung der Übersetzung durch Regeln in Datei Makefile # Ziel: Quellen # <tab> Befehle stacktest: stacktest.o stack.o gcc stacktest.o stack.o o stacktest stacktest.o: stacktest.c stack.h gcc o stacktest.o c Wall stacktest.c stack.o: stack.c stack.h gcc o stack.o c Wall stack.c

32 Make: Implizite Regeln 32 Neben expliziten Regeln enthält make implizite Standardregeln, z. B. Regel zur Erzeugung von datei.o aus datei.c Standardregeln sind über Variablen konfigurierbar Für C-Programme: CC: Compiler CFLAGS: Kommandozeilenparameter für Compiler Anwendung impliziter Regeln wenn Befehle weggelassen werden CC=gcc CFLAGS= Wall Werror pedantic errors std=c99 stacktest: stacktest.o stack.o stack.o: stack.c stack.h stacktest.o: stack.h stacktest.c Aufruf mit gmake oder gmake Ziel

33 GNU Debugger: gdb, ddd 33 Aufruf: gdb <programm> Vorgehensweise für den Fehler zwischendurch: run <Kommandozeilenparameter> startet das Programm kill bricht das Programm ab break <funktion> setzt breakpoint (Ausführung wird bei Beginn von funktion unterbrochen) print <ausdruck> gibt Wert von <ausdruck> (beliebige Programmvariablen, Zeiger,...) aus cont führt Ausführung fort Bei Absturz: bt ( backtrace ) gibt an, an welcher Stelle das Programm abgestürzt ist Graphische Oberfläche für gdb: ddd (Data Display Debugger) ddd <programm>

34 Zusammenfassung 34 Wichtig für Programmieraufgaben: Bei Programmieraufgaben wird ein Makefile zur Verfügung gestellt Programme müssen mit diesem Makefile auf einem Rechner des IVV5 (z.b. Räuber) übersetzbar sein Alternative zu Linux: Cygwin und MinGW ABER: Kein Support durch Tutoren! Weitere Alternative: Programm an Heim-PC schreiben und via SSH auf einem Linux-Rechner übersetzen Genaueres zu Makefiles, Debugger in der ersten Globalübung

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

6. Grundlagen der Programmierung

6. Grundlagen der Programmierung Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Übungsblatt 10 (Block C 2) (16 Punkte)

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 7. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Organisatorisches. Übungsleiter: Karsten Otto Homepage:  Aufgaben Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

Übungen zu Systemprogrammierung 1

Übungen zu Systemprogrammierung 1 Übungen zu Systemprogrammierung 1 Ü1-2 Speicherverwaltung Sommersemester 2018 Christian Eichler, Jürgen Kleinöder Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

Mehr

Prüfungsvorleistung Datenstrukturen

Prüfungsvorleistung Datenstrukturen Prüfungsvorleistung Datenstrukturen Allgemeine Hinweise Als Prüfungsvorleistung für die Klausur Datenstrukturen müssen Hausaufgaben gelöst werden. Jede Hausaufgabe wird mit einer bestimmten Anzahl an Punkten

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18 Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Programmierung 1: Programmierung 1 - Ziele Vermittlung von Grundkenntnissen

Mehr

Übungen zu Systemprogrammierung 1 (SP1)

Übungen zu Systemprogrammierung 1 (SP1) Übungen zu Systemprogrammierung 1 (SP1) Ü1-2 Speicherverwaltung Andreas Ziegler, Stefan Reif, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17 1 Maschinenunabhängige Optimierungen Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17 Optimierungen Automatische Optimierungen sind nötig, weil unoptimierter Code meist besser lesbar ist.

Mehr

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

C-Crashkurs. Praktikum Systemmanagement und Sicherheit C-Crashkurs Praktikum Systemmanagement und Sicherheit ZIELE DIESES KURSES 15.04.2014 Dipl.-Inf. M. Bohr C_Crashkurs 2 Compiler gcc verwenden geläufigste Datentypen in C kennen Fehlerbehandlung (ohne Ausnahmeklassen)

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16 Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Programmierung 1: Programmierung 1 - Ziele Vermittlung von Grundkenntnissen

Mehr

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011 Übung zur Vorlesung Multimedia im Netz Ludwig-Maximilians-Universität Wintersemester 2010/2011 Ludwig-Maximilians-Universität München Multimedia im Netz - Übung - 1-1 Organisatorisches Informationen zur

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 1

3D Programmierpraktikum: Einführung in C++ - Teil 1 3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 13.11.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Kompaktkurs C-Programmierung

Kompaktkurs C-Programmierung Kompaktkurs C-Programmierung 26. 03. 2007 Franz Schenk Organisatorisches Vorlesung Accountvergabe Skriptverkauf Übungen: zwei Blöcke (13:15-14:45 / 14:45-16:15) Gruppenübung Rechnerübung Klausur Ferien:

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 5. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient. Für Menschen hingegen ist Binärformat schwierig

Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient. Für Menschen hingegen ist Binärformat schwierig 2.1 Einleitung Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient Hinsichtlich Zuverlässigkeit (digital vorteilhafter als analog) Für Menschen hingegen ist Binärformat

Mehr

Einführung in C++ Oliver Rheinbach. Büro T03 R03 D53 Tel

Einführung in C++ Oliver Rheinbach. Büro T03 R03 D53 Tel Einführung in C++ Oliver Rheinbach Büro T03 R03 D53 Tel. 0201 183 2504 oliver.rheinbach@uni-duisburg-essen.de Universität Duisburg-Essen Fachbereich Mathematik O. Rheinbach 2 Einführung in C++ Dienstag,

Mehr

Grundlagen der Informatik Vorlesungsskript

Grundlagen der Informatik Vorlesungsskript Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1

Mehr

C-Programmierkurs Mathematik

C-Programmierkurs Mathematik Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar U1 3. Übung U1 3. Übung Besprechung Aufgabe 0 Make und Makefiles Aufgabe 2 U1-1 Hinweise Die Kommandos auf den folgenden Folien dienen der Veranschaulichung Sind nicht direkt auf die Übungsaufgabe übertragbar

Mehr

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Organisatorisches Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Wenn Sie kommen...... kommen Sie pünktlich

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Propädeutikum Programmiersprache C und Mathematik 2014

Propädeutikum Programmiersprache C und Mathematik 2014 Propädeutikum Programmiersprache C und Mathematik 2014 Fakultät für Mathematik und Informatik Universität Leipzig Dipl.-Inf. Stefan Freitag, URZ & UBL Stefan Freitag Einführungsveranstaltung Ziel und Zweck

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Organisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar

Organisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Einführung Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-22 Michael Kuhn

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Hello World! Eine Einführung in das Programmieren Das erste Programm

Hello World! Eine Einführung in das Programmieren Das erste Programm Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 5. Vorlesung 09.11.2016 1 Beispiel: Hello World #include Beginn Hauptprogramm int main() { Blockbeginn printf("hello World\n"); Einbinden der Headerdatei(en) für

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 4. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Zeiger, Arrays und Strings in C und C++

Zeiger, Arrays und Strings in C und C++ Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für

Mehr

> High-Level Programmierung heterogener paralleler Systeme

> High-Level Programmierung heterogener paralleler Systeme > High-Level Programmierung heterogener paralleler Systeme Projektseminar im SoSe 2012 Prof. Sergei Gorlatch, Michel Steuwer, Tim Humernbrum AG Parallele und Verteilte Systeme, Westfälische Wilhelms-Universität

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Kurzeinführung in C99

Kurzeinführung in C99 Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

Mehr

Praxis der Programmierung

Praxis der Programmierung Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Prof. Dr. Peer Kröger, Janina Bleicher, Florian Richter Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Wintersemester 2016/2017 Peer

Mehr

16. März 2016 artb5-v1.1

16. März 2016 artb5-v1.1 C 16. März 2016 artb5-v1.1 Inhaltsverzeichnis C 2 Was ist ein Programm?........................ 2 Was ist C?............................... 3 Grundgerüst - Hallo Welt....................... 3 Tools und

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Abstrakte C-Maschine und Stack

Abstrakte C-Maschine und Stack Abstrakte C-Maschine und Stack Julian Tobergte Proseminar C- Grundlagen und Konzepte, 2013 2013-06-21 1 / 25 Gliederung 1 Abstrakte Maschine 2 Stack 3 in C 4 Optional 5 Zusammenfassung 6 Quellen 2 / 25

Mehr

Übung zu Grundlagen der Betriebssysteme. 3. Übung 30.10.2012

Übung zu Grundlagen der Betriebssysteme. 3. Übung 30.10.2012 Übung zu Grundlagen der Betriebssysteme 3. Übung 30.10.2012 Aufgabe 1 Schließen Sie sich über die URL http://userpages.uni-koblenz.de/~mips/bs/anmeldung/ Bearbeitungsgruppen bestehend aus 3 Teilnehmern

Mehr

Teil I Debuggen mit gdb

Teil I Debuggen mit gdb Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out

Mehr

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis Überblick 1 2 const static volatile 3 Überblick 1 2 const static volatile 3 eines C Programmes bevor Programm ausführbar ist, muss es von Compiler in Maschinensprache übersetzt werden Neben Compiler werden

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

Systemsicherheit (SS 2015) 30. April 2015. Übungsblatt 2. Buffer-Overflow-Angriffe

Systemsicherheit (SS 2015) 30. April 2015. Übungsblatt 2. Buffer-Overflow-Angriffe Peter Amthor, Winfried E. Kühnhauser [email] Department of Computer Science and Automation Distributed Systems and Operating Systems Group Ilmenau University of Technology Systemsicherheit (SS 2015) 30.

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

4. Mikroprogrammierung (Firmware)

4. Mikroprogrammierung (Firmware) 4. Mikroprogrammierung (Firmware) 4. Ein Mikroprogramm-gesteuerter Computer 4.2 Mikroprogramm-Beispiel: Multiplikation 4.3 Interpretation von Maschinenbefehlen durch ein Mikroprogramm 4. Mikroprogrammierung

Mehr

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Threadumschaltung 6. & 8. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Übung zu Grundlagen der Betriebssysteme. 2. Übung

Übung zu Grundlagen der Betriebssysteme. 2. Übung Übung zu Grundlagen der Betriebssysteme 2. Übung 23.10.2012 Termine Übungen 1. Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/ https://svn.uni-koblenz.de/mips/bs/wise2012/exercises/ Abgabe:

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 1 Einführung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Inhalte der Veranstaltung 1 Einführung das Maschinenmodell

Mehr

Maschinencode Dateiformat und Stackframes

Maschinencode Dateiformat und Stackframes Maschinencode Dateiformat und Stackframes Proseminar C-Programmierung - Grundlagen und Konzepte Julian M. Kunkel julian.martin.kunkel@informatik.uni-hamburg.de Wissenschaftliches Rechnen Fachbereich Informatik

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Linux. Aufgabe: cworld Übung 7 Anhang. Als die Computer noch größer waren: Linux Terminal Arbeiten unter Linux Arbeitsumgebung Manual Pages

Linux. Aufgabe: cworld Übung 7 Anhang. Als die Computer noch größer waren: Linux Terminal Arbeiten unter Linux Arbeitsumgebung Manual Pages Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 7 Sommersemester 2015 Lehrstuhl Informatik 4 2 20 Terminal - historisches (etwas

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

Betriebssysteme Teil 3: Laufzeitsystem für Programme Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher

Mehr

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Seminare / Praktikum M1/C1 : Mathe 13:15-14:45, C-Kurs 15:15-16:45h M2/C2 : C-Kurs 13:15-14:45, Mathe 15:15-16:45h M*

Mehr

Vorstellung (Wdh. für die Neuen )

Vorstellung (Wdh. für die Neuen ) Vorstellung (Wdh. für die Neuen ) Mein Name: Christian Mandery Studiengang: Diplom-Informatik im 4. Semester (ich höre also im Moment selbst noch Technische Informatik 2) E-Mail (bei Fragen und zum Senden

Mehr

Rechnernetze und -Organisation. Teil B 2012 Tomislav Nad Karl C. Posch

Rechnernetze und -Organisation. Teil B 2012 Tomislav Nad Karl C. Posch Rechnernetze und -Organisation Teil B 2012 Tomislav Nad Karl C. Posch www.iaik.tugraz.at/content/teaching/bachelor_courses/rechnernetze_und_organisation/ 1 Two different assemblers GNU Assembler as : Uses

Mehr