06_Pr_senztag_part1_Z Flashcards
Was bieten Betriebssysteme in Form von System Calls an?
Betriebssysteme bieten verschiedene Funktionen und Konzepte in Form von System Calls an. Diese sind meist in C implementiert und werden in Programmbibliotheken gekapselt, um die Nutzung zu vereinfachen. Andere Programmiersprachen können diese Dienste über sogenannte Language Bindings nutzen.
Was ist ein Language Binding?
Ein Language Binding ist eine API, die es einer Programmiersprache erlaubt, eine fremde Bibliothek oder einen Betriebssystemdienst zu nutzen. Zum Beispiel verwendet Python das Modul subprocess
, um auf Systemprozesse zuzugreifen.
Wie werden Prozesse und Threads in Python erstellt?
- Prozesse: Mit dem
subprocess
Modul. - Threads: Mit demthreading
Modul.
Wie werden Prozesse und Threads in C++ erstellt?
- Prozesse: Mit
fork()
undexec()
. - Threads: Mit derstd::thread
Klasse (seit C++11).
Welche Synchronisationsmechanismen bietet Python?
- Mutex:
threading.Lock
. - Condition Variable:threading.Condition
. - Semaphore:threading.Semaphore
. - Barrier:threading.Barrier
. - Shared Memory:multiprocessing.shared_memory
.
Welche Synchronisationsmechanismen bietet C++?
- Mutex:
std::mutex
Klasse. - Condition Variable:std::condition_variable
Klasse. - Semaphore:std::counting_semaphore
(seit C++20). - Barrier:std::barrier
(seit C++20).
Was ist der Unterschied zwischen einem monolithischen Kernel und einem modularen Kernel?
- Monolithischer Kernel: Alle Gerätetreiber und Dateisysteme sind in einem einzigen Kernelimage enthalten. Vorteil: Performant, da keine Kontextwechsel nötig sind. Nachteil: Fehleranfällig, da ein Fehler zum Absturz des gesamten Systems führen kann. - Modularer Kernel: Kernelbestandteile und Treiber sind als separate Module verfügbar, die zur Laufzeit geladen werden können. Vorteile: Geringerer Hauptspeicherbedarf und verbesserte Konfigurierbarkeit.
Wo werden Kernelmodule gespeichert und welche Befehle sind relevant für deren Verwaltung?
Kernelmodule werden in /lib/modules/
gespeichert. Relevante Befehle sind: - lsmod
: Listet alle geladenen Module auf. - insmod
/modprobe
: Lädt ein Modul. - rmmod
/modprobe -r
: Entfernt ein Modul. - modinfo
: Zeigt Informationen über ein Modul an. - depmod
: Analysiert Abhängigkeiten zwischen Modulen.
Was bedeutet das UNIX Paradigma “Everything is a file”?
Das UNIX Paradigma “Everything is a file” bedeutet, dass Hardware-Geräte als Dateien abstrahiert werden. Gerätedateien befinden sich normalerweise im Verzeichnis /dev
und es gibt eine Unterscheidung in blockorientierte Geräte (z.B. Festplatten) und zeichenorientierte Geräte (z.B. Webcam).
Wie werden Gerätedateien unter UNIX erstellt?
Gerätedateien werden nicht automatisch erzeugt und müssen vom Benutzer (häufig durch Skripte wie udev
) erstellt werden. Der Befehl zur Erstellung lautet: mknod [OPTION]... NAME TYPE [MAJOR MINOR]
.