Lösungsvorschlag zur 7. Übung

Größe: px
Ab Seite anzeigen:

Download "Lösungsvorschlag zur 7. Übung"

Transkript

1 Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 7. Übung 1 Präsenzübungen 1.1 Schnelltest a) Ein C-Programm wird kompiliert und ausgeführt. Bringen Sie die folgenden Schritte in die korrekte Reihenfolge: Linker Loader Compiler Assembler Interpreter 1. Compiler, 2. Assembler, 3. Linker, 4. Loader Interpreter gehört nicht dazu b) Welche Aussagen treffen auf den Assembler zu? Externe Marken sind nicht vorhanden und daher kann eine Referenzierung von aussen nicht erfolgen. Der Assembler erzeugt Objektdateien. Der Assembler bearbeitet jede Datei eines Programms separat, weshalb man keine Labels anspringen kann, die ausserhalb der gerade assemblierten Datei liegen. Vorwärtsreferenzen sind wegen des 2-Phasen-Vorgehens nicht möglich. c) Die Relocation Information beinhaltet binäre Darstellung der Daten der Quelldatei.... beinhaltet resultierenden Programmtext in Maschinensprache.... beinhaltet Adressen externer Marken in Quelltextdatei und Listen ungelöster Referenzen.... beinhaltet die Identifizierung von Instruktionen und Daten-Worte, die von absoluten Adressen abhängen.... beinhaltet präzise Beschreibung der Art der Übersetzung des Programms, so dass Debugger die zu einer Instruktion gehörende Quelltextzeile auffinden kann. d) Welche Aussagen treffen auf Lader zu? Das Binden muss vor Aktivität des Laders abgeschlossen sein. Der Lader legt ein Programm nicht ab einer festen Adresse im Hauptspeicher ab, sondern ab einer aktuell verfügbaren. Der Lader ersetzt relativ gehaltene Programmadressen zum Programmanfang durch ihren jeweils endgültigen Wert. Das Programm muss vor jeder Ausführung assembliert werden. 1

2 e) Was gehört nicht zu den Aufgaben des Laders (loader)? Laden des Program Counters mit der Anfangsadresse des Programms. Anpassung der adressabhängigen Referenzen an deren aktuelle Position im Hauptspeicher. Auflösung eventuell existierender Bezüge zu Shared-Libaries. Kombination aller Objekt-Dateien (Objekt-Module) aller Programmteile und aller benötigten Programm-Bibliotheken zu einem ausführbaren Programm. 1.2 TLB Untersucht werden Speicherzugriffe auf einem System mit 256 MByte Hauptspeicher, 1 GByte virtuellem Adressraum, 64 KByte Kachel-/Seitengröße und vollassoziativem Translation Lookaside Buffer mit 4 Einträgen (Ersetzungstrategie LRU). a) Wie groß ist der TLB (ohne Verwaltungsinformationen)? Wir haben 2 28 Byte Hauptspeicher und 2 30 Byte virtueller Adressraum. Mit einer Seitengröße von 64 KByte benötigen wir = 14 Bit für die virtuelle Seitennummer sowie = 12 Bit für die physikalische Seitennummer. Insgesamt werden also 104 = 4 ( ) Bit für den TLB benötigt. b) Füllen Sie die folgenden Tabellen aus. Felder, die keinen Eintrag erhalten sollen, sind mit zu kennzeichnen. Nehmen Sie an, dass zu Beginn sowohl der Translation Lookaside Buffer noch nicht gefüllt ist und dass die angeforderten Seiten sich zunächst nicht im Speicher befinden. Die einzelnen auszufüllenden Tabellen sollen jeweils für sich alleine betrachtet werden. Zugriff virtl.adresse Seitenfehler virtuelle Seitennummer 0x134F B00F ja 0x134F 0x3D ja 0x3D49 0x ja 0x2010 0x4F ja 0x4F46 0x ja 0x1467 0x134F 4326 nein 0x134F 0x ja 0x0348 0x ja 0x2321 0x ja 0x1421 0x ja 0x4235 2

3 hit/miss virtuelle Seitennummer (TLB) Zugriff virtl.adresse im TLB neu eingelagert ersetzt 0x miss 0x1467 0x3D miss 0x3D49 0x miss 0x0010 0x miss 0x1466 0x1348 B756 miss 0x1348 0x1467 0x1467 1A34 miss 0x1467 0x3D49 0x hit 0x0010 6B35 hit 0x C1 miss 0x2321 0x1348 0x3D miss 0x3D49 0x1467 0x miss 0x2235 0x1466 Anmerkung: die erste Tabelle enthält virtuelle Adressen, die mit einem virtuellen Adressraum von 1 GByte nicht darstellbar sind. Dies sind diejenigen Adressen, deren vordeste Hex-Ziffer größer als 3 ist. 1.3 Prozesse vs. Threads Sie möchten in einem System Multi-Threading einführen, also neben den regulären, nebenläufigen Prozessen noch leichtgewichtige Prozesse einführen. Bisher sehen Ihre PCBs folgendermaßen aus: 1 typedef struct struct_ process 2 { 3 int id; 4 int state ; // 0: running, 1: idle, 2: dead 5 int priority ; 6 byte * textsegment ; 7 byte * datasegment ; 8 byte * stacksegment ; 9 int pc; 10 int stackpointer ; 11 File * openfiles ; 12 NetworkSocket * opensockets ; 13 }; Das Verständnis der genauen C-Syntax ist für diese Aufgabe nicht notwendig. Skizzieren Sie basierend auf dieser Struktur geeignete Strukturen für PCBs und TCBs (Thread Control Blocks). 3

4 Hier gibt es verschiedene mögliche Lösungen. Eine Möglichkeit: 1 typdefdef struct pcb 2 { 3 int pid ; 4 int priority ; 5 tcb * threads ; 6 byte * textsegment ; 7 byte * datasegment ; 8 File * openfiles ; 9 NetworkSocket * opensockets ; 10 }; typedef struct tcb 13 { 14 int tid ; 15 pcb * father ; 16 int state ; 17 byte * stacksegment ; 18 int pc; 19 int stackpointer ; 20 }; 1.4 Interrupts von Interrupts Die folgenden Interrupts mit Prioritäten prio laufen zu den angegebenen Zeiten t auf. Der Wert d gibt die Zeiteinheiten an, die jeweils zur Bearbeitung eines Interrupts benötigt werden: Clock prio = 28, t = {2, 11, 20}, d = 1 Device 1 prio = 3, t = {0, 12, 17}, d = 6 Device 2 prio = 4, t = {15}, d = 2 Device 3 prio = 5, t = {4, 13, 21}, d = 3 Ein Interrupt mit hoher Priorität (= niedriger Wert) kann dabei einen Interrupt mit niedrigerer Priorität (= hoher Wert) unterbrechen. Erarbeiten Sie eine Grafik aus der ersichtlich ist, welche Interrupts zu welchem Zeitpunkt bearbeitet werden. Userland Clock Device 3 Device 2 Device t 4

5 2 Hausübungen Wichtiger Hinweis: Schicken Sie Ihre Lösungen von Programmieraufgaben zusätzlich zur schriftlichen Abgabe per an Ihren Tutor. Kommentieren Sie Ihren Quellcode grundsätzlich. Fehlende oder unsinnige Kommentare führen zu Punktabzug. 2.1 Der Lader in der Praxis In dieser Aufgabe wollen wir betrachten, wie der Lader auf einem realen System Prozesse aus Programmen erzeugt. Dazu analysieren wir das folgende Programm auf einem Linux- System mittels der Systemwerkezeuge strace und ltrace. 1 Das folgende (nicht unbedingt sinnvolle) C-Programm besteht aus einigen Aufrufen von Systemfunktionen: 1 # include <stdio.h> 2 # include <sys / mman.h> 3 # include <sys / stat.h> 4 # include <fcntl.h> 5 # include < unistd.h> 6 7 int main () { 8 char *a,c; 9 int fd; 10 struct stat attr ; fd = open (" datei. txt ", O_RDWR ); 13 fstat (fd, & attr ); 14 a = ( char *) mmap (NULL, attr. st_size, PROT_READ, MAP_PRIVATE, fd, 0); 15 c = (*( a +18) ) -51; lseek (fd, 18, SEEK_SET ); 18 write (fd, &c, 1); close (fd); 21 printf (" Bearbeitung abgeschlossen.\n"); 22 return 0; 23 } In dem gleichen Verzeichnis liegt eine Textdatei datei.txt mit folgendem Inhalt: GdI 3 ist toll! :-\ (ohne die Anführungszeichen). Mit dem Programm ltrace können die Aufrufe von Funktionen in dynamischen Bibliotheken verfolgt werden, die während der Ausführung eines Programms erfolgen. Für unser Programm sieht die Ausgabe folgendermaßen aus: libc_start_main(0x4006e4, 1, 0x7fff2ebfcaf8, 0x4007b0, 0x4007a0 <unfinished...> open("datei.txt", 2, ) = 3 fxstat(1, 3, 0x7fff2ebfc970) = 0 mmap(0, 20, 1, 2, 3) = 0x7f60cf5cd000 1 Weitere Informationen zu beiden Befehlen gibt es auf der Man-Page man strace und man ltrace bzw. unter 5

6 lseek(3, 18, 0) = 18 write(3, "\366", 1) = 1 close(3) = 0 puts("bearbeitung abgeschlossen."bearbeitung abgeschlossen. ) = exited (status 0) +++ Das Programm strace protokolliert die Syscalls, die ein Prozess absetzt. Hier ist die Ausgabe für unser Programm deutlich umfangreicher: 1 execve ( "./ t e s t ", [ "./ t e s t " ], [/ 45 vars /]) = 0 2 brk ( 0 ) = 0 x mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, 1, 0) = 0 x7f9d694b a c c e s s ( "/ e t c /ld. so. nohwcap ", F_OK) = 1 ENOENT (No such f i l e or d i r e c t o r y ) 5 mmap(null, 8192, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, 1, 0) = 0 x7f9d694b a c c e s s ( "/ e t c /ld. so. preload ", R_OK) = 1 ENOENT (No such f i l e or d i r e c t o r y ) 7 open ( "/ e t c /ld. so. cache ", O_RDONLY) = 3 8 f s t a t ( 3, { st_mode=s_ifreg 0644, s t _ s i z e =135007,... } ) = 0 9 mmap(null, , PROT_READ, MAP_PRIVATE, 3, 0) = 0 x7f9d c l o s e ( 3 ) = 0 11 a c c e s s ( "/ e t c /ld. so. nohwcap ", F_OK) = 1 ENOENT (No such f i l e or d i r e c t o r y ) 12 open ( "/ l i b / l i b c. so. 6 ", O_RDONLY) = 3 13 read ( 3, " \177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\353\1\0\0\0\0\0 "..., 832) = f s t a t ( 3, { st_mode=s_ifreg 0755, s t _ s i z e = ,... } ) = 0 15 mmap(null, , PROT_READ PROT_EXEC, MAP_PRIVATE MAP_DENYWRITE, 3, 0) = 0 x7f9d68f2c mprotect ( 0 x7f9d , , PROT_NONE) = 0 17 mmap( 0 x7f9d , 20480, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_DENYWRITE, 3, 0 x ) = 0 x7f9d mmap( 0 x7f9d , 18440, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_FIXED MAP_ANONYMOUS, 1, 0) = 0 x7f9d c l o s e ( 3 ) = 0 20 mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, 1, 0) = 0 x7f9d mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, 1, 0) = 0 x7f9d a r c h _ p r c t l (ARCH_SET_FS, 0 x7f9d694936f0 ) = 0 23 mprotect ( 0 x7f9d , 16384, PROT_READ) = 0 24 mprotect ( 0 x600000, 4096, PROT_READ) = 0 25 mprotect ( 0 x7f9d694b9000, 4096, PROT_READ) = 0 26 munmap( 0 x7f9d , ) = 0 27 open ( " d a t e i. t x t ", O_RDWR) = 3 28 f s t a t ( 3, { st_mode=s_ifreg 0666, s t _ s i z e =20,... } ) = 0 29 mmap(null, 20, PROT_READ, MAP_PRIVATE, 3, 0) = 0 x7f9d694b l s e e k ( 3, 18, SEEK_SET ) = write ( 3, " \303 ", 1) = 1 32 c l o s e ( 3 ) = 0 33 f s t a t ( 1, { st_mode=s_ifchr 0620, st_rdev=makedev ( 1 3 6, 5),... } ) = 0 34 mmap(null, 4096, PROT_READ PROT_WRITE, MAP_PRIVATE MAP_ANONYMOUS, 1, 0) = 0 x7f9d694b write ( 1, " Bearbeitung abgeschlossen.\n", 27 Bearbeitung abgeschlossen. 36 ) = exit_group ( 0 ) =? 6

7 Es ist nicht nötig, dass Sie jede Zeile im Detail verstehen. Einige Anmerkungen sollen Ihnen beim Beantworten der folgenden Fragen behilflich sein: Zeile 7: Die Datei /etc/ld.so.cache enthält eine Tabelle, mit deren Hilfe der Lader die Datei einer dynamische Bibliothek im Dateisystem lokalisieren kann. Zeile 8, 14: Die Funktion fstat() ermittelt Details zu der Datei, deren File-Descriptor als erstes Argument übergeben wurde und speichert das Ergebnis im zweiten Argument: int fstat(int filedes, struct stat *buf); Zeile 3, 5 ff.: Die Funktion mmap() blendet angegebene Teile des Inhalts von Dateien in den virtuellen Speicherbereich eines Prozesses ein. Die Signatur dazu lautet: void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t pgoffset); Zeile 12: Die Datei /lib/libc.so.6 unter Linux ist die dynamische Standardbibliothek der C-Funktionen. Sie stellt die Funktionalitäten bereit, die über Header wie <stdio.h> eingebunden werden. Beantworten Sie folgenden Fragen zur strace-ausgabe: a) Was bewirkt der Befehl execve() in Zeile 1? Was bedeuten seine Parameter? 1 Punkt Der Befehl startet das Programm./programm (1. Argument) und übergibt ihm den eigenen Namen als Parameter (2. Argument). Zusätzlich werden sämtliche gesetzten Umgebunbsvariablen an den Prozess übertragen (3. Argument). b) Aus welchem Grund öffnet der Lader die Bibliothek libc.so.6? 1 Punkt Der Lader lokalisiert damit die Datei libc.so.6 im Dateisystem. In dieser kompilierten Bibliotheksdatei befinden sich Standard-C-Funktionen, wie etwa printf, welche dieses Programm aufruft. c) Welchen Vorteile hat die Verwendung von mmap bei häufigen, wahlfreien Zugriffen auf eine Datei? 1 Punkt Lese- und Schreibzugriffe erfolgen in der sehr hohen Geschwindigkeit des Arbeitsspeichers. Ein Programm kann eine Datei in den Speicher einblenden, dort sehr viele Zugriffe ausführen und die fertig bearbeiteten Daten (falls gewünscht) wieder in die physische Datei zurückschreiben. d) Betrachten Sie die beiden Aufrufe von mmap() in Zeile 15 und 17. Woher kommt der Wert 3 im fünften Argument? Welchen Effekt haben die beiden Aufrufe vermutlich? 1,5 Punkte Die 3 ist der File-Descriptor der libc.so.6, wie er in Zeile 11 durch den Aufruf von open() an das Programm zurückgegeben wurde. Durch die beiden mmap()-befehle werden die benötigten Code-Segmente der C-Bibliothek in den Speicher des Prozesses eingeblendet. e) Wie hängen die vorletzte Zeile der ltrace-ausgabe (die mit puts beginnt) und Zeile 35 der strace-ausgabe zusammen? 1 Punkt Die ltrace-ausgabe zeigt den Aufruf der Bibliotheksfunktion puts(), während in der strace-ausgabe der Syscall write() auftaucht. Die puts()-funktion schreibt den übergebenen String mittels write() in den File-Descriptor der Standardausgabe, welcher immer 1 lautet. f) Was bedeutet das Ergebnis der Zeile 29? 1 Punkt 7

8 Dies ist der Rückgabewert des Funktionsaufrufes von mmap (im C-Code in Zeile 14). Er gibt die Speicheradresse an, ab der der Dateiinhalt in den Speicher eingeblendet ist. g) In welchem Speicherbereich (Startadresse, Endadresse) befindet sich also der Inhalt der Datei datei.txt? 1,5 Punkte 0x7f60cf5cd000 bis 0x7f60cf5cd012 Bytes (die Datei enthält 19 Zeichen) h) Was bewirken die Zeilen 30 und 31 der strace-ausgabe? 1 Punkt Die Funktion lseek setzt den Zeiger zum Bearbeiten auf das letzte Byte der Datei. Die Funktion write schreibt genau ein Ausrufezeichen an diese Stelle. i) Wie lautet nach Ausführung des Programmes der Inhalt der Datei datei.txt? 1 Punkt GdI 3 ist toll! :-) 8

Grundlagen der Informatik 3 Wintersemester 09/10. 7. Übung. Abgabe: 12.01. 18.01.2010

Grundlagen der Informatik 3 Wintersemester 09/10. 7. Übung. Abgabe: 12.01. 18.01.2010 Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 7. Übung Abgabe: 12.01. 18.01.2010 1 Präsenzübungen 1.1 Schnelltest a) Ein C-Programm wird kompiliert

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011 Grundlagen der Informatik III Wintersemester 2010/2011 Wolfgang Heenes, atrik Schmittat 12. Aufgabenblatt 07.02.2011 Hinweis: Der Schnelltest und die Aufgaben sollen in den Übungsgruppen bearbeitet werden.

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011 Grundlagen der Informatik III Wintersemester 21/211 Wolfgang Heenes, atrik Schmittat 12. Aufgabenblatt mit Lösungsvorschlag 7.2.211 Hinweis: Der Schnelltest und die Aufgaben sollen in den Übungsgruppen

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren

Mehr

Lösungsvorschlag zur 6. Übung

Lösungsvorschlag zur 6. Übung rof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 9/1 Lösungsvorschlag zur 6. Übung 1 räsenzübungen 1.1 Schnelltest a) Caches und virtueller Speicher können

Mehr

Lösungsvorschlag zur 10. Übung

Lösungsvorschlag zur 10. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 10. Übung 1 Präsenzübungen 1.1 Wissensfragen Versuchen Sie diese Aufgabe erst

Mehr

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

Mehr

Tafelübung zu BS 5. Dateioperationen

Tafelübung zu BS 5. Dateioperationen Tafelübung zu BS 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Assignment #2 Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Organisatorisches:Termine Ab Montag Tutorien 10.12.-14.12. Designdiskussionen 18.12. Abgabe Designdokument 18.1. Abgabe Implementierung

Mehr

Lösungsvorschlag zur 5. Übung

Lösungsvorschlag zur 5. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 5. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche Aussagen über Caches sind

Mehr

U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides

U23 - Shellcode. Twix Chaos Computer Club Cologne.  Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides

Mehr

Aufgabe 4 : Virtueller Speicher

Aufgabe 4 : Virtueller Speicher Sommer 216 Technische Informatik I Lösungsvorschlag Seite 16 Aufgabe 4 : Virtueller Speicher (maximal 27 Punkte) 4.1: Generelle Funktionsweise (maximal 5 Punkte) (a) (1 Punkt) Nennen Sie zwei Gründe, weshalb

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

RO-Tutorien 15 und 16

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

Mehr

Fortgeschrittene I/O

Fortgeschrittene I/O Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Signalbehandlung & MMap Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 11 29

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

Einschub: HW-Zugriff aus dem Userspace

Einschub: HW-Zugriff aus dem Userspace Einschub: HW-Zugriff aus dem Userspace Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Einschub: HW-Zugriff aus dem

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 14.3.2008 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 3. UNIX/Linux-Dateisysteme und zugehörige Systemaufrufe und Kommandos (Teil I) Wintersemester 206/7 UNIX/Linux-Dateisystem(e) Systemaufrufe zur Dateiarbeit:

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

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

Technische Informatik 1 - Übung & 22. Dezember Philipp Miedl

Technische Informatik 1 - Übung & 22. Dezember Philipp Miedl Technische Informatik 1 - Übung 11 21. & 22. Dezember 2017 Philipp Miedl Philipp Miedl 21.12.2017 22.12.2017 1 Motivation Aufteilen des Hauptspeichers auf mehrere Prozesse Philipp Miedl 21.12.2017 22.12.2017

Mehr

Betriebssysteme. Wie geht das? Andreas Galauner SigInt 2010

Betriebssysteme. Wie geht das? Andreas Galauner SigInt 2010 Betriebssysteme Wie geht das? Andreas Galauner SigInt 2010 Was ist ein Betriebssystem? DIN 44300: "Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Michael Dienert. 8. Dezember 2016

Michael Dienert. 8. Dezember 2016 C für Unverdrossene Michael Dienert 8. Dezember 2016 Vorbemerkung Natürlich könnte ich als erstes C-Programm Hello World nehmen. Um mit dem Kompiler zu spielen, kann man aber auch gleich einen sinnvolleren

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

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom

Mehr

Lösungsvorschlag zur 3. Übung

Lösungsvorschlag zur 3. Übung Prof Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik Wintersemester 09/10 1 Präsenzübungen 11 Schnelltest Lösungsvorschlag zur Übung a) Welche der folgenden Aussagen entsprechen

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

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

Klausur Betriebssysteme

Klausur Betriebssysteme Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme 5.2.2016 Die Dauer der Klausur beträgt 90 Minuten. Es sind keine Unterlagen und Hilfsmittel erlaubt. Bitte bearbeiten Sie die Aufgaben soweit wie

Mehr

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen Peter Prinz Das Übungsbuch CTestfragen und Aufgaben mit Lösungen Grundlagen Dieses Kapitel enthält grundlegende Fragen und Aufgaben zur Erstellung von C-Programmen. Hierzu gehören folgende Themen: Header-Dateien

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Der Binder Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 28. Mai 2015 Herausforderungen durch große Programme Große Programme: die meisten

Mehr

Lösungsvorschlag zur 8. Übung

Lösungsvorschlag zur 8. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 8. Übung 1 Bonuspunkteübungen Diese Übungen werden nicht in den Präsenzübungen

Mehr

Freispeicherverwaltung

Freispeicherverwaltung Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Malware-Analyse und Reverse Engineering. 10: Systemaufrufe und Tracing Prof. Dr. Michael Engel

Malware-Analyse und Reverse Engineering. 10: Systemaufrufe und Tracing Prof. Dr. Michael Engel Malware-Analyse und Reverse Engineering 10: Systemaufrufe und Tracing 1.6.2017 Prof. Dr. Michael Engel Überblick Themen: Systemaufrufe in Linux Verfolgen von Systemaufrufen: strace/ptrace Verhaltensanalyse

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Zeiger in C und C++ Zeiger in Java und C/C++

Zeiger in C und C++ Zeiger in Java und C/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 Referenztypen (Klassen und Arrays) verwendet,

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Dominik Schoenwetter Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Paging in StuBSmI 14. Mai 2018 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

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

Ulrich Stein

Ulrich Stein Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

8.1 Vom Quellcode zur ausführbaren Programm

8.1 Vom Quellcode zur ausführbaren Programm 8. Die Umgebung von C- 8.1 Vom Quellcode zur Programmausführung 8.2 Präprozessor-Anweisungen 8.3 Compiler, Assembler, Binder 8.4 Das Make-Utility 8.5 Datenübergabe vom und zum Betriebssystem 8-1 8.1 Vom

Mehr

K Ergänzungen zur Einführung in C

K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0

Mehr

Konzepte von Betriebssystemkomponenten

Konzepte von Betriebssystemkomponenten Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese Übersicht 2. Systemstart 3. Programmausführung TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14 BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS

Mehr

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann Speicher- und Cacheverwaltung unter Linux Ralf Petring & Guido Schaumann Übersicht Virtueller Adressraum Virtuelle Speicheraufteilung Reale Speicheraufteilung Speicherverwaltung Speicherzugriff Auslagerungsstrategien

Mehr

Warum funktioniert das nicht? Wie man Fehler in Linuxapplikationen findet und behebt. Einführung. LinuxFocus article number 343 http://linuxfocus.

Warum funktioniert das nicht? Wie man Fehler in Linuxapplikationen findet und behebt. Einführung. LinuxFocus article number 343 http://linuxfocus. LinuxFocus article number 343 http://linuxfocus.org Warum funktioniert das nicht? Wie man Fehler in Linuxapplikationen findet und behebt by Guido Socher (homepage) About the author: Guido mag die Möglichkeiten,

Mehr

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2) Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/

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

5. Aufgabenblatt Speicherverwaltung

5. Aufgabenblatt Speicherverwaltung Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.

Mehr

Programmiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1

Programmiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1 Programmiertechnik 1 Unit 12: Programmiersprache C - Betriebssystemschnittstellen Andreas Polze 1 Ablauf Zugriff auf Betriebssystemdienste Dateideskriptoren low-level I/O read and write open, creat, close,

Mehr

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung 3 e 3 und Explizite Synchronisation Daniel Prokesch Institut für Technische Informatik Technische Universität Wien 27. April 2015 1 2 3 e Bisher betrachtet... Implizite Synchronisation Blockierende Lese-

Mehr

Homogene Multi-Core-Prozessor-Architekturen

Homogene Multi-Core-Prozessor-Architekturen Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009

Mehr

RO-Tutorien 17 und 18

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

Mehr

Teilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester 2004/2005

Teilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester 2004/2005 Universität Mannheim Fakultät für Mathematik und Informatik Lehrstuhl für Praktische Informatik IV Prof. Dr. Wolfgang Effelsberg Teilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester

Mehr

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert

Mehr

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Grundlegende Bedeutung von Speicheradressierung: Wie sind die Daten auf Dem Speicher

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

Mehr

Speicherverwaltung in Minix

Speicherverwaltung in Minix Speicherverwaltung in Minix Speicher-Layout ausführbare Datei wird in Speicher geladen a.out-header bestimmt Gesamt-Speicherplatz Resultat: Gap zwischen Stack- und Daten-Segmenten Segment-Liste (kombinierte

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

Tafelübung zu BS 4. Dateioperationen

Tafelübung zu BS 4. Dateioperationen Tafelübung zu BS 4. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Geben

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 22.05.09 11-1 Heutige große Übung Ankündigung

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Aufgabenblatt 5 Musterlösung

Aufgabenblatt 5 Musterlösung Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 5 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Implementierung von Threads (Bearbeitung zu Hause) Der größte Vorteil ist

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Systemprogrammierung

Systemprogrammierung Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Betriebssysteme 1 BS1-F SS Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen

Betriebssysteme 1 BS1-F SS Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen BS1-F Betriebssysteme 1 SS 2016 Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen Foliensatz F: Speicherverwaltung, Paging Speichernutzung unter Linux v1.0, 2016/06/15 15.06.2016 Betriebssysteme

Mehr

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien Informatik I SS 2003 Dateioperationen 1 Textdateien, Öffnen Abspeichern und Einlesen von Texten (Strings) in Dateien 1. Das Öffnen einer Datei a) Deklaration eines Zeigers auf eine Datei FILE *pfile; b)

Mehr

Übungspaket 25 Kommandozeilenargumente

Übungspaket 25 Kommandozeilenargumente Übungspaket 25 Kommandozeilenargumente Übungsziele: Skript: 1. Umgang mit argc/argv 2. argc/argv als Schnittstelle von Programm und Betriebssystem 3. Vereinfachtes Testen mit argc/argv Kapitel: 51 und

Mehr