PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
|
|
- Anna Lorenz
- vor 5 Jahren
- Abrufe
Transkript
1 PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation ( Nachrichtenwarteschlangen ) Wintersemester 201/17
2 Message Queues: Systemaufrufe msgget(...) legt neue Message Queue an oder greift auf existierende Message Queue zu msgsnd(...) fügt Nachricht in Message Queue ein ( message send ) msgrcv(...) entnimmt Nachricht aus einer Message Queue ( message receive ) msgctl(...) [ cotrol ] führt verschiedene Operationen (insbesondere an Verwaltungsstruktur) einer Message Queue aus; u.a. auch Löschen der gesamten Message Queue Wäscheleinen -Modell msgget erzeugt Wäscheleine hängt Wäschestücke auf msgsnd msgrcv entnimmt Wäschestücke ws 201/17 H.-A. Schindler Folie: 5-2
3 Message Queues: msgget(..) legt neue Message Queue an oder greift auf existierende Message Queue zu Verwendung im Programm (Prinzip): int <id_q>; <id_q> = msgget(<key>, <flag>); Konkretes Beispiel: int id; id = msgget(ipc_private, IPC_CREAT 044); Variable Symbol Typ Bedeutung Wert Interpretation <id_q> int Rückkehrwert 0 O.K. auf <id_q>: Identifikator der Warteschlange -1 Feh- Systemaufruf fehlgeschlagen ler <key> long numerischer bei Eintrag: IPC_PRIVATE wird Schlüssel Schlüssel durch UNIX/L. selbst erzeugt (siehe auch nachfolgende Hinweise) ws 201/17 H.-A. Schindler Folie: 5-3
4 Message Queues: msgget(..) legt neue Message Queue an oder greift auf existierende Message Queue zu Verwendung im Programm (Prinzip): int <id_q>; <id_q> = msgget(<key>, <flag>); Konkretes Beispiel: int id; id = msgget(20, IPC_CREATE 044); Variable Symbol Typ Bedeutung Wert Interpretation <flag> int Parameterwerte Beispieleintrag: IPC_CREAT 044 Anlegen neuer Warteschlange mit Zugriffsrechten: rw r--r-- wichtig: Zugriffsrechte unbedingt spezifizieren!!! Beispieleintrag: 0 (Null) Zugriff auf vorhandene Warteschlange ws 201/17 H.-A. Schindler Folie: 5-4
5 Schlüssel <key> Bei jedem Erzeugen einer Verwaltungsstruktur msqid_ds durch msgget(..) muss im Parameter <key> ein Schlüssel angegeben werden. Dieser hat Systemdatentyp key_t, der meist in der Header-Datei <sys/types.h> als long int definiert ist. Schlüssel wird vom Betriebssystemkern in Bezeichner umgewandelt. Hinweise: <key> ist Identifikator für Warteschlange bei Festlegung durch Nutzer: z.b. ganzzahligen Wert eintragen Für Arbeit mehrerer Prozesse mit gleicher Warteschlange: gleichen <key> verwenden! ws 201/17 H.-A. Schindler Folie: 5-5
6 Message Queues: msgsnd(..) fügt Nachricht in Message Queue ein ( SENDEN ) Verwendung im Programm (Prinzip): Konkretes Beispiel: int <result>; <result>= msgsnd(<id_q>, <ptr>, <size>, <flag>); int x; x = msgsnd(idq, &msg, MSGSIZE, IPC_NOWAIT); Variable Symbol Typ Bedeutung Wert <result> int Interpretation Rückkehrwert > 0 O.K. Systemaufruf erfolgreich -1 Feh- Systemaufruf fehlgeschlagen ler <id_q> int Identifikator der Warteschlange (= Rückkehrwert von msgget(..) ) ws 201/17 H.-A. Schindler Folie: 5 -
7 Message Queues: msgsnd(..) fügt Nachricht in Message Queue ein ( SENDEN ) Verwendung im Programm (Prinzip): Int <result>; <result> = msgsnd(<id_q>, <ptr>, <size>, <flag>); Variable Symbol Typ <ptr> *struct Bedeutung Zeiger (pointer) auf die Nachricht <size> int Länge der Nachricht (ohne Typfeld) <flag> int Steuerparameter für Nachrichten- Einfügevorgang Konkretes Beispiel: int x; x = msgsnd(idq, &msg, MSGSIZE, IPC_NOWAIT); Interpretation bzw. Parameterwerte Beispieleintrag:IPC_NOWAIT bei voller Warteschlange kehrt Auftrag sofort zurück (asynchrones Verhalten) Beispieleintrag:0 (Null) bei voller Warteschlange Blockierung bis wieder Platz vorhanden (synchrones Verhalten) ws 201/17 H.-A. Schindler Folie: 5-7
8 Message Queues: msgrcv(..) entnimmt Nachricht aus Message Queue ( Empfangen receive ) Verwendung im Programm (Prinzip): int <result>; <result>= msgrcv(<id_q>, <ptr>, <size>, <type>, <flag>); Konkretes Beispiel: int x; x = msgrcv(idq, &msg, MSGSIZE, 5, IPC_NOWAIT); Variable Symbol Typ Bedeutung Wert Interpretation <result> int Rückkehrwert > 0 O.K. Systemaufruf erfolgreich <id_q> int Identifikator der Warteschlange (= Rückkehrwert von msgget(..) ) -1 Feh- Systemaufruf fehlgeschlagen ler ws 201/17 H.-A. Schindler Folie: 5-8
9 Message Queues: msgrcv(..) entnimmt Nachricht aus Message Queue ( Empfangen receive ) Verwendung im Programm (Prinzip): Konkretes Beispiel: int <result>; <result> = msgrcv(<id_q>, <ptr>, <size>, <type>, <flag>); Variable Symbol Typ <ptr> *struct Bedeutung Zeiger zu Aufnahmebereich für Nachricht <size> int Länge der Nachricht (ohne Typfeld) <type> int Steuerparameter für Nachrichten- Entnahmevorgang int x; x = msgrcv(idq, &msg, MSGSIZE, 5, IPC_NOWAIT); Interpretation bzw. Parameterwerte mögliche Einträge: 0 erste Nachricht >0 erste Nachricht dieses Typs <0 erste Nachricht des niedrigsten Typs <= type ws 201/17 H.-A. Schindler Folie: 5-9
10 Message Queues: msgrcv(..) entnimmt Nachricht aus Message Queue ( Empfangen receive ) Verwendung im Programm (Prinzip): int <result>; <result> = msgrcv(<id_q>, <ptr>, <size>, <type>, <flag>); Konkretes Beispiel: int x; x = msgrcv(idq, &msg, MSGSIZE, 5, IPC_NOWAIT); Variable Symbol Typ Bedeutung <flag> int Steuerparameter für Nachrichten- Entnahmeprozess Interpretation bzw. Parameterwerte Beispieleintrag:IPC_NOWAIT wenn keine passende Nachricht, kehrt Auftrag sofort zurück (asynchrones Verhalten) Beispieleintrag:0 (Null) wenn keine passende Nachricht, Blockierung bis passende Nachricht eintrifft (synchrones Verhalten) Hinweise: Message-<type> kann z.b. genutzt werden, um an unterschiedliche Klienten zu senden (allgemein: Trennen von Nachrichten verschiedener Typen ) ws 201/17 H.-A. Schindler Folie: 5-10
11 Beispielprogramm send.c #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define MSGSIZE 40 struct message{ long msgtype; char msgtext[msgsize]; }; charmessagetext[]="this is my message: Winter is coming now."; ws 201/17 H.-A. Schindler Folie: 5-11
12 Beispielprogramm send.c 9 main() { int id_q; struct message msg_snd; int result_snd; int i; id_q = msgget(10, IPC_CREAT 0700 ); printf("id_q = %d\n", id_q); msg_snd.msgtype = 5; for (i=0; i<=40; i++) msg_snd.msgtext[i]=messagetext[i]; } result_snd = imsgsnd( d_q, &msg_snd, MSGSIZE, IPC_NOWAIT ); printf("result_snd = %d\nnachricht:\n%40s\n", result_snd, \ msg_snd.msgtext); ws 201/17 H.-A. Schindler Folie: 5-12
13 #include-dateien Message Queues benötigen: #include <stdio.h> // zur Ausführung von E/A-Operationen #include<sys/types.h> // wegen der Definition spezieller Datentypen // siehe z.b. in den Datenstrukturen semid_ds // und sem #include<sys/ipc.h> // allgemeine Definitionen für UNIX-IPC #include <sys/msq.h> // spezielle Definitionen zu Message Queues ws 201/17 H.-A. Schindler Folie: 5-13
14 Beispielprogramm receive.c #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define MSGSIZE 40 struct message{ long msgtype; char msgtext[msgsize]; }; ws 201/17 H.-A. Schindler Folie: 5-14
15 Beispielprogramm receive.c 9 main() { } int id_q; struct message msg_rcv; int result_rcv; id_q= msgget( 10, 0 ); printf("id_q = %d\n", id_q); result_rcv = msgrcv(id_q, &msg_rcv, MSGSIZE, 5, IPC_NOWAIT); printf("result_rcv = %d\nnachricht:\n%40s\n", result_rcv, \ msg_rcv.msgtext); ws 201/17 H.-A. Schindler Folie: 5-15
16 Struktur msqid_ds zu jeder Message Queue gehört Verwaltungsstruktur msqid_ds enthält alle Meta-Daten der Message Queue struct msqid_ds{ structipc_perm msg_perm; /* Zugriffsberechtigungen, Eigentümer, Gruppe etc. */ structmsg *msg_first; /* Zeiger auf erste Nachricht */ structmsg *msg_last; /* Zeiger auf letzte Nachricht */ unsignedlongmsg_cbytes; /* Anzahl der Bytes in der Warteschlange */ unsigned long msg_qnum; /* Anzahl der Nachrichten in der Warteschlange */ unsignedlongmsg_qbytes; /* Maximalzahl an Byte in der Warteschlange */ pid_t msg_lspid; /* Prozess-Nr. für letztes msgsnd(..) */ pid_t msg_lrpid; /* Prozess-Nr. für letztes msgrcv(..) */ }; time_t msg_stime; /* Zeit des letzten msgsnd(..) */ time_t msg_rtime; /* Zeit des letzten msgrcv(..) */ time_t msg_ctime; /* Zeit, zu der diese Struktur zuletzt geändert wurde */ ws 201/17 H.-A. Schindler Folie: 5-1
17 Struktur ipc_perm ( ipc permissions ) spezifiziert Zugriffsrechte struct ipc_perm{ uid_t uid; /* effektive Benutzernummer des Eigentümers */ gid_t gid; /* effektive Gruppennummer des Eigentümers */ uid_t cuid; /* effektive Benutzernummer des Erzeugers */ gid_t cgid; /* effektive Gruppennummer des Erzeugers */ }; mode_t mode; /* Zugriffsmodus */ unsignedlong seq; /* Zähler der Verwendung der IPC-Struktur */ key_t key; /* Schlüssel */ ws 201/17 H.-A. Schindler Folie: 5-17
18 Message Queues: msgctl(..) ( control ) Ausführung verschiedener Operationen auf Message Queue Verwendung im Programm (Prinzip): int <result>; <result>= msgctl(<id_q>, <cmd>, *<buf>); Konkretes Beispiel: int x; x = msgctl(idq, IPC_SET, &Puffer); Variable Symbol Typ Bedeutung Wert <result> int Interpretation Rückkehrwert > 0 O.K. Systemaufruf erfolgreich -1 Feh- Systemaufruf fehlgeschlagen ler <id_q> int Identifikator der Warteschlange (= Rückkehrwert von msgget(..) ) ws 201/17 H.-A. Schindler Folie: 5-18
19 Message Queues: msgctl(..) ( control ) Ausführung verschiedener Operationen auf Message Queue Verwendung im Programm (Prinzip): int <result>; <result> = msgctl(<id_q>, <cmd>, *<buf>); Konkretes Beispiel: int x; x = msgctl(idq, IPC_SET, &Puffer); Variable Symbol Typ <cmd> int Bedeutung Kommando Interpretation bzw. Parameterwerte Befehl zur Ausführung auf durch <id_q> definierter Message Queue Möglichkeiten: IPC_STAT: kopiert msqid_ds-struktur aus dem UNIX/Linux- Kern in Puffer im Anwenderprogramm, welcher durch <buf>-parameter spezifiziert IPC_SET: kopiert aus Puffer im Anwenderprogramm in Struktur im UNIX/L.-Kern; damit Setzen (Festlegen) der im Kern gültigen Werte IPC_RMID: Löschen der Message Queue und aller darin enthaltenen Nachrichten ws 201/17 H.-A. Schindler Folie: 5-19
20 Message Queues: msgctl(..) ( control ) Ausführung verschiedener Operationen auf Message Queue Verwendung im Programm (Prinzip): int <result>; <result> = msgctl(<id_q>, <cmd>, *<buf>); Konkretes Beispiel: int x; x = msgctl(idq, IPC_SET, &Puffer); Variable Symbol Typ *<buf> *struct Bedeutung Puffer Interpretation bzw. Parameterwerte Zeiger auf eine structurevom Typ msqid_dsim Adressraum des Nutzerprozesses. Deren Inhalt wird je nach Kommando mit Inhaltder äquivalenten Struktur im UNIX/Linux-Kern getauscht. D.h. IPC_SETschreibt Inhalt der Struktur im Nutzerbereich in äquivalente Kernstruktur, IPC_STATholt im Kern gesetzte Werte in den Nutzerprozess und ermöglicht so Auswertung im Nutzerprozess. ws 201/17 H.-A. Schindler Folie: 5-20
21 Beispielprogramm ctl.c #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define MSGSIZE 40 struct message{ long msgtype; char msgtext[msgsize]; }; char MESSAGETEXT[ ]="This is my message: Winter is coming now."; ws 201/17 H.-A. Schindler Folie: 5-21
22 Beispielprogramm ctl.c 9 main() { int id_q; struct message msg_snd; int result_snd; struct msqid_ds puffer; int result_ctl; int i; id_q = msgget(10, IPC_CREAT 0700); printf("id_q = %d\n", id_q); msg_snd.msgtype = 5; for (i=0; i<=40; i++) msg_snd.msgtext[i]=messagetext[i]; result_snd= msgsnd(id_q, &msg_snd, MSGSIZE, IPC_NOWAIT); printf("result_snd = %d\nnachricht:\n%40s\n", result_snd, \ msg_snd.msgtext); ws 201/17 H.-A. Schindler Folie: 5-22
23 Beispielprogramm ctl.c 9 } result_ctl = msgctl(id_q, IPC_STAT, &puffer); printf("\nresult_ctl = %d\n\n", result_ctl); printf("anzahl Bytes: %d\n", puffer.msg_cbytes); printf("anzahl Nachrichten: %d\n", puffer.msg_qnum); printf("maximalzahl Bytes: %d\n\n", puffer.msg_qbytes); printf("prozess-id letztes Send: %d, laufender Prozess: %d\n", puffer.msg_lspid, getpid()); printf("prozess-id letztes Receive: %d\n\n", puffer.msg_lrpid); ws 201/17 H.-A. Schindler Folie: 5-23
24 Aufgabenstellung (Anregungen) 1. Analysieren Sie die C-Programme send.cund receive.cund kompilieren Sie diese. 2. Führen Sie sendeinmal aus und informieren Sie sich mit ipcs qüber das Ergebnis. 3. Führen Sie sendmindestens noch einmal aus und informieren Sie sich wiederum mit ipcs q über das Ergebnis. 4. Führen Sie jetzt mehrmals receiveaus und studieren Sie Rückkehrwerte und Ergebnis. 5. Beschäftigen Sie sich mit dem Programm ctl.c in der vorliegenden Form werden genauere Informationen über die angelegte Message Queue ausgegeben. ws 201/17 H.-A. Schindler Folie: 5-24
25 Aufgabenstellung (Anregungen). Jetzt können Sie experimentieren, z.b. - Weglassen der Zugriffsrechte beim Erzeugen einer message queue - receive mit anderem msgtype - mehrere Sender (mit unterschiedlichen Nachrichten und msgtype s) - unterschiedliche Empfänger (für unterschiedliche Nachrichtentypen) Beschäftigen Sie sich auch mit den Optionen beim ipcs-aufruf. Untersuchen Sie insbesondere auch die Ausgaben für -u und -l. 8. Versuchen Sie dem Rückkehrwert von msgrcv(..) eine Bedeutung zuzuordnen. 9. In welcher Header-Datei (*.h-datei) sind IPC_PRIVATE, IPC_NOWAITund IPC_CREAT jeweils definiert? 10. Löschen Sie am Ende bitte alle von Ihnen angelegten Message Queues! ws 201/17 H.-A. Schindler Folie: 5-25
26 Informationen über Message Queues: Kommando ipcs Formen : ipcs-q messagequeues (allgemeine Angaben) ipcs-qt t: time (alle Zeitangaben) ipcs-qc c: creator (Erzeuger und Eigentümer der Strukturen) ipcs-qp p: pid (lspid und lrpid siehe Struktur msqid_ds) ipcs-qu u: summary (zusammenfassende Informationen) ipcs-ql l: limits (Maximalwerte für diese UNIX-Implementation) ipcs-q -i <id> Ausg. nur für durch Identifizierer <id> spez. Ressource ipcs -h -h help (Infos über Kommandobenutzung) ws 201/17 H.-A. Schindler Folie: 5-2
27 Löschen von Message Qeues: Kommando ipcrm Formen : ipcrm-q<id_q> ipcrm-q<key> durch Angabe des Identifizierers (Rückkehrwert) durch Angabe des Schlüssels (key) ENDE 5 ws 201/17 H.-A. Schindler Folie: 5-27
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 6. UNIX/Linux Shared Memory ( gemeinsame Speicherbereiche ) Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter
MehrPROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 7. UNIX/Linux-Shared Memory 8. (Benannte) Pipes UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 11. UNIX/Linux-Semaphore Wintersemester 2016/17 Semaphore * wurden 1965 von E.W. DIJKSTRA (NL) als BS-gestützter Mechanismus zur Realisierung von Koordinationsaufgaben
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 7. UNIX/Linux Pipes Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.
MehrEinführung in die Systemprogrammierung unter Linux
Einführung in die Systemprogrammierung unter Linux - 1 - Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux - 2 - Inhalt 1. Übersicht über benötigte Systemfunktionen...
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2016/17 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
MehrPROGRAMMIEREN 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:
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 12. UNIX/Linux-Sockets Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter
MehrEinführung in die Systemprogrammierung unter Linux
Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore
MehrBesprechung 6. Aufgabe (timed) Semaphore. Prozess 1 Prozess 2 0x Schlüssel=IPC_PRIVATE: Segment ist prozesslokal
Überblick über die 9. Übung Überblick über die 9. Übung. Anlegen des Segments: shmget Besprechung 6. Aufgabe (timed)... /* Schlüssel */ int shmflg; /* Flags */ int shmid; /* ID des Speichersegments */
MehrGanze Arrays von Semaphoren können auf einmal angelegt werden. In einer Operation können mehrere Semaphore auf einmal modifiziert werden.
Übungen zur Vorlesung Betriebssysteme I Studiengang Informatik SS 05 AG Betriebssysteme FB3 Kirsten Berkenkötter Allerlei Nützliches 1 Semaphore 1.1 Allgemein Semaphore sind unter System V IPC erweitert:
MehrSystemprogrammierung.: unter Linux :.
Systemprogrammierung.: unter Linux :. Einführung in Linux 1. Das Filesystem 2. Prozesse 3. Unix Tools 4. Die Shell 1. Das Filesystem 1.1 Dateien 1.2 Ordner 1.3 Links 1.1 Dateien Alles im Filesystem sind
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 10. UNIX/Linux: Reaktion auf Fehler Wintersemester 2016/17 Reaktion auf Fehler: Übersicht Systemaufrufe: 1. Rückkehrwert: in den meisten (aber nicht in allen!)
MehrSpeicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 26.11. Foliensatz 5 Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren
MehrJ.1 Überblick. Prototyp. Besprechung 6. Aufgabe (timed) (die 5. Aufgabe wird erst in der nächsten Woche besprochen) select. Shared Memory.
J 8. Übung J 8. Übung J. Überblick Besprechung 6. Aufgabe (timed) (die 5. Aufgabe wird erst in der nächsten Woche besprochen) Prototyp #include #include select Shared Memory Semaphore
MehrInterprozesskommunikation
Interprozesskommunikation Radu Prodan Institut für Informatik, Universität Innsbruck Verteilte und Parallele Systeme http://dps.uibk.ac.at 19.04.2012 R. Prodan, Betriebssysteme, Sommersemester 2012 1 Prozesse
MehrU5 Verzeichnisse und Sortieren
U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U5.1 Verzeichnisse öffnen: opendir(3)
MehrLösung zur Praktikumsaufgabe 1
Lösung zur Praktikumsaufgabe 1 Thema: Semaphore 1. Das Programm in Listing 1 zeigt eine beispielhafte Implementierung. Listing 1: Lösung der Aufgabe 1 (5children-unsync.c) #include #include
MehrSystemsoftware Praktikum Hochschule Ravensburg-Weingarten
Systemsoftware Praktikum Hochschule Ravensburg-Weingarten Erste Schritte Systemkontrolle Bibliotheken Quelltext und Doku Erste Schritte - Übersicht ssh-zugang Anjuta CVS make / gcc Erste Schritte ssh-zugang
MehrSystemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Interprozesskommunikation (IPC) Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006
MehrInterprozesskommunikation in Unix. WS 08/09 Universität Innsbruck
Interprozesskommunikation in Unix Betriebssysteme WS 08/09 Universität Innsbruck Unix-Standardisierung (kurzer Einschub) Erste Unix-Version 1969 (Ken Thompson) Im Laufe der Zeit bildete sich eine Vielzahl
MehrVorlesung Betriebssysteme II
1 / 15 Vorlesung Betriebssysteme II Thema 3: IPC Robert Baumgartl 20. April 2015 2 / 15 Message Passing (Nachrichtenaustausch) Prinzip 2 grundlegende Operationen: send(), receive() notwendig, wenn kein
MehrSystemprogrammierung unter Linux eine Einführung S. 1
Systemprogrammierung unter Linux eine Einführung S. 1 Inhaltsverzeichnis 1 Übersicht der Systemfunktionen ( system calls )...2 1.1 Grundliegende Systemcalls...2 Erfragen der PID des laufenden Prozesses...2
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
MehrTafelübung zu BSRvS 1 2. Prozesssynchronisation
Tafelübung zu BSRvS 1 2. Prozesssynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
Mehr7.1 Gegenseitiger Ausschluss. 7.1 Gegenseitiger Ausschluss (3) 7.1 Gegenseitiger Ausschluss (3) 7.1 Gegenseitiger Ausschluss (2) Semaphor
7.1 Gegenseitiger Ausschluss 7.1 Gegenseitiger Ausschluss (3) Semaphor eigentlich reicht ein Semaphor mit zwei Zuständen: binärer Semaphor void P( int *s ) { while( *s == 0 ); *s= 0; atomare Funktion Problem
Mehr2. Prozesssynchronisation
Tafelübung zu BSRvS1 2. Prozesssynchronisation 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/exercises/
MehrVariablen. 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!
MehrBeispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden
Dokument: gns_ipc_server.c, 1 - Seite 1 - - 1: 1 von 1 - Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden int main(int argc,
MehrKlausur 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
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrBetriebssysteme (BTS)
13.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 31.5.2007 Wiederholung vom letzten Mal Deadlocks und Verhungern
MehrHydroinformatik I: Referenzen und Zeiger
Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar
MehrÜ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Übungspaket 14 Eindimensionale Arrays
Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen
MehrDr. 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
MehrKlausur 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
MehrArrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
MehrKapitel 13. Definition von Klassen. OOP Thomas Klinker 1
Kapitel 13 Definition von Klassen OOP Thomas Klinker 1 OOP Thomas Klinker 2 Datenabstraktion Der Mensch abstrahiert, um komplexe Sachverhalte darzustellen. Dinge und Vorgänge werden auf das wesentliche
Mehr4. Interprozeßkommunikation in UNIX
4. Interprozeßkommunikation in UNIX Kommunikation zwischen Unix-Prozessen (System V IPC) Pipes System V IPC Werkzeuge 1. Semaphore 2. Shared Memory 3. Message-Queues Gemeinsame Eigenschaften der System
MehrExkurs: Paralleles Rechnen
Münster Exkurs: Paralleles Rechnen Münster Exkurs: Paralleles Rechnen 2 /21 Konzepte für Parallelrechner P P P C C C Gemeinsamer Speicher Verteilter Speicher Verbindungsnetzwerk Speicher M, Münster Exkurs:
MehrPraxis der Programmierung
Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation
MehrC- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
Mehr================================================= System V spezifische lokale Prozesskommunikation: 4. Systemrufe für die lokale Prozesskommunikation
UNIX Schnittstelle ================== 4. Systemrufe für die lokale Prozesskommunikation ================================================= j p bell Seite 1 System V spezifische lokale Prozesskommunikation:
MehrHinweise zur Prüfung Programmieren WS0304 Seite 1. Schreiben Sie folgende For-Schleife in eine äquivalente While-Schleife um.
Hinweise zur Prüfung Programmieren WS0304 Seite 1 Aufgabe 1 1.1 (5 Punkte) Vervollständigen Sie die Funktion testnums()... Eine mögliche Lösung lautet: int testnums(int numbers[], int factor, int max){
MehrEin-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C
für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und
Mehr5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
MehrKlausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.
Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrZeiger 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Übungspaket 20 Zeiger und Zeigervariablen
Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18
Mehr9.3 Virtuelle FS Linux VFS Windows IFS 9.4 Dateizugriff in Linux-Programmen
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)
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrAdvanced 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Übung zur Vorlesung Programmieren in C
Übung zur Vorlesung Programmieren in C 10 Structs & Unions Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 10 Structs & Unions Wintersemester 2015/2016
MehrÜbungen zu Systemnahe Programmierung in C (SPiC)
Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 8 Sommersemester 2015 Inhalt POSIX Verzeichnisschnittstelle opendir, closedir,
Mehr4.4 Prozesse. H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22
H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22 getpid Prozeß-Id ermitteln getppid Parent-Prozeß-Id ermitteln fork Duplizieren eines Prozesses exec-familie Prozeß-Überlagerung durch
MehrStrukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved.
1 8 Strukturierte Datentypen (struct) 2 8.1 Einführung 8.2 Definition von Strukturen 8.2.1 Selbstbezügliche Strukturen 8.2.2 Definition von Variablen strukturierter Datentypen 8.2.3 Bezeichner für Strukturen
MehrEine 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?...................
MehrC für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im
MehrInformatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1
Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss
MehrFILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam
Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==
MehrDynamischer Speicher
Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrC für Java- Programmierer
Carsten Vogt C für Java- Programmierer mit 59 Bildern, 36 Tabellen und 35 Aufgaben HANSER Inhalt 1 Einführung 13 Schnelleinstieg 14 1.1 C und Java von den Anfängen bis heute 15 1.1.1 Die Entwicklung von
MehrHans-Georg Eßer, FH München Betriebssysteme I, WS 2006/07, 2007/01/24 Zusammenfassung (2/2) Folie 2
/home/esser/daten/dozent/folien/bs-esser-24.odp 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
MehrÜbung zu Betriebssystemtechnik
Übung zu Betriebssystemtechnik Nachrichtenaustausch und Copy-on-Write 11. Juni 28 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl
Mehr10. Foliensatz Betriebssysteme
Prof. Dr. Christian Baun 10. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/62 10. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences
Mehrcritical sections und Semaphore
Kapitel 4 critical sections und Semaphore Programme, die sich Resourcen teilen, müssen Codeabschnitte allein (exklusiv) ausführen, diese codeteile nennt man critical section. Um dies zu erreichen werden
MehrUSBCAN.DLL. Manual. Microcomputersysteme. Version 1.2
USBCAN.DLL Microcomputersysteme Manual Version 1.2 August 2004 Die in diesem Manual verwendeten Beschreibungen für Erzeugnisse, die ein eingetragenes Warenzeichen darstellen können, wurden nicht separat
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
MehrAufgabenblatt 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
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrTafelübung zu BS 1. Prozesse, Shell
Tafelübung zu BS 1. Prozesse, Shell 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/ss2012/bs/
MehrFH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
MehrFH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. H. Voos, Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter zugelassene Hilfsmittel, 08:00 10:00 Uhr (120 min) 15 Seiten (einschl. Deckblatt)
MehrNachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse.
Starten der Umgebung Nachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse. Wir wählen links ein Projekt aus öffnen dann unser Projekt und dort das Programm intro.c Sicherheitshalber
MehrThreads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015
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)
MehrTafelübung zu BSRvS 1 1. Prozesse, at
Tafelübung zu BSRvS 1 1. Prozesse, at 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/ss2009/bsrvs1/
MehrZusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks
Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1
Mehr4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
Mehr6. Foliensatz Betriebssysteme und Rechnernetze
Prof. Dr. Christian Baun 6. Foliensatz Betriebssysteme und Rechnernetze FRA-UAS SS2018 1/63 6. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun Frankfurt University of Applied Sciences
MehrProgrammierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
MehrC/C++-Programmierung
1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung
MehrC-Programmierkurs Mathematik
Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrTafelübung zu BSRvS 1 3. Kreuzung
Tafelübung zu BSRvS 1 3. Kreuzung 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/ss2009/bsrvs1/
MehrHydroinformatik I: Referenzen und Zeiger
Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 08. Januar
Mehr7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz
7.4 Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten Betriebssystemen, vor allem großzügige Pufferung,
MehrKlausur 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
MehrVerbessertes 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.
MehrKlausur Programmieren 2 WS 2017/18
Klausur Programmieren 2 WS 2017/18 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrÜbungspaket 20 Zeiger und Zeigervariablen
Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18
MehrZeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch
darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten
Mehr4.3 Directories / Filesysteme
I-Node H. Weber, FH Wiesbaden WS 2008/09 Systemprogrammierung Kap. 4.3 Seite 1 von 32 Hierfür gibt es eine ganze Reihe von Systemaufrufen und Subroutines. Wir beginnen mit chroot Root Directory ändern
MehrEinfü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