• Keine Ergebnisse gefunden

Systemmanagement und Sicherheit 5. ¨ Ubung

N/A
N/A
Protected

Academic year: 2022

Aktie "Systemmanagement und Sicherheit 5. ¨ Ubung"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Studiengang Kommunikationsinformatik Prof. Dr.–Ing. Damian Weber

Dipl.-Inf. Marion Bohr Thorsten Jakobs, M.Sc.

Systemmanagement und Sicherheit 5. ¨ Ubung

Aufgabe 1 (fork–exec)

Entwickeln Sie ein C–Programm start, das beim Aufruf start prog arg1 arg2 arg3 ...

zun¨achst ein fork() Aufruf ausf¨uhrt und dann im Sohnprozeß das Programm prog via execvp mit den angegebenen Argumenten startet. Das Programm prog soll mit niedrigster Priorit¨at ausgestattet werden, siehe Systemcall setpriority()

Der Vaterprozess soll weiterhin folgendes tun:

• Ausgabe der PID des gestarteten Prozesses prog,

• Ausgabe des Return–Codes von prognach dessen Beendigung, Hinweis: Siehe Macros unter wait(2)

• Ausgabe eines evtl. Signals (numerisch und eine Beschreibung des Signals), das zum Abbruch von progf¨uhrte (siehe auch psignal(3)).

Die Deklaration von main() instart.c sei int main(int argc, char **argv)

Hier ist ein richtiger Aufruf von execvp()dabei:

a) execvp(argv[1][0],argv[1]) b) execvp(argc,argv)

c) execvp(argv[1],argv[2]) d) execvp(argv[1],argv+1) e) execvp(*argv[1],*argv[1])

f) execvp(**argv,**argv[1]) g) execvp(argv[1],argv[1])

Seite 1 von 3

(2)

Aufgabe 2 (Semaphoren und Shared Memory)

Implementieren Sie folgendes Erzeuger–Verbraucher–Schema mit Hilfe von Shared Memory und Semaphoren. Ein Vaterprozess P

1 legt Semaphoren und Shared Me- mory Segment an. Danach erzeugt er den Sohnprozess P2, der als Prozesskopie die Semaphoren-ID und die Shared–Mem–ID kennt. Der Prozess P1 wird Daten in den gemeinsamen Speicher schreiben, die Prozess P

2 dort herauslesen wird.

Der ErzeugerprozessP1h¨alt ein Array gef¨ullt mitint–Daten, deren Anzahl sei durch eine

#define N_DATA 2000000

Direktive festgelegt. Die Daten werden von P

1 zuf¨allig erzeugt (siehe srand48(), lrand48()).

Der Verbraucherprozess P2 soll diese Daten erhalten, indem diese ¨uber einen von P1 und P

2 genutzten shared memory Block ¨ubertragen werden. Im shared–memory Bereich finden weniger als N DATAviele Zahlen Platz, etwa

#define N_SHARED 2000

Prozess P1 muss also die gr¨oßere Anzahl Daten in mehreren Durchl¨aufen durch den kleineren Shared–Puffer ¨ubertragen.

Hinweise: es empfiehlt sich ein schrittweises Vorgehen

• zun¨achst eine L¨osung ohne Semaphoren und nur einen Schreib–/Lesevorgang im Shared–Memory–Bereich:

P2 wartet mittels sleep()), damit P

1 Zeit hat, die Daten zu schreiben

• danach Semaphoren hinzunehmen

• danach mehrere Schreib–/Lesevorg¨ange Aufgabe 3 (Signal–Handling signal())

Schreiben Sie ein C–Programm sigtest, das einen einzigen Signalhandler f¨ur alle m¨oglichen Signale besitzt. Der Signalhandler soll mittels signal(3) aktiviert wer- den.

Mittels sleep(3) soll sigtest f¨ur eine Minute existieren und innerhalb von main folgenden Return–Code zur¨uckgeben:

• 0, falls kein Signal innerhalb dieser Minute empfangen, oder

• die Signalnummer

Die Kommunikation zwischen Signal–Handler und main(), um die Signalnummer mitzuteilen, soll ¨uber eine globale volatile intVariable signo realisiert werden.

Seite 2 von 3

(3)

Aufgabe 4 (Signal–Handling sigaction())

Schreiben Sie analog zur vorherigen Aufgabe ein Programmsigtest2, das den gleichen Mechanismus mit Hilfe von sigaction(2) implementiert.

Aufgabe 5 (Signal–Handling (Signale k¨unstlich erzeugen))

Benutzen Sie Ihr Programm sigtest2 als Grundlage f¨ur ein Programm sigtest3, das mit einem erh¨ohten Parameter f¨ur sleep()arbeitet, um drei der in der Vorlesung angegebenen Signale zu simulieren. Hierbei bedeutetSimulierennicht, dass mit Hilfe vonkilloderkill()die jeweilige Signalnummer erzeugt wird. Vielmehr sollen beim Ablauf des Programms sigtestdie Bedingungen erzeugt werden, die zum Senden des Signals f¨uhren, etwa dass ein Alarmtimer abl¨auft (siehe alarm(3)).

Seite 3 von 3

Referenzen

ÄHNLICHE DOKUMENTE

Um einen Hund zu verstehen, musst du ihn genau beobachten: seinen Kopf mit der Ohrenstellung, seinen übrigen Körper und die Stellung seiner Rute. Du darfst dich nicht nur auf

d) Betty and Cathy aren’t playing / isn’t playing hockey. e) The dog isn’t sleeping / aren’t sleeping in

Das Mädchen war schon den ganzen Tag umher gelaufen und hatte nur ein halbes Körbchen voll Beeren gefunden. Die Dämmerung trat schon bald ein und es würde heimgehen und der

Die vorliegenden Kopiervorlagen bieten sich für eine schnelle Unterrichtsvorbereitung an: Sie ermöglichen eine schnelle Auswahl der Lehr- planthemen und sind ohne lange

Um herauszufinden, welche Wörter gemeinsam zu einem Satzglied gehören, musst du den Satz mehrmals umstellen, ohne seinen Sinn zu verändern. Du machst die sogenannte

Euch ist es doch sicher auch schon einmal passiert, dass ihr mit einem Freund oder einer Freundin in deiner Heimatstadt unterwegs wart und eine ortsfremde Person euch nach dem

Um zu prüfen, ob der „Dieb“ mit einem b oder einem p am Ende geschrieben wird, kannst du die Pluralform des Nomens bilden.. der Dieb –

Als der maulwurf peter plüsch, dessen leben darin bestand, unter der erde nach engerlingen und regenwürmern zu wühlen, eines tages seine rosa schnauze aus einem erdhaufen