1_Systemprogrammierung

Description

C-Programme (Ausführung) und Pipes
nokiessling
Flashcards by nokiessling, updated more than 1 year ago More Less
Patricia Steves
Created by Patricia Steves over 8 years ago
nokiessling
Copied by nokiessling over 8 years ago
0
0

Resource summary

Question Answer
Programmausführung Shell-Programmierung Quellcode, Eingabe > Interpreter > Ausgabe
Programmausführung C-Quellcode: Detail Quellcode > Compiler > Maschinencode Maschinencode > Linker > Executable Eingabe > Executable > Ausgabe
Programmausführung C-Quellcode: Einzelschritte 1. Kompilieren: gcc -c main.c 2. Linken: gcc main.o -o my_prog 3. Ausführen: ./my_prog
Makefile Dient zu einfacherem Übersetzen von Programmdateien (automatisch). Liest und interpretiert Inhalt der "Makefile" Konsolenkommando 'make' verarbeitet Datei Makefile im aktuellen Verzeichnis
Was ist ein Pointer? Variable, die die Startadresse von Daten im RAM kennt
Operatoren für Pointer in C &: Liefert Speicheradresse eines Datenobjekts *: liefert/ändert den Inhalt einer Speicheradresse
Was bedeutet Datentyp *pointer = Speicheradresse; ? pointer = Adresse, worauf Pointer zeigt &pointer = Speicheradresse auf Heap *pointer = Wert, der an Pointer-Adresse abgelegt ist (= "Dereferenzierung")
Bei Programmstart sind gewöhnlich 3 Zugriffe geöffnet. Wofür stehen jeweils 0, 1, 2? 0: Standard-Eingabe 1: Standard-Ausgabe 2: Standard-Fehler
Was soll die Standard-I/O-Bibliothek mit der Header-File stdio.hdarstellen? Interface zu Low-Level-Systemaufrufen. Zugang zur Datei "filename", Stream als Pointer auf FILE * zuordnen. auch: fclose
Wozu dient die Fork-Funktion? (!) Erzeugt einen Klon des aufrufenden Prozesses. Bis auf Datenraum, Umgebung, File-Handles ist Klon identisch zu Original. => Kindprozess kennt alle vor fork() definierten Größen und fährt an gleicher Stelle fort
Was machen die Funktionen 'wait' und 'waitpid'? Prozesse, die mit fork erzeugt werden, laufen unabhängig voneinander weiter. Mit den Funktionen wait und waitpid kann der Originalprozess warten, bis ein Kindprozess beendet ist. wait: beliebig, waitpid: nur pid-Prozess
Macros zur Ermittlung des Beendigungsstatus mittels status_loc? WIFEXITED(status_loc) = true, wenn Kindprozess sich normal beendete WEXITSTATUS(status_loc) = Exit-Code, fallse WIFEXITED true WIFSIGNALED(status_loc) = true, wenn Kindprozess anormal beendet wurde
Was sind die Eigenschaften von Pipes? Können nur zwischen Prozessen mit gleichen Vorfahren eingerichtet werden. Pipes sind halbduplex, d.h. Daten können immer nur in eine Richtung fließen.
Wie wird eine Pipe im Kernel eingerichtet? #include <unistd.h> int pipe(int fd[2]); Rückgabewerte: 0 (Erfolg), -1 (Fehler) fd[0]: Lesen aus der Pipe fd[1]: Schreiben in die Pipe
(Normale) Pipes können nur zwischen Prozessen verwendet werden, wenn ein gemeinsamer Vorfahr die Pipe erzeugt hat. Wie können Daten zwischen beliebigen Prozess ausgetauscht werden? Mit FIFOs oder named pipes. mkfifo legt eine Datei mit gegebenem Pfadnamen an. Fkt.: open, read, ... Oft zum Datenaustausch zwischen Clients und einem Server verwendet.
Was sind Semaphoren? Semphoren sind postive, ganze Zahlen, deren Wert mittels atomarer Operationen (up, down) geändert wird. Sie steuern den Zugang zu kritischen Regionen im Programm.
Show full summary Hide full summary

Similar

Dezimalzahlen addieren
Puschel2theLimit
Betriebssysteme
Patricia Steves
Latein
Luisa Müller
Volcanoes
1jdjdjd1
Religious Studies- Marriage and the family
Emma Samieh-Tucker
GCSE AQA Physics Unit 2 Flashcards
Gabi Germain
How did the Cold War develop?
E A
Art styles
Sarah Egan
General Physiology of the Nervous System Physiology PMU 2nd Year
Med Student
2PR101 1.test - 4. část
Nikola Truong