Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
0 In einem UNIX-UFS-Dateisystem gibt es symbolische Namen/Verweise (Symbolic Links) und feste Links (Hard Links) auf Dateien. Welche Aussage ist richtig? (Juli 2022)
+ Für jede reguläre Datei existiert mindestens ein Hard-Link im selben Dateisystem.
Wenn kein "Hardlink" auf eine Datei existiert, dann löscht das
Dateisystem die Datei. Daher muss auf jede existierende Datei
mindestens ein Verweis existieren.
- Wird der letzte Symbolic Link auf eine Datei gelöscht, so wird auch die Datei selbst gelöscht.
Symbolic Links sind nur verweise auf Dateipfade, wobei die Datei
hinter dem Dateipfad nichts von diesem Verweis wissen muss. Es ist
ja auch möglich auf eine nicht-existierende Datei zu verweisen.
- Ein Symbolic Link kann nicht auf Dateien anderer Dateisysteme verweisen.
Nein, weil Symbolic Links nur Pfade sind, welche das Betriebsystem
transparent auflöst, wenn man versucht auf die Datei zuzugreifen,
aber diese nichts über das tatsächliche System wissen. Bei
Hard-Links ist das hingengen nicht der fall, weil diese die gleiche
Inode-Nummer teilen müssen, was von Datei-System abhängig ist.
- Ein Hard Link kann nur auf Verzeichnisse verweisen, nicht jedoch auf Dateien.
Hard-Links können auf beides verweisen, nur ist es mit dem `link`
(bzw. dem `ln` Befehl) Systemaufruf dem Benutzer nicht erlaubt
selbst Verweise auf Verzeichnisse zu erstellen. Damit wird
sichergestellt, dass der Datei-Baum, der durch Hard-Link aufgespannt
wird, nicht zu einem graphen degeneriert, was Probleme bereiten
würde für Werkzeuge wie `find`.
.
0 Ausnahmesituationen bei einer Programmausführung werden in die beiden Kategorien Trap und Interrupt unterteilt. Welche der folgenden Aussagen ist zutreffend? (Juli 2022)
- Ein Trap signalisiert einen schwerwiegenden Fehler und führt deshalb immer zur Beendigung des unterbrochenen Programms.
Nein, ein Trap kann auch durch eine nicht eingelagerte Seite (wo
dann mit der MMU versucht wird diese einzulagern, und dann das
Programm weiter läuft) oder durch einen Systemaufruf ausgelöst
werden.
- Ein durch einen Interrupt unterbrochenes Programm darf je nach der Interruptursache entweder abgebrochen oder fortgesetzt werden.
Nein, weil ein Interrupt nichts mit dem Programm zu tun hat, und
daher dieses nicht (direkt) abbrechen sollte.
+ Obwohl Traps immer synchron auftreten, kann es im Rahmen ihrer Behandlung zu Wettlaufsituationen mit dem unterbrochenen Programm kommen.
Ja. Dazu muss man sich an die definition vom Programm erinnern:
> Festlegung einer Folge von Anweisungen für einen Prozessor, nach der die zur Bearbeitung einer (durch einen Algorithmus wohldefinierten) Handlungsvorschrift erforderlichen Aktionen stattfinden sollen
darunter kann auch das "Hauptprogramm" vom Betriebsystem verstanden
werden, welches von einem Trap-Handler unterbrochen wird. Sollten
beide (möglicherweise auf verschiedenen Kernen) versuchen
synchronisierte Operationen auszuführen, können diese sich
gleichzeitig verklemmen.
- Ein Systemaufruf im Anwendungsprogramm ist der Kategorie Interrupt zuzuordnen.
Nein, ein Systemaufruf ist ein Trap, weil diese deterministisch bei
der Ausführung auftreten, bspw. wenn je nach Rechenarchitektur ein
[`syscall`](https://www.felixcloutier.com/x86/syscall) (x86_64)
Befehl ausgeführt wird.
.