Zweiter Fragebogen zu Unix­1

Signale und Job­Control

1.
Was sind Signale? Wie sieht die Repräsentation des Datentyps ,,Signal`` im Kern aus? Wo steht sie?

2.
Wie kann man auf Signale reagieren?  Wo steht, welches Signal wie behandelt wird?

3.
An welcher Stelle im Kernel wird abgeprüft, ob ein Signal eingetroffen ist und eventuell dessen Signal­Handler angesprungen?

4.
Was ist ein Signal­Handler?  Wie wird er installiert?

5.
Welcher Unterschied bei der Installation von Signal­Handlern besteht zwischen System V und BSD?

6.
Ein Programm hat mit close(0) seine Standard­Eingabe geschlossen. Wie kann man in diesem Programm die Standard­Eingabe vom controlling­tty wieder öffnen?

7.
Wie kann ein Prozeß verhindern, daß er bei Eingabe von CTRL­C am Terminal terminiert?  Nenne mindestens 3 Möglichkeiten!

8.
Welcher Zusammenhang besteht zwischen Terminals, Signalen und Prozeßgruppen?

9.
Was ist eine Session?

10.
Welcher Zusammenhang besteht zwischen den Begriffen Session und Controlling TTY?

11.
Ist es einem Prozeß möglich, sein Controlling TTY zu wechseln? Wenn ja, wie?

12.
Was geschieht, wenn ein Benutzer versucht, im Hintergrund einen Text mit dem folgenden Kommando zu editieren:
 vi text & 

I/O und Synchronisation

13.
Wozu dient der Systemcall mknod(2)?

14.
Was ist in die Device Swich Tables eingetragen?  Wie sind sie aufgebaut?  Wieso gibt es zwei davon?

15.
Wie findet das Unix­System an Hand des Special Device Files den korrekten Gerätetreiber?

16.
Wozu dienen Major­ und Minor­Device­Number Wo sind sie abgelegt?

17.
In welchem Fall haben zwei Geräte zwar eine unterschiedliche Minor­Device­Number, aber die gleiche Major­Device­Number?

18.
Warum gibt es typischerweise für jeden Block­Special­Treiber ein Character­Special­File?

19.
Unter welche Umständen ruft ein Prozeß die interne Kernel­Funktion sleep auf?  Wann wird er wieder aufgeweckt, in welchem Zustand kann der Prozeß sich dabei befinden?

20.
Warum muß ein Prozeß nach der Rückkehr aus dem Aufruf von sleep noch einmal prüfen, ob die Bedingung, für die er sich schlafengelegt hat, auch wirklich eingetroffen ist?  Was muß er tun, wenn die Bedingung nicht eingetreten ist?

21.
Wieso ist Unix in seiner ursprünglichen Form nicht echtzeitfähig?

IPC

22.
Beschreibe kurz die Begriffe: Gehe dabei auf Verwandschaftsgrad der Kommunikationspartner, Art und Menge der ausgetauschten Daten, Richtung der Kommunikation und Synchronität ein.

23.
Wozu benutzt man ,,Pseudo TTYs``?  Welche Anwendungen, die ,,Pseudo TTYs`` verwenden, sind Dir bekannt?

24.
Wie ermöglichen es telnet(1) und der telnetd(8), daß man an einem virtuellen Terminal eines anderen Rechners arbeiten kann?

25.
Warum werden eine IP­Adressen und Portnummern immer in Network­Byte­Order übertragen?  Warum hat man überhaupt das Konzept einer einheitlichen Network­Byte­Order eingeführt?

26.
Was bedeuten die Begriffe Big Endian und Little Endian Woher kommen sie?  Nenne je drei Beispiele für Big­ und Little­Endian­CPUs!

27.
Beschreibe kurz, welche Systemaufrufe auf beiden Seiten notwendig sind, um eine Kommunikationsbeziehung zwischen einem Client und einem Server aufzubauen, wenn TCP­Sockets in der Internet­Domäne verwendet werden!

28.
Wozu dient der Parameter ,,type`` beim Systemcall socket(2)?

29.
Was genau ist die Aufgabe des bind(2)­Systemcalls?

30.
Welche Daten enthält die Struktur sockaddr_un, die bind(2) bei Verwendung von Unix­Domain­Sockets übergeben wird?  Was steht stattdessen in sockaddr_in bei Internet­Sockets?

31.
Welche Bedeutung hat der Parameter ,,backlog`` bei listen(2)?

32.
Wieso ist es sehr sinnvoll, daß accept(2) als Rückgabewert einen neuen, fertig vorinitialisierten Socketdeskriptor liefert?  Was kann ein Server damit anfangen?

33.
Welche Auswirkungen hat der Aufruf von accept(2) auf die Empfangsqueue?

34.
Werden auch existierende Kommunikationsverbindungen über Sockets bei der Prozeßtermination geschlossen, oder bleiben diese mit einem nun leeren Ende bestehen, bis sie explizit abgebrochen werden? Warum?

35.
Welche Informationen sind in der Internet­Domäne nötig, um eine Kommunikationsbeziehung mit einem Server aufzubauen?

36.
Welche Funktionalität erbringt UDP?  Welche Unterschiede gibt es zu TCP?  Wann sollte das UDP­Protokoll verwendet werden?

37.
Welcher Mechanismus wurde von TCP und UDP eingeführt, um Prozesse auf einem Rechner eindeutig adressieren zu können? Warum sind die PIDs hierfür ziemlich ungeeignet?

38.
Welche Funktionalität erbringt IP?

39.
Erläutere kurz den prinzipiellen Aufbau des Internet!  Was ist in diesem Zusammenhang ein Gateway?