Created by Gökhan Yesilyayla
about 9 years ago
|
||
Question | Answer |
Was ist "Scala" ? | Scala ist eine funktionale, objekt orientierte Programmiersprache. |
Was sind die Merkmale von Scala ? | - Data-parallel operations on collections - Actors for concurrency and distribution - Futures for asynchronous (without blocking) programming |
Kann eine Programmiersprache "reentrant" sein ? | Eintrittsinvarianz ist eine Eigenschaft des Codes und nicht der Programmiersprache. |
Was sind die Grundregeln für einen "reentrant" Code ? | - Sollte keine nicht konstante globale Variablen enthalten - Sollte sich selbst bei der Ausführung nicht verändern - Sollte keinen "nicht wiedereintrittsfähigen" Code aufrufen |
Wie wird ein Dateisystem organisiert ? | Jede Partition entählt ein Verzeichnis und die darin liegenden Dateien. - Festplatte wird in mehrere Partitionen unterteilt. oder - Mehrere Festplatten werden zu einer Partition zusammengefasst. |
Welche "File-Operationen" gibt es und was machen sie ? | - Open(File): Suche auf Harddisk nach "File" und verschiebe den Inhalt in den Speicher (RAM). - Close(File): Verschiebe den Inhalt von File vom Speicher(RAM) zum Dateisystem (Harddisk). - Search: Suche nach Dateien, zu gegebenen Attributen. - Create: Erstelle eine Datei und füge deren Inhalt in ins Dateisystem hinzu. - Delete: Entferne die Datei aus dem Dateisystem. - List: Zeige den Inhalt von Verzeichnissen. - Rename: Ändere den Dateinamen. Dies kann die Position der Datei innerhalb des Dateisystems verändern. - Traverse: Zugriff auf alle Verzeichnisse und Dateien innerhalb des Dateisystems. |
Welche 3 Kriterien macht ein gutes Dateisystem aus ? | - Effizienz: Dateien sollte schnell gefunden werden. - Namensgebung: Zwei Benutzer können für unterschiedliche Dateien denselben Namen verwenden. Dieselbe Datei kann verschiedene Namen annehmen. - Gruppierung: Dateien können nach Attributen/Eigenschaften sortiert werden. |
Was ist der Vorteil, wenn man Dateisysteme mit "azyklischen Graphen" entwirft ? | 1/2 - Level Dateisysteme verhindern die gemeinsame Nutzung von Unterverzeichnissen oder Dateien. Mit azyklischen Graphen kann man dieses Problem lösen. |
Was ist ein "Link" ? | Ein "Link" ist ähnlich einem Pointer, ein Zeiger in einem Dateisystem, welches auf eine Datei oder auf ein Verzeichnis zeigt. |
Welche beiden "Link" Typen gibt ? | - Direct Link (Join in Windows, Soft links in Unix) - Symbolic Link (Hard links in Unix) |
Was sind die Unterschiede zwischen "Hardlink" und "Symbolic Link" ? | - Hardlinks können nicht auf Verzeichnisse zeigen, Softlinks dagegen schon. - Wenn die Datei gelöscht wird zeigt Hardlink immer noch auf den Inhalt, Softlink dagegen ist verloren. - Wenn Hardlink oder Softlink gelöscht wird, bleibt die Datei erhalten. |
Welche Probleme können durch "links" verursacht werden ? | - Beim Vorhandensein von mehreren Softlinks auf eine Datei können bei der Traversierung Zyklen entstehen. Diese verzögern den Prozess unnötig. - Wenn die Datei gelöscht wird, zeigen die Softlinks auf eine nicht existierende Datei. - Referenzen für die Dateien müssen in einer Liste festgehalten werden. Diese können sehr lang sein. - Wenn Dateien oder Verzeichnisse gelöscht werden, verändert sich die Baumstruktur des Dateisystems (nicht mehr azyklisch). Die Partitionierung von nicht azyklischen Graphen ist schwierig. |
Was sind "Reference Counters" und wieso werden sie bei "Hard Links" gebraucht ? | Reference Counters sind Zähler, welche die Anzahl der Referenzen auf eine Datei ermitteln. Wenn ein Hardlink erstellt wird, wird der Zähler um 1 inkrementiert. Wenn ein Hardlink gelöscht wird, um 1 dekrementiert. Wenn der Zähler = 0 ist, so heisst das, dass die Datei von keinem Hardlink referenziert wird und gelöscht werden kann. |
Was ist "inode" (gelesen: eye-node) ? | Inode beinhaltet Speicherinformationen (mode, owner, timestamp, size block, count) von Dateien. Jede Datei im Dateisystem bekommt eine eindeutige Inode-Indexnummer zur Identifizierung. |
Dateien werden sequenziell gespeichert. Wie funktioniert "Static Allocation" und "Dynamic Allocation" ? | Static Allocation: Speicherplatz wird im Voraus reserviert. Vorteil: Einfach zu definieren. Nachteil: Falls auf der Festplatte kein ausreichend grosses Fragment vorhanden ist, kann nicht gespeichert werden. Dynamic Allocation: Es wird nur so viel Speicherplatz reserviert wie gerade nötig ist. Vorteil: Es muss nicht von Vornherein ein grosses Speicherstück reserviert werden. Nachteil: Der zusätzlich benötigte Speicher wird auf die gesamte Festplatte verteilt, das führt zu Fragmentationsprobleme. |
Wie werden Dateien auf Harddisk "Data Blocks" gemappt ? (3 Möglichkeiten) | - Contiguous Allocation (benachbarte Blöcke werden Benutzt) - Linked Allocation (Speicherblöcke bilden eine verkettete Liste) - Index Allocation (Index von benutzten Speicherblöcken wird betrachtet) |
Was sind die Merkmale von "Contiguous Allocation" ? | Directory benötigt ein Startblock S auf der Festplatte und die gesamte Blockgrösse der Datei. Zugriff auf ein Dateiblock ist einfach: Datei block n ist auf dem Harddisk-Block in S + n gespeichert. Nach dem die Blockgrösse festgelegt wurde, kann sie nicht mehr geändert werden. Wenn Dateien gelöscht werden, wird die Festplatte fragmentiert. Auch wenn diese Fragmente freie Blöcke enthalten, können sie nicht benutzt werden, wenn die Datei grösser ist, als das grösste Block-Fragment. |
Was sind die Merkmale von "Linked Allocation" ? | Directory benötigt den ersten und den letzten Datenblock auf der Festplatte. Jeder Datenblock auf der Festplatte hat ein Pointer zum nächsten Datenblock. Die Datei setzt sich aus der verketteten Liste auf der Festplatte zusammen. Da die Blöcke verkettet werden, können beliebige freie Blöcke auf der Festplatte benutzt werden (sehr effizient). Zugriff auf Datenblöcke ist sehr langsam, da beliebige Datenblöcke nur über den Startblock erreicht werden können. Wird in MS-DOS und FAT benutzt. |
Was sind die Merkmale von "Indexed Allocation" ? | Directory benötigt ein Index-Block. In diesem Index-Block sind alle Indizes für die Datenblöcke gespeichert. Pointers zeigen vom Index-Block auf die Datenblöcke. Die Datei ergibt sich, wenn man der Reihe nach alle Indizes durchgeht. Der Zugriff auf Datenblöcke ist sehr schnell. Wenn der Indexblock zu gross ist, müssen bei kleinen Dateien alle "leeren" Indizes ebenfalls durchlaufen werden, was die Effizienz senkt. Wenn der Indexblock zu klein ist, haben grosse Dateien nicht genug Platz für die Indexierung. Das heisst, sie können nicht gespeichert werden. |
Wie kann erreicht werden, dass "Indexed Allocation" genug Platz für grosse Dateien bietet aber trotzdem effizient für kleine Dateien ist ? | Mit "Multilevel Indices". Index-Blöcke zeigen auf weitere Index-Blöcke (Baumstruktur). Der Indexspeicher wird von Level zu Level exponentiell grösser. Es wird sichergestellt, dass kleine Dateien in niedrigeren Levels kleine Index-Blöcke bekommen, wogegen grosse Dateien in höheren Leveln die benötigte Index-Block-Grösse erhalten. |
Wie wird freier Speicher auf der Festplatte verwaltet ? | 1) Bitmap: Ein Bit pro block (belegt:1, frei:0). Freie Nachbarblöcke können somit einfach gefunden werden. 2) Linked List: Pointers werden in den freien Speicherblöcken gespeichert. |
Was ist eine "Sparse File" und wie können diese auf der Festplatte gespeichert werden ? | "Sparse Files" sind Dateien, welche sehr viele Lücken (0-Bits) aufweisen. Solche Dateien können gespeichert werden, indem nur die von null verschiedene Bits betrachtet werden, was den benötigten Speicherplatz enorm reduziert. |
Was sind die Aufgaben von "File Descriptor Table" ? | - Hilft dem Kernel den Überblick im Dateisystem zu behalten - Alle geöffneten Dateien werden tabelliert - Speichert die Datei-Inode Zuordnung - Speichert Zugriffstyp (lesen, schreiben) - Verfolgt die Aktuelle lese/schreib Position auf der Festplatte |
Was ist "Mount" und wieso ist es wichtig ? | Es existieren verschiedene Dateisysteme (fat, ntfs, ext, ...). Um Zugriff auf diese Dateisystemen zu haben, müssen sie mit dem Betriebssystem kommunizieren. Sie müssen also Metadaten zur Verfügung stellen, welche dem Betriebssystem mitteilen, wie der Zugriff erfolgen soll. Diesen Prozess nennt man "mounten". |
Was ist die Aufgabe von einem "Virtual File System" ? | Das virtuelle Dateisystem ist eine Abstraktion des logischen Dateisystems. Es bietet allen anderen Dateisystemen eine einheitliche API, wodurch sie auf das lokale Dateisystem zugreifen können. |
Was ist ein "Loop File System" ? | Ein Loop-Device ist ein virtuelles Blockgerät, welches eine Datei als Speicher benutzt. Auf diese Datei kann dann wie ein normaler Speicher benutzt werden (z.B. CD/DVD ISO Image). |
Was ist ein "Stackable FS" ? | Stackable FS ist ein stapelbares Dateisystem, welches aus symmetrischen Schichten besteht. |
Was ist "RAID" ? | RAID = Redundant Arrays of Independent Disks RAID Dateisysteme bestehen aus mehreren Speichermedien und speichern Daten mehrfach ab, so dass die Daten bei Störungen wiederhergestellt werden können. |
Want to create your own Flashcards for free with GoConqr? Learn more.