Übung zu Grundlagen der Betriebssysteme. 12. Übung

Größe: px
Ab Seite anzeigen:

Download "Übung zu Grundlagen der Betriebssysteme. 12. Übung"

Transkript

1 Übung zu Grundlagen der Betriebssysteme 12. Übung

2 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: , 12 Uhr (c.t.) Raum F414 Anmeldung bis über ihr KLIPS-Prüfungsverwaltungsmenü! Bei Anmeldung ist die Teilnahme verpflichtend!!! Rücktrittsmöglichkeit ist bis zum offen!!

3 Aufgabe 1 - Deadlock Bedingungen Nennen Sie die 4 (notwendigen und hinreichenden) Bedingungen zur Entstehung eines Deadlocks und erläutern Sie diese mit wenigen Worten! Notwendige Bedingungen! (Design-Entscheidung des BS) 1) Wechselseitiger Ausschluss (Mutual Exklusion) Zu einem gegebenen Zeitpunkt kann immer jeweils nur ein Prozess eine Ressource nutzen. 2) Besitzen und Warten (Hold & Wait) Ein Prozess kann auf die Zuteilung weiterer Ressourcen warten und darf dabei bereits Ressource besitzen. 3) Kein Ressourcenentzug (Non-Preemption) Ein Prozess, der im Besitz einer Ressource ist, kann diese nicht gewaltsam entzogen werden. Hinreichende Bedingung! (Situation) 4) Zyklisches Warten (Circular Wait) Es existiert eine geschlossene Kette von Prozessen, bei der jeder Prozess mindestens eine Ressource besitzt, die vom nächsten Prozess in der Kette benötigt wird!

4 Aufgabe 2 - Belegungs- und Wartegraphen Gegeben sei eine Menge von Prozessen {P1, P2, P3} und eine Menge Betriebsmitteln {R1, R2, R3}. Zeichnen Sie zu jeder Anforderungsfolge den Betriebsmittelbelegungsgraphen und den Prozesswartegraphen. (a) <P1,R3>, <P2,R2>, <P3,R1>, <P3,R2>, <P2,R1>, <P1,R1> (b) <P1,R2>, <P2,R2>, <P1,R3>, <P3,R3>, <P1,R1>, <P2, R3>, <P3,R2> (c) <P1,R1>, <P2,R2>, <P3,R3>, <P1,R2>, <P1,R3>, <P3,R2>

5 Belegungs- und Wartegraphen (a) <P1,R3>, <P2,R2>, <P3,R1>, <P3,R2>, <P2,R1>, <P1,R1>

6 Belegungs- und Wartegraphen (b) <P1,R2>, <P2,R2>, <P1,R3>, <P3,R3>, <P1,R1>, <P2,R3>, <P3,R2>

7 Belegungs- und Wartegraphen (c) <P1,R1>, <P2,R2>, <P3,R3>, <P1,R2>, <P1,R3>, <P3,R2>

8 Aufgabe 3 - Bankeralgorithmus Gegeben ist ein System mit 5 Prozessen (P1, P2, P3, P4, P5) und 4 Betriebsmitteln (A, B, C, D). Ein Teil der vorhandenen Betriebsmittel sei bereits belegt. Die Belegung ist wie folgt: Prozesse A B C D P P P P P Die Maximalanforderungen der einzelnen Prozesse sind ebenfalls bekannt. Prozesse A B C D P P P P P Von den Betriebsmitteln A,B,C und D stehen jeweils noch die folgenden Einheiten zur Verfügung. A B C D

9 Bankeralgorithmus a) Wie viele Einheiten an Betriebsmitteln (A,B,C,D) besitzt das System jeweils insgesamt? Prozesse A B C D P P P P P frei: A B C D A B C D

10 Bankeralgorithmus b) Ermitteln Sie die ausstehenden Restanforderungen an Betriebsmittel der einzelnen Prozesse! Prozesse A B C D P1 P2 P3 P4 P5 belegt/max Prozesse A B C D P1 0/0 0/0 1/1 2/2 P2 1/1 0/7 0/5 0/0 P3 1/2 3/3 5/5 4/6 P4 0/0 6/6 3/5 2/2 P5 0/0 0/6 1/5 4/6

11 Bankeralgorithmus c) Befindet sich das System in einem sicheren Zustand? Begründen Sie! belegt/max -> need Prozesse A B C D P1 0/0 -> 0 0/0 -> 0 1/1 -> 0 2/2 -> 0 P2 1/1 -> 0 0/7 -> 7 0/5 -> 5 0/0 -> 0 P3 1/2 -> 1 3/3 -> 0 5/5 -> 0 4/6 -> 2 P4 0/0 -> 0 6/6 -> 0 3/5 -> 2 2/2 -> 0 P5 0/0 -> 0 0/6 -> 6 1/5 -> 4 4/6 -> 2 A B C D frei Prozesse A B C D

12 Bankeralgorithmus Sichere und Unsichere Zustände: Ein Zustand ist sicher, wenn sich von diesem Zustand aus mit den derzeit freien (d.h. von keinem Prozess belegten) Betriebsmitteln und den Betriebsmitteln, die nach der Terminierung von Prozessen freigegeben werden, die Betriebsmittelanforderungen aller Prozesse, die sich derzeit im System befinden, erfüllt werden können. Kurz: alle aktuellen Prozesse können alle Betriebsmittel, die sie bis zu ihrer Terminierung benötigen, zugeteilt bekommen, ihre Aufgabe erfüllen und dann terminieren. Es gibt mindestens eine sichere Sequenz gibt, in der alle aktuellen Prozesse abgearbeitet (also ihre Anforderungen erfüllt) werden können. In diesem Fall gilt für jeden Prozess P k einer solchen Frequenz P 1,..., P n, dass dessen Betriebsmittelanforderungen mit den vorher schon freien zuzüglich der vom Vorgängerprozess P k-1 freigegebenen Betriebsmittel erfüllt werden konnten.

13 Bankeralgorithmus Rückblick (Banker-Beispiel)

14 Bankeralgorithmus d) Prozess P2 stellt eine Anfrage nach weiteren Betriebsmittel (A,B,C,D) über (0,4,2,0). Überprüfen Sie, ob die Anfrage vom System erfüllt werden kann. Prozesse A B C D P1 belegt/max 0/0 -> 0 0/0 -> 0 1/1 -> 0 2/2 -> 0 P2 (1+0)/1 -> 0 (0+4)/7 -> 7 (0+2)/5 -> 5 (0+0)/0 -> 0 P3 1/2 -> 1 3/3 -> 0 5/5 -> 0 4/6 -> 2 P4 0/0 -> 0 6/6 -> 0 3/5 -> 2 2/2 -> 0 P5 0/0 -> 0 0/6 -> 6 1/5 -> 4 4/6 -> 2 A B C D frei Prozesse A B C D

15 Aufgabe 4 First-Fit: Segmentliste wird von Anfang an, aufsteigend durchsucht, bis ein Loch gefunden wurde, das groß genug ist. Vorteil -> sehr schnell Next-Fit: Wie First-Fit jedoch Start nicht immer von Anfang an, sondern von der letzten Stelle an der ein passendes Loch gefunden wurde Vorteil -> geringfügig schneller als First-Fit

16 Aufgabe 4 Best-Fit: Durchsucht die gesamte Liste und nimmt das kleinste passende Loch, welches am dichtesten an der Größe des Prozesses liegt. Nachteil -> ist langsamer als Next- & First-Fit Algorithmus tendiert dazu den Speicher mit kleinen nicht mehr brauchbaren Löchern zu belegen. Worst-Fit: Wie Best-Fit durchsucht die Segmentliste jedoch noch den größten Löchern, welche am weitesten von der Prozessgröße liegen. Nachteil -> ist langsamer als Next & First Fit -> wie Best Fit Allerdings wird der Speicher nicht mit kleinen Löchern belegt. Verbesserungen: - Verwaltung getrennter Listen für Prozesse und Löcher -> Allokation von Speicherplatz schneller, aber Deallokation langsamer, da zwei Listen abgeglichen werden müssen. - Liste der Löcher wird nach Größe sortiert. Erfordert Sortieraufwand. Best-Fit (Worst-Fit) und First-Fit sind in diesem Fall gleich gut.

17 Aufgabe 4 - Gegeben sei ein Swapping System, dessen Speicher folgende Lochgrößen aufweist, diese sind in der angegebenen Reihenfolge Lokalisiert: 10KB, 4KB, 20KB, 18KB, 7KB, 9KB, 12KB, 15KB. Geben Sie die Größe der freien Speicherblöcke an, wenn folgende Speicherblöcke sukzessive (in der hier angegebenen Reihenfolge) angefordert werden: 12KB, 10KB, 15KB. Betrachten Sie folgende Algorithmen: Best-fit, Next-fit, First-fit und Worst-fit. Löcher 10KB 4KB 20KB 18KB 7KB 9KB 12KB 15KB Best-fit Next-fit First-fit Worst-fit

18 Interne Fragmentierung Werden Speicherbereiche reserviert und zugeordnet, von denen aufgrund der Anforderung nicht alles genutzt wird, gilt der Rest als vergeudet es sei denn, der Prozess wird in die Richtung wachsen. Man spricht hier von interner Fragmentierung des Speichers. Innerhalb der von der Speicherverwaltung vorgegebenen Größen kommt es zur Auflockerung der Nutzung!

19 Externe Fragmentierung Werden bei der Speicherplatzvergabe Bereiche definiert, die nicht mehr durch größere Anwendungen genutzt werden können, spricht man von externer Fragmentierung, also der Zerstückelung des kontinuierlichen Speicherbereichs in nur im Kleinen zu nutzenden Einheiten. Abhilfe schafft hier eine zeitintensive Verdichtung

20 Buddy System Möglich kontinuierlich Speicherbereiche zu reservieren und Anwendungen zu zuordnen wichtig um z.b. Bestandteile oder Module des Kernels nachzuladen. Grundidee: ausnutzen binär-orientierter Partitionen um geeignet große Speicherbereiche zu finden. anschließende Beschleunigung der Verschmelzung angrenzender Löcher. elementare Einheit Seite des Paging-Verfahrens. Java-Applet:

21 Buddy System Verfahren: Speicherverwaltung verwaltet Listen von freien Blöcken der Größe 1, 2, 4, 8, 16, 32,... bis zur Größe des Speichers. Bei 512 MB Speicher werden auf diese Weise 30 Listen benötigt. Zu Beginn gibt es nur die 512 MB Liste mit einem einzigen Eintrag, stellt den gesamten Speicher als freien Bereich dar. Alle anderen Listen sind anfänglich leer. Vorteil des Verfahrens: Wird ein Buddy der Größe 2 K freigegeben, muss nur in der Liste mit Löcher der Größe 2 K nach einer Verschmelzung gesucht werden. Bei Verfahren die beliebige Verschmelzungen erlauben müssen alle Löcher überprüft werden Nachteil: Ineffizient in der Speicherausnutzung 35KB Prozess alloziiert 64KB und verschendet 29KB interne Fragmentierung Löcher auf die zugegriffen werden kann externe Fragmentierung

22 Buddy System

23 Buddy System

24 Buddy System Ein Prozess X (X11) mit Speicherplatzanforderung von 17,5 MB soll in den 512 MB (1) großen Speicher eingelagert werden. Da die Segmente in der Größe von Zweierpotenzen arrangiert sind, werden 32 MB benötigt. Das führt zur Zersplitterung des Rests in die freien Blöcke 32, 64, 128 und 256 MB. (2) Wird daraufhin ein Terminalfenster (xterm) geöffnet, verlangt der entstehende Prozess T nach 2,05 MB Speicher. Der ist nur nach Aufsplittung des 32er Blockes in viele kleine Teile zu erhalten. Nun wird der Prozess F (Firefox) mit 30 MB gestartet. Er sucht und findet ein 64 MB (3) großes Segment, welches in zwei Segmente mit je 32 MB zerteilt wird. Der Prozess S (StarOffice) benötigt aufgrund seiner Anforderung von 36 MB einen 64 MB (4) Block und splittet den freien 128er in zwei Teile. Gimp mit 22,5 MB lagert sich als Prozess G in den freien 64er Block ein und lässt wieder (5) einen freien 32er Block entstehen. Das Beenden von Firefox erlaubt das Verschmelzen der nebeneinander liegenden 32er- (6) Buddies zu einem 64er. Dagegen erlaubt die Freigabe des 4 MB xterms nur ein Verschmelzen der umliegenden Blöcke bis zur Zweierpotenz 32, nicht aber das Zusammenlegen mit dem daneben liegenden 64er und auch nicht mit dem noch freien 32er Buddy neben Gimp. Wird StarOffice beendet so wird ebenfalls lediglich der 64er Block freigegeben. (7) Sobald Gimp beendet wird, können die beiden 32er Blöcke miteinander verschmolzen (8) werden. Anschließend können die beiden 64er Blöcke zu einem 128er Block verschmolzen werden.

25 Buddy System

26 Buddy System

27 Buddy System

28 Buddy System

29 Buddy System

30 Buddy System

31 Aufgabe 5 - Gegeben ist das C-Programm matrix.c und zwei Textdateien test1.txt und test2.txt, welche Sie auf der Webseite der Übung finden. Das Programm matrix.c öffnet eine angegebene Datei (test1.txt), welche eine 3x3 Matrix enthalten sollte und gibt diese anschließend auf der Konsole aus. Laden Sie das Programm matrix.c und die Dateien test1.txt und test2.txt in die Linux-Umgebung ihrer Bearbeitungsgruppe. Kompilieren Sie das Programm dort mit gcc -o matrix matrix.c und starten Sie es mit./matrix test1 &. Das Programm beendet sich nicht, sondern läuft im Hintergrund weiter (zusehen über ps -elf ). a) Das Linux Programm lsof (list open files) zeigt Informationen über geöffnete Dateien im Betriebssystem Linux an. Welche Informationen bekommen sie angezeigt, wenn sie nach dem Start von./matrix test1 & den Befehl lsof test1.txt eingeben? Geben Sie die Ausgabe mit einer kurzen Erläuterung der wichtigsten Informationen hier an.

32 Aufgabe 5 - Das Programm lsof (list open files) zeigt geoffnete Dateien, Verzeichnisse, Unixsockets, IPSockets und Pipes an. $./test test1.txt & $ ps -elf 0 R root :18 pts/0 00:00:05./test test1.txt $ lsof test1.txt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME test 935 root 3r REG 8, test1.txt

33 Aufgabe 5 - Das Programm lsof (list open files) zeigt geoffnete Dateien, Verzeichnisse, Unixsockets, IPSockets und Pipes an. alle Dateien und Netzverbindungen, die ein bestimmter Prozess geöffnet hat, alle Prozesse, die eine bestimmte Datei oder Netzverbindung geöffnet haben oder die Namen aller Prozesse, die auf eine Netzverbindung warten. COMMAND Befehl/Programm PID Process ID USER - Benutzer FD File Descriptor TYPE Typ, REG reguläre Datei, DIR Verzeichnis, FIFO pipe, usw... DEVICE Gerat/Partition, auf dem die Datei liegt. SIZE/OFF z.b. Größe der Datei, manche Einträge haben keine größe, z.b. Pipes (OFFSET) NODE Inode Nummer -> index node -> Verweis auf die Datei NAME Name der Datei

34 Aufgabe 5 - b) Erweitern Sie das Programm matrix.c zu matrixmul.c. Dabei sollen zwei Textdateien (test1.txt und test2.txt) eingelesen werden. Die beiden Dateien enthalten jeweils eine 3x3 Matrix welche miteinander multipliziert werden sollen. Die Ergebnismatrix soll in eine neue Datei mit Namen result.txt geschrieben werden.

35 Aufgabe 5-1. Beispiel //Gruppe: bloomfield #include <stdio.h> main(int argc, char *argv[]) { //Variablen ========================================================= FILE *infpt; int Matrix1[3][3]; int Matrix2[3][3]; int Matrix3[3][3]; int i, j; char *file1, *file2; //Parameter abspeichern ============================================ if(argc<3){ printf("\nerror: Need two Files as argument.\n"); return; } else { file1 = argv[1]; file2 = argv[2]; }

36 Aufgabe 5-1. Beispiel //Parameter abspeichern ============================================ if(argc<3){ } else { } printf("\nerror: Need two Files as argument.\n"); return; file1 = argv[1]; file2 = argv[2]; //Matrizen initialisieren ========================================== for (i = 0; i < 3; i++) } for (j = 0; j < 3; j++) { Matrix1[i][j] = 0.0; Matrix2[i][j] = 0.0; Matrix3[i][j] = 0.0;

37 Aufgabe 5-1. Beispiel //erste Matrix einlesen infpt = fopen(file1,"r"); if(infpt == NULL) { printf("\nerror: File couldn't be opened (1).\n"); return; } for(j = 0; j < 3; j++) for(i = 0; i < 3; i++) fscanf(infpt, "%d",&matrix1[j][i]); //zweite Matrix einlesen infpt = fopen(file2,"r"); if(infpt == NULL) { printf("\nerror: File couldn't be opened (1).\n"); return; } for(j = 0; j < 3; j++) for(i = 0; i < 3; i++) fscanf(infpt, "%d",&matrix2[j][i]);

38 Aufgabe 5-1. Beispiel //Multiplikation =================================================== //1.Zeile Matrix3[0][0] = Matrix1[0][0]*Matrix2[0][0] + Matrix1[0][1]*Matrix2[1][0] + Matrix1[0][2]*Matrix2[2][0]; Matrix3[0][1] = Matrix1[0][0]*Matrix2[0][1] + Matrix1[0][1]*Matrix2[1][1] + Matrix1[0][2]*Matrix2[2][1]; Matrix3[0][2] = Matrix1[0][0]*Matrix2[0][2] + Matrix1[0][1]*Matrix2[1][2] + Matrix1[0][2]*Matrix2[2][2]; //2.Zeile Matrix3[1][0] = Matrix1[1][0]*Matrix2[0][0] + Matrix1[1][1]*Matrix2[1][0] + Matrix1[1][2]*Matrix2[2][0]; Matrix3[1][1] = Matrix1[1][0]*Matrix2[0][1] + Matrix1[1][1]*Matrix2[1][1] + Matrix1[1][2]*Matrix2[2][1]; Matrix3[1][2] = Matrix1[1][0]*Matrix2[0][2] + Matrix1[1][1]*Matrix2[1][2] + Matrix1[1][2]*Matrix2[2][2]; //3.Zeile Matrix3[2][0] = Matrix1[2][0]*Matrix2[0][0] + Matrix1[2][1]*Matrix2[1][0] + Matrix1[2][2]*Matrix2[2][0]; Matrix3[2][1] = Matrix1[2][0]*Matrix2[0][1] + Matrix1[2][1]*Matrix2[1][1] + Matrix1[2][2]*Matrix2[2][1]; Matrix3[2][2] = Matrix1[2][0]*Matrix2[0][2] + Matrix1[2][1]*Matrix2[1][2] + Matrix1[2][2]*Matrix2[2][2];

39 Aufgabe 5-1. Beispiel //Ausgabe =========================================================== //Datei vorbereiten infpt = NULL; if((infpt = fopen("result.txt", "w+")) == NULL) { printf("error opening result.txt\n"); return -1; } //Matrix 1 //Matrix 2 //Matrix 3 printf("3. Matrix:\n"); for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { fprintf(infpt,"%d ",Matrix3[i][j]); printf("%d ",Matrix3[i][j]); } fprintf(infpt,"\n"); putchar('\n'); } fclose(infpt);

40 Aufgabe 5-2. Beispiel for(j = 0; j < 3; j++) for(i = 0; i < 3; i++) { fscanf(infpt1, "%d",&matrix1[j][i]); fscanf(infpt2, "%d",&matrix2[j][i]);} //Matrix-Multiplikation for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { for (k=0; k<3; k++) {(Matrix3[i][j]=Matrix3[i][j]+Matrix1[i][k]*Matrix2[k][j]);} } }

41 Aufgabe 5-2. Beispiel for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { printf("%d ",Matrix3[i][j]); //stdout -> Konsole fprintf(out,"%4d", Matrix3[i][j]); //Datei } putchar('\n'); //stdout -> Konsole fputs("\n", out); //Datei }

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Übung zu Grundlagen der Betriebssysteme. 11. Übung Übung zu Grundlagen der Betriebssysteme 11. Übung 08.01.2012 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: 05.02.2013 Raum F414 (steht aber noch nicht sicher fest) Anmeldung

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

Mehr

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen Inhaltsverzeichnis 4.1 Systemmodell und notwendige Bedingungen Was sind Deadlocks? Darstellungsarten von Prozessabhängigkeiten Notwendige Bedingungen für Deadlocks 4.2 Gegenmaßnahmen Deadlock-Prevention

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Probeklausur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Grundlagen Algorithmen und Datenstrukturen Kapitel 13

Grundlagen Algorithmen und Datenstrukturen Kapitel 13 Grundlagen Algorithmen und Datenstrukturen Kapitel 13 Christian Scheideler + Helmut Seidl SS 2009 18.07.09 Kapitel 6 1 Speicherverwaltung Drei Ansätze: Allokiere neue Objekte auf einem Keller. Gib nie

Mehr

Speicherverwaltung (Swapping und Paging)

Speicherverwaltung (Swapping und Paging) Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente

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

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Kapitel V Deadlocks (Verklemmungen) 1 Deadlocks System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Prozesse benötigen Genehmigung vor der Benutzung von Ressourcen.

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 31.01.08 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches Anmeldung Hauptklausur : allerspätestens

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm E 3. Übung E 3. Übung Besprechung 1. Aufgabe Aufgabe 3: malloc Debugger gdb E.1 1. Include, Deklarationen #include #include void append_element(int value); int remove_element(void);

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben).

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

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

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Linux-Einführung Übung

Linux-Einführung Übung Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.

Mehr

Wie man eigene Programme erstellt

Wie man eigene Programme erstellt Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

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

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

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

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem Betriebssysteme WS 2004/05 Deadlocks Christoph Lindemann Fahrplan 14.10. Organisation der Vorlesung, Einführung in Betriebssysteme 21.10. Strukturen von Betriebssystemen 28.10. Prozesse und Threads 4.11.

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2012/2013

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2012/2013 Name: Matrikelnummer: Studiengang: INF CV IM Lehramt BSc MSc BEd MEd Diplom Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2012/2013 Dienstag, den 05. Februar 2013 Prof. Dr. Hannes Frey, Dipl.

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 7: Matrizen, Vektoren und dynamische Speicherverwaltung Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg

Mehr

Tafelübung zu BS 4. Speicherverwaltung

Tafelübung zu BS 4. Speicherverwaltung Tafelübung zu BS 4. Speicherverwaltung 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

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Übersicht UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Die in diesem Teil vorgestellten Informationen stellen lediglich das Prinzip dar - im Detail ist alles etwas komplizierter...

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1 Systeme 1 Kapitel 3 Dateisysteme WS 2009/10 1 Letzte Vorlesung Dateisysteme Hauptaufgaben Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien Kleinste logische Einheit eines Dateisystems Dateitypen

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 13.01.2015 1 Klausur Termin: 10. März 2016, 13:00 Uhr Raum: Audimax, KG 2 4 ECTS Punkte 3 Klausuranmeldung Anmeldefrist: 31.01.2016 (Ausnahme:

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................

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

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double. Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 4.7.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

Anzeigen des Ereignisprotokolls (Windows) Anzeigen aller Fehler im Anwendungsprotokoll (Windows)

Anzeigen des Ereignisprotokolls (Windows) Anzeigen aller Fehler im Anwendungsprotokoll (Windows) 1. Shellprogrammierung (17.10.) Jeweils unter cmd und Powershell Öffnen einer Konsole Anzeigen des aktuellen Verzeichnisses Anzeigen der Dateien im Verzeichnis c:\windows\system32 Seitenweises Anzeigen

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 11.01.2017 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

Installation DV4mini ausgehend von einem frisch installierten System:

Installation DV4mini ausgehend von einem frisch installierten System: Installation DV4mini ausgehend von einem frisch installierten System: DJ0ABR/6.08.2015 Ubuntu 12.04 LTS: 1. Image Ubuntu 12.04 LTS auf dem PC installieren. Zum Testen habe ich die Desktop Version von dieser

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) DATEIVERWALTUNG STANZL Martin 4. HB/a Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) INHALTSVERZEICHNIS 1. Die Aufteilung des Plattenspeichers... 2 2. Der Aufbau von Dateien... 2 3.

Mehr

Lösungsvorschlag zum 1. Übungsblatt Betriebssysteme

Lösungsvorschlag zum 1. Übungsblatt Betriebssysteme UNIVERSITÄT ULM Fakultät für Informatik Verteilte Systeme 'U0LFKDHO6FK WWQHU zum 1. Übungsblatt Betriebssysteme $XIJDEH6SHLFKHUYHUZDOWXQJ/LQX[ :LQGRZV173XQNWH In dieser Aufgabe sollen Sie sich mit den

Mehr

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Speicherverwaltung Aufgaben der Speicherverwaltung wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Sowohl die ausführbaren Programme selbst als auch deren Daten werden in verschiedenen Speicherbereichen

Mehr

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen

Mehr

Praxis der Programmierung

Praxis der Programmierung Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

Mehr

Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement

Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement Max Haslbeck Technische Universität München 20.01.2015 Zusammenfassung 1 Einleitung 2 Begriffsklärung Heutzutage

Mehr

Definitionen zum Verschnitt

Definitionen zum Verschnitt Definitionen zum Verschnitt Die absoluten Größen haben eine Einheit. Beim Bilden der Verhältnisgrößen wird die Einheit gekürzt. Man kann bei den Verhältnisgrößen die Größe durch die Anzahl vorgegebener

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 11. Ausnahmebehandlung Vor-Ort Fehlerbehandlung Seite 2 Struktur (benötigt iostream und fstream header) std::ifstream

Mehr

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe

Mehr

7. Speicherverwaltung

7. Speicherverwaltung 7. Speicherverwaltung Ziele Zuteilung des Arbeitsspeicher Abbildung der symbolischen Adresse auf die physikalische Adresse Adress-Transformation Symbolische Adresse verschiebbare Adresse physikalische

Mehr

Prozessor (CPU, Central Processing Unit)

Prozessor (CPU, Central Processing Unit) G Verklemmungen G Verklemmungen Einordnung: Prozessor (CPU, Central Processing Unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen (Interfaces) Hintergrundspeicher

Mehr

Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P)

Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Zum Selbststudium Foliensatz 0 Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P) Dr. Thomas Schaaf,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. Zeiger Allgemeines Definition eines Zeigers 6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.

Mehr

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren Institut für Informatik Alina Barendt und Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 4: Viren 1 Vorbereitung msg db "Virus" mov ah, 40h mov bx, 1 mov cx, $5 mov dx, msg int 21h ; Write

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis Einführung Einführung in in Betriebssysteme Betriebssysteme und und Theorie und Praxis Theorie und Praxis Oktober 2006 Oktober 2006 Prof. Dr. G. Hellberg Prof. Dr. G. Hellberg Email: hellberg@drhellberg.de

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr

Dateizugriff unter C

Dateizugriff unter C Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur zur Vorlesung Grundlagen der Betriebssysteme Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.

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

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

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

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher Probeklausur: BTI2 / Programmieren I Prüfer Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher 1. Aufgabe Was gibt das im folgenden angegebene Programm bei seiner Ausführung auf den

Mehr

Betriebssysteme - Deadlocks

Betriebssysteme - Deadlocks Betriebssysteme - Deadlocks alois.schuette@h-da.de Version: (8c45d65) ARSnova 19226584 Alois Schütte 23. März 2016 1 / 41 Inhaltsverzeichnis Dieser Teil erörtert das Problem von Deadlocks (Verklemmungen):

Mehr

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme Kapitel 5 Verklemmungsprobleme 221 Verklemmungsprobleme Betriebsmittel A 1 Betriebsmittel E 4 Betriebsmittel B Betriebsmittel D 5 2 Betriebsmittel C 3 Beispiel: A P(MBand) P(Drucker) B : : V(Drucker) V(MBand)

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 Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 1. Das Objekt Bruch mit einem Standardkonstruktor (initialisieren mit 0), einem allgemeinen Konstruktor (Zähler und Nenner können beliebig vorgegeben

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

10 Lesen und Schreiben von Dateien

10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 135 10.1 Mit load und save Binäre Dateien Mit save können Variableninhalte binär im Matlab-Format abgespeichert werden. Syntax: save

Mehr

Geräteverwaltung: Einführung

Geräteverwaltung: Einführung Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller

Mehr

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei

Mehr

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Verbessertes Konzept: Monitore

Verbessertes Konzept: Monitore Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.

Mehr

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( 6 Ein- und Ausgabe Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( Drucken war hoffnungslos übertrieben); heute lernen wir, wie wir die Ergebnisse unserer Programme abspeichern können, um sie

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/A-Funktionalität nicht Teil der Programmiersprache C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Sammelrechnungen mit IOS2000/DIALOG

Sammelrechnungen mit IOS2000/DIALOG Sammelrechnungen mit IOS2000/DIALOG Version Oktober 2012 ab Betaversion 1.11.16 / basisgetestet ab 1.12.0. Grundlegende Änderungen gegenüber der alten Sammelrechungsroutine jeder neue Lieferschein bekommt

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

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr